Merci! Un ingénieur en charge du processus d'inspection des produits au sein du département d'ingénierie de production. Ceci est une continuation de Analyse et visualisation des journaux csv avec Excel Elastic Stack (docker-compose) --Qu'est-ce qu'Elastic Stack.
Cet article est destiné à ceux qui découvrent Elastic Stack et qui envisagent de l'essayer.
Cette section décrit comment traiter la première date de ces données csv comme l'horodatage de chaque ligne.
Date,2020/10/28,20:19:18
10,Test1,130.1,OK
20,Test2,1321,OK
30,Test3,50.2,OK
End
Date,2020/10/29,10:30:50
10,Test1,140.4,OK
20,Test2,1300,OK
30,Test3,50.0,OK
End
Date,2020/10/29,11:40:50
10,Test1,141.1,OK
20,Test2,1310,OK
30,Test3,55.8,NG
End
J'ai mis un ensemble de fichiers de paramètres dans GitLab, veuillez donc vous y référer. Cliquez ici pour le dépôt-> élastique-stack
Je l'ai examiné de deux manières.
En conclusion, cette méthode n'a pas fonctionné. aggregate Parce que les filtres vous permettent de partager des informations entre plusieurs événements. , Dans certains cas, c'est possible.
Dans l'exemple officiel, les nombres du début à la fin sont ajoutés et le résultat de l'ajout au champ d'événement de TASK_END est défini.
INFO - 12345 - TASK_START - start
INFO - 12345 - SQL - sqlQuery1 - 12
INFO - 12345 - SQL - sqlQuery2 - 34
INFO - 12345 - TASK_END - end
Cependant, vous pouvez partager des données entre les événements en définissant le task_id du filtre d'agrégation sur "12345". Dans ce cas, l'équivalent task_id n'existait pas dans les données et ne pouvait pas être utilisé.
C'est une méthode réussie. En utilisant la [multiligne] de filebeat (https://www.elastic.co/guide/en/beats/filebeat/current/multiline-examples.html), plusieurs lignes de texte peuvent être combinées en un \ n délimiteur. Cela peut être un événement. Ci-dessous, il peut être résumé par les règles de trois lignes.
multiline.pattern: (End)
multiline.negate: true
multiline.match: before
L'article de @ datake913 Résumé des paramètres multilignes qui gère plusieurs lignes avec Filebeat est un tableau et il était facile à comprendre, je vais donc l'appeler "modèle: Les lignes consécutives qui ne correspondent pas (FIN) sont ajoutées avant la ligne correspondante suivante. " Il peut être combiné en une seule ligne comme indiqué ci-dessous.
Date,2020/10/28,20:19:18\n10,Test1,130.1,OK\n20,Test2,1321,OK\n30,Test3,50.2,OK\nEnd
Pour analyser l'horodatage, utilisez De-Excel Elastic Stack (docker-compose) pour analyser et visualiser les journaux csv --- analyser "année / mois / jour, heure: minute: seconde" en multiligne avec filtre grok, heure japonaise Traiter comme.
Si vous appliquez le filtre csv à la multiligne tel quel, vous ne pouvez analyser Date, 2020/10 / 28,20: 19: 18
que jusqu'au premier \ n. split En utilisant un filtre, vous pouvez à nouveau décomposer la multiligne et la diviser en plusieurs événements. ..
Enfin, les lignes commençant par un non-nombre sont supprimées avec le filtre drop et mutate La conversion de type est effectuée à partir du type String avec un filtre.
logstash.conf
filter {
grok {
patterns_dir => ["/opt/logstash/extra_patterns"]
match => { "message" => "%{TIMESTAMP_JP:read_timestamp}" }
}
date {
match => ["read_timestamp", "yyyy/MM/dd,HH:mm:ss"]
timezone => "Asia/Tokyo"
target => "@timestamp"
}
split{}
csv {
columns => ["Step","TestName","Value1","Judge"]
separator => ","
}
if [Step] !~ /\d+/ {
drop{}
}
mutate {
convert => {
"Step" => "integer"
"Value1" => "float"
}
}
}
Vous pouvez maintenant attribuer le même horodatage à plusieurs lignes en utilisant la multiligne et la division. Dans les prochains articles, j'aimerais présenter des contre-mesures pour les erreurs de tas suivantes.
java.lang.OutOfMemoryError: Java heap space
Dumping heap to java_pid1.hprof ...
Heap dump file created [3178685347 bytes in 34.188 secs]
warning: thread "[main]>worker11" terminated with exception (report_on_exception is true):
warning: thread "[main]>worker4" terminated with exception (report_on_exception is true):
java.lang.OutOfMemoryError: Java heap space
Recommended Posts