Den*_*nis 2 logstash logstash-grok
这两个选项的有效 logstash 配置是什么?
else if [pipeline] == "tomcat_all" {
grok {
match => [ "message", "%{MONTH}%{SPACE}%{MONTHDAY},%{SPACE}%{YEAR}%{SPACE}%{HOUR}:?%{MINUTE}(?::?%{SECOND})%{SPACE}(?:AM|PM)%{SPACE}%{NOTSPACE:class}%{SPACE}%{NOTSPACE:type_log}%{SPACE}%{WORD:loglevel}:%{SPACE}%{GREEDYDATA:log_text}" ]
match => [ "message", "%{TIME:timestamp}%{SPACE}\|-%{WORD:loglevel}%{SPACE}in%{SPACE}%{NOTSPACE:class}%{SPACE}%{GREEDYDATA:log_text}" ]
...
else if [pipeline] == "123" {
grok {
match => [ "message", "%{MONTH}%{SPACE}%{MONTHDAY},%{SPACE}%{YEAR}%{SPACE}%{HOUR}:?%{MINUTE}(?::?%{SECOND})%{SPACE}(?:AM|PM)%{SPACE}%{NOTSPACE:class}%{SPACE}%{NOTSPACE:type_log}%{SPACE}%{WORD:loglevel}:%{SPACE}%{GREEDYDATA:log_text}" ]
}
grok {
match => [ "message", "%{TIME:timestamp}%{SPACE}\|-%{WORD:loglevel}%{SPACE}in%{SPACE}%{NOTSPACE:class}%{SPACE}%{GREEDYDATA:log_text}" ]
}
Run Code Online (Sandbox Code Playgroud)
Logstash 似乎在两种配置下都可以正常启动并且没有报告错误,但是对于多个 grok 模式,grok 解析还不能正常工作。
相比较而言,两者几乎同样表现,因为默认值break_on_match是true。
break_on_match
第一场比赛破门。grok 的第一次成功匹配将导致 > 过滤器完成。如果您希望 grok 尝试所有模式(也许您正在解析不同的内容),请将其设置为 false。
您的第一个模式可以进一步简化如下,
filter {
grok {
match => [ "message", "PATTERN1", "PATTERN2" ]
}
}
Run Code Online (Sandbox Code Playgroud)
也请参阅此答案,一个日志中的多个模式
| 归档时间: |
|
| 查看次数: |
6754 次 |
| 最近记录: |