Logstash _在成功的比赛中摸索

Logstash _在成功的比赛中摸索,logstash,syslog,grok,logstash-grok,Logstash,Syslog,Grok,Logstash Grok,我开始使用logstash来管理syslog。为了测试它,我从远程机器发送简单的消息,并尝试用logstash解析它们 通过命令行使用的唯一日志存储配置: input { syslog { type => syslog port => 5514 } } filter { grok { match => { "message" =&g

我开始使用logstash来管理syslog。为了测试它,我从远程机器发送简单的消息,并尝试用logstash解析它们

通过命令行使用的唯一日志存储配置:

input {
        syslog {
                type => syslog
                port => 5514
        }
}

filter {
        grok {
                match =>  { "message" => "hello %{WORD:who}" }
                }
      }

output {
        stdout { }
        elasticsearch {
                host => "elk.example.com"
                cluster => "security"
                protocol => "http"
        }
}
我确实收到了日志,并且它们被正确解析(生成了
who
字段)。同时,
标记
包含
\u grokparsefailure

我发送的测试日志是
hello rambo3
。我认为它是

2015-01-29T09:27:48.344+0000 10.242.136.232 <13>1 2015-01-29T10:27:48.113612+01:00 AA1.example.com testlog.txt - - - hello rambo3
2015-01-29T09:27:48.344+0000 10.242.136.232 1 2015-01-29T10:27:48.113612+01:00 AA1.example.com testlog.txt----hello rambo3
grok调试器还同意:

为什么要将
\u grokparsefailure
添加到标记中


有趣的是,通过纯
tcp
发送的相同数据由相同的筛选器正确解析(
\u grokparsefailure
不在标记中)

\u grokparsefailure
不是由您自己的筛选器添加的。使用
syslog
输入时,必须遵循syslog格式,如中所述

通常,
Syslog
输入将解析日志并添加相应的
字段
,如
日志严重性
。所以,这里面有一个可怕的动作。但是,您从远程服务器发送的日志的格式为。因此,logstash无法解析日志,然后添加
\u grokparsefailure
标记