Kibana에 결과를 표시하는 Elasticsearch 서버로 이벤트를 보내는 Logstash 서버가 있습니다. 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" ]
...
}