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" ]
...
}