我的想法是拿一些目录(主要是ip地址)并放到“主机”,这样我就知道这个日志来自这个主机。可能吗?我在文档中找不到它:(
问题是我在客户端上有rsyslog,在服务器上有rsyslog。在我的服务器上看起来像:
[root@logstash]# ls -al /var/log-remote/
total 12
drwxr-xr-x 3 root root 4096 Jun 20 09:50 .
drwxr-xr-x. 18 root root 4096 Jun 20 09:48 ..
drwx------ 2 root root 4096 Jun 20 10:01 192.168.10.11
drwx------ 2 root root 4096 Jun 20 10:01 192.168.20.12
drwx------ 2 root root 4096 Jun 20 10:01 192.168.30.13
(...)
到目前为止我的logstash配置是:
input {
file {
type => "linux-syslog"
path => [ "/var/log-remote/*/*.log" ]
}
}
output {
stdout {
codec => rubydebug
}
elasticsearch {
host => localhost
}
}
我的输出是:
{
"message" => "Test",
"@version" => "1",
"@timestamp" => "2014-06-20T09:01:23.335Z",
"type" => "linux-syslog",
"host" => "0.0.0.0",
"path" => "/var/log-remote/192.168.10.11/user.log"
}
我的问题是我想要“host”=>在这种情况下,该客户端的IP地址:192.168.10.11。
答案 0 :(得分:0)
解决方案是添加grok:
grok { match => {'路径' => '%{PATH} /%{IP:主机}' } overwrite => '主机' }
由于