Logstash Groking Syslog 이벤트

Logstash Groking Syslog 이벤트

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

관련 정보