Logstash - 将我的模式放到主机上

时间:2014-06-20 09:16:04

标签: elasticsearch centos logstash rsyslog

我的想法是拿一些目录(主要是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。

1 个答案:

答案 0 :(得分:0)

解决方案是添加grok:

  

grok {         match => {'路径' => '%{PATH} /%{IP:主机}' }         overwrite => '主机'       }

由于