Vielen Dank! Ein Ingenieur, der für den Produktinspektionsprozess in der Abteilung Produktionstechnik verantwortlich ist. Dies ist eine Fortsetzung von Analysieren und Visualisieren von CSV-Protokollen mit Excel Elastic Stack (Docker-Compose) - Was ist Elastic Stack?.
Dieser Artikel richtet sich an Personen, die Elastic Stack noch nicht kennen und darüber nachdenken, ihn auszuprobieren.
Date,2020/10/30,12:20:50
Ich habe eine Reihe von Einstellungsdateien in GitLab eingefügt. Bitte beziehen Sie sich darauf. Klicken Sie hier für das Repository-> Elastic-Stack
Zuallererst sind die standardmäßig bereitgestellten Grok-Muster so. Wenn Sie DATE verwenden, ist das Datum nicht in Ordnung. Außerdem wird TIMESTAMP_ISO8601 durch Bindestriche getrennt. Die Beschreibung der benutzerdefinierten Muster auf der offiziellen Website finden Sie hier.
# Months: January, Feb, 3, 03, 12, December
MONTHNUM (?:0?[1-9]|1[0-2])
MONTHDAY (?:(?:0[1-9])|(?:[12][0-9])|(?:3[01])|[1-9])
# Years?
YEAR (?>\d\d){1,2}
# datestamp is YYYY/MM/DD-HH:MM:SS.UUUU (or something like it)
DATE_US %{MONTHNUM}[/-]%{MONTHDAY}[/-]%{YEAR}
DATE_EU %{MONTHDAY}[./-]%{MONTHNUM}[./-]%{YEAR}
TIMESTAMP_ISO8601 %{YEAR}-%{MONTHNUM}-%{MONTHDAY}[T ]%{HOUR}:?%{MINUTE}(?::?%{SECOND})?%{ISO8601_TIMEZONE}?
DATE %{DATE_US}|%{DATE_EU}
Bereiten Sie DATE_JP in der Reihenfolge des Datums vor und kombinieren Sie TIMESTAMP_JP mit der durch Kommas getrennten Standard-TIME.
logstash/extra_patterns/date_jp
DATE_JP %{YEAR}[/-]%{MONTHNUM}[/-]%{MONTHDAY}
TIMESTAMP_JP %{DATE_JP}[,]%{TIME}
Weisen Sie die erstellte Datei date_jp / opt / logstash / extra_patterns
zu.
docker-compose.yml
logstash01:
build: ./logstash
container_name: logstash01
links:
- es01:elasticsearch
volumes:
- ./logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml
- ./logstash/config/jvm.options:/usr/share/logstash/config/jvm.options
- ./logstash/config/log4j2.properties:/usr/share/logstash/config/log4j2.properties
- ./logstash/config/pipelines.yml:/usr/share/logstash/config/pipelines.yml
- ./logstash/pipeline/logstash.conf:/usr/share/logstash/pipeline/logstash.conf
- ./logstash/extra_patterns/date_jp:/opt/logstash/extra_patterns
networks:
- esnet
Setze extra_patterns in pattern_dir. Erstellen Sie ein read_timestamp-Feld mit dem benutzerdefinierten Muster TIMESTAMP_JP.
logstash.conf
filter {
grok {
patterns_dir => ["/opt/logstash/extra_patterns"]
match => { "message" => "%{TIMESTAMP_JP:read_timestamp}" }
}
}
Da logstash standardmäßig den Zeichenfolgentyp verwendet, ist read_timestamp auch der Zeichenfolgentyp. Da es nicht als Zeitstempel erkannt wird, wird es mithilfe des Datumsfilters in den Datumstyp konvertiert. Stellen Sie die Zeitzone des Datumsfilters auf Asien / Tokio ein und weisen Sie das Ziel @timestamp zu.
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"
}
}
Erklärt, wie Datumsangaben analysiert und Zeitzonen mithilfe benutzerdefinierter Muster festgelegt werden. In Zukunft möchte ich Ihnen den Umgang mit CSV-Dateien vorstellen.
Recommended Posts