我已经在模式文件中定义了我的模式,并从我的logstash模块中读取它们作为下面的块
grok {
patterns_dir => "../patterns/cisco-ftd"
match => [ "message", "%{CISCOFW302013_302014_302015_302016}",
"message", "%{CISCOFW302020_302021}",
"message", "%{CISCOFTD607001}"
]
tag_on_failure => [ "_grokparsefailure" ]
}
虽然前两个模式被识别,但第三个模式CISCOFTD607001
没有被识别,输出日志给出了以下错误。
exception=>#<Grok::PatternError: pattern %{CISCOFTD607001} not defined>
我猜我的解析器出了问题,但可以肯定。这是消息和相应的解析器
这是我的图案%FTD-%{POSINT:[event][severity]}-%{POSINT:[syslog][id]}: %{DATA}:%{IP:[source][ip]}/%{NUMBER:[source][port]} to %{DATA}:%{IP:[destination][ip]} %{GREEDYDATA}
回答我的问题。
当我将patterns_dir => "../patterns/cisco-ftd"
更改为绝对路径时,效果很好。