Logstash Groking Syslog イベント

Logstash Groking Syslog イベント

Logstash サーバーが Elasticsearch サーバーにイベントを送信し、その結果が Kibana に表示されます。Kibana がホスト フィールドに 2 つの名前を表示すること以外はすべて正常に動作しています。Logstash では次の grok フィルターを使用しています。

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

Grok デバッガーを使用すると、すべてが正しく解析されます。ただし、Kibana で表示すると、次のように表示されます。

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

ここで、logstash1 は解析と elasticsearch への送信を行っている logstash サーバーの名前です。logstash サーバーと実際のソースの両方がホストとして表示される理由がわかりません。ホスト フィールドから logstash1 を削除するにはどうすればよいでしょうか。ログの例は次のとおりです。

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

答え1

チェックアウト上書きオプションhttp://logstash.net/docs/1.3.1/filters/grok#上書き

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

関連情報