我有一个 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#overwrite
grok{
...
overwrite => [ "host" ]
...
}