Syslog forwared HAProxy日志在Logstash中过滤

Syslog forwared HAProxy日志在Logstash中过滤,logstash,logstash-grok,logstash-forwarder,Logstash,Logstash Grok,Logstash Forwarder,我在理解如何正确地做这件事时遇到了问题 我有以下日志存储配置: input { lumberjack { port => 5000 host => "127.0.0.1" ssl_certificate => "/etc/ssl/star_server_com.crt" ssl_key => "/etc/ssl/server.key" type => "somelogs" } } output { elastics

我在理解如何正确地做这件事时遇到了问题

我有以下日志存储配置:

input {
  lumberjack {
    port => 5000
    host => "127.0.0.1"
    ssl_certificate => "/etc/ssl/star_server_com.crt"
    ssl_key => "/etc/ssl/server.key"
    type => "somelogs"
 }
}

output {
  elasticsearch {
    protocol => "http"
    host => "es01.server.com"
  }
}
使用logstash转发器,我将syslog生成的haproxy.log文件推送到logstash。然后,Kibana向我展示了一个
\u源代码
,如下所示:

{"message":"Dec 8 11:32:20 localhost haproxy[5543]: 217.116.219.53:47746 [08/Dec/2014:11:32:20.938] es_proxy es_proxy/es02.server.com 0/0/1/18/20 200 305 - - ---- 1/1/1/0/0 0/0 \"GET /_cluster/health HTTP/1.1\"","@version":"1","@timestamp":"2014-12-08T11:32:21.603Z","type":"syslog","file":"/var/log/haproxy.log","host":"haproxy.server.com","offset":"4728006"}
现在,必须(以某种方式)对其进行过滤,我必须承认我一点也不知道如何进行过滤。
看着和摆弄,我仍然并没有从Logstash和Kibana得到任何有用的东西


我一直在扫描patterns目录和它们的文件,我不能说我了解如何使用它们。我希望提供一个带有haproxy模式Logstash的过滤器能够与我的
\u源代码中的模式匹配,但这一点运气都不好。

你很幸运,因为已经有一个预定义的grok模式来解析这类日志。您所要做的就是在一个:

%{HAPROXYHTTP}
将根据递归展开,并且每行输入中的每一个感兴趣的片段都将被提取到自己的字段中。您可能还希望在成功应用grok筛选器后删除“message”字段,因为它仍然包含冗余数据;只需将
remove_field=>[“message”]
添加到grok筛选器声明中即可

filter {
  grok {
    match => ["message", "%{HAPROXYHTTP}"]
  }
}