【发布时间】:2016-08-10 13:07:00
【问题描述】:
我在同一台服务器上有一个系统日志服务器和 ELK 堆栈。我为每个系统日志源都有一个目录。 我正在尝试使用 Logstash 解析系统日志文件,并且我想将系统日志源的 IP 地址或主机名保留在“主机”字段中。目前我有 Logstash 解析后的 0.0.0.0 源。
我的 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 }
}
【问题讨论】:
-
请使用示例系统日志消息更新您的问题
-
系统日志消息可能是:
Jan 12 06:30:00 1.2.3.4 apache_server: 1.2.3.4 - - [12/Jan/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中的“host”字段