Ich habe logstash einrichten und die „Standard“ syslog-Filter verwende wie folgt:entfernen mehrere Datumsfelder in syslog Filter
, die im wesentlichen die gleiche enthalten Daraus ergeben sich zwei Felder erstellt werden,@timestamp
und
syslog_timestamp
filter {
if [type] == "syslog" {
grok {
match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
}
syslog_pri { }
date {
match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]
}
}
}
Wert, wenn auch in verschiedenen Formaten.
Gibt es eine Möglichkeit, ein temporäres syslog_timestamp
Feld in Grok zu erstellen, so dass es in das Datum Plugin übergeben werden kann, oder muss ich das Feld explizit über mutieren entfernen, nachdem ich es "verwendet" habe? Zum Beispiel:
filter {
if [type] == "syslog" {
grok {
match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
}
syslog_pri { }
date {
match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]
}
mutate {
remove_field => [ "syslog_timestamp" ]
}
}
}
Danke für alle Hinweise.