Logstash Groking Syslog-Ereignisse

Logstash Groking Syslog-Ereignisse

Ich habe einen Logstash-Server, der Ereignisse an einen Elasticsearch-Server sendet, der die Ergebnisse in Kibana anzeigt. Alles funktioniert ziemlich gut, abgesehen davon, dass Kibana 2 Namen im Host-Feld anzeigt. Ich verwende den folgenden Grok-Filter in Logstash.

^(?:<%{POSINT:syslog_pri}>)?%{SYSLOGTIMESTAMP:timestamp} %{IPORHOST:host} (?:%{PROG:program}(?:\[%{POSINT:pid}\])?: )?%{GREEDYDATA:message}

Wenn ich den Grok-Debugger verwende, wird alles korrekt analysiert. Wenn ich es mir jedoch in Kibana ansehe, wird Folgendes angezeigt:

"host": [
  "logstash1",
  "servername.domain.com"
],

Wobei logstash1 der Name meines Logstash-Servers ist, der die Analyse durchführt und an Elasticsearch sendet. Ich bin nicht sicher, warum sowohl der Logstash-Server als auch die eigentliche Quelle als Host angezeigt werden. Wie kann ich logstash1 aus dem Host-Feld entfernen? Ein Beispiel für die Protokolle sind:

Dec 18 00:00:08 servername.domain.com pam_rhosts_auth[24233]: allowed to [email protected] as user1

Antwort1

Option zum Überschreiben der Kassehttp://logstash.net/docs/1.3.1/filters/grok#overwrite

grok{
...
    overwrite => [ "host" ]
...
}

verwandte Informationen