0
동일한 서버에 syslog 서버와 ELK 스택이 있습니다. 각 syslog 소스에 대한 디렉토리가 있습니다. Logstash를 사용하여 syslog 파일을 구문 분석하려고하는데 "IP 주소"또는 "호스트"필드에 syslog 소스의 호스트 이름을 유지하고 싶습니다. Logstash 구문 분석 후 0.0.0.0 소스가 있습니다.Logstash는 syslog 호스트를 유지합니다.
내 logstash.conf : 당신이 그것을 구문 분석 일단
input {
file {
path => ["path/to/file.log"]
start_position => "beginning"
type => "linux-syslog"
ignore_older => 0
}
}
filter {
if [type] == "linux-syslog" {
grok {
match => {"message" => "<%{POSINT:syslog_pri}>%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:[%{POSINT:syslog_pid}])?: %{GREEDYDATA:syslog_message}" }
}
}
}
output {
elasticsearch {
hosts => ["@IP_Elastic:Port_Elastic"]
}
stdout { codec => rubydebug }
}
로그 메시지 – pandaadb
이 시스템 로그 메시지가 될 수있는 예와 귀하의 질문에 업데이트하십시오 : '월 12 6시 30분 0초 1.2.3.4 apache_server : 1.2.3.4 - - [12/월을/2011 : 06 : 29 : 59 +0100] "GET /foo/bar.html HTTP/1.1"301 96 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv : 1.9.2.12) Gecko/20101026 Firefox/3.6.12 (.NET CLR 3.5.30729) "PID 18904 Time Taken 0' 로그의 소스 IP 주소 나 로그의 호스트 이름이 없습니다. 각 소스에서 Logstash의 "호스트"필드를 설정하기 위해이 디렉토리의 이름을 사용하고 싶습니다. – ted