我在使用Logstash方面非常陌生。我有两种日志,
模式1:--2019-05-09 08:53:45.057 -INFO 11736 --- [ntainer#1-0-C-1] cssservice.MessageLogServiceImpl:[adc7fd862db5307a688817198046b284dbb12b9347bed9067320caa49d8efa381557392024151]事件=>消息状态更改[开始时间:09052019 08:53:44]:CUSTOM_PROCESSING_COMPLETED
模式2:--2019-05-09 06:49:05.590 -TRACE 6293 --- [ntainer#0-0-C-1] cssservice.MessageLogServiceImpl:[41a6811cbc1c66eda0e942712a12a003d6bf4654b3edb6d24bf159b592afc64f1557384545548] INVALID_STRUCTURE
尽管还有其他许多行,但是我只考虑这两种类型。因此,我在过滤器下面使用了
grok {
#Event : message status change
match => {
"message" => "--(?<logtime>[^\]]*) -%{LOGLEVEL:level} (?<pid>\d+) --- \[(?<thread>[^\]]+)] (?<classname>[\w.]+)\s+: \[(?<token>[^\]]+)] Event \=> Message Status Change \[Start Time : (?<start>[^\]]*)\] : (?<status>[\w]+)"
}
add_field => {
"event" => "message_status_change"
}
}
grok {
#Event : message failure
match => {
"message" => "--(?<logtime>[^\]]*) -%{LOGLEVEL:level} (?<pid>\d+) --- \[(?<thread>[^\]]+)] (?<classname>[\w.]+)\s+: \[(?<token>[^\]]+)] Event \=> Message Failure Identified : (?<code>[\w]+)"
}
add_field => {
"event" => "message_failure"
}
}
我还注意到,这两种模式都可以单独工作(如果我发表评论,那么其他模式就可以完美地工作)。当两种模式都处于活动状态时,Logstash服务器也可以。但是当两个都打开并且在日志文件中添加新行时,会引发grokparse错误。
我还想知道,尽管我将输入配置为从头开始读取文件,但即使在服务器重新启动后也不会读取,除非在日志中添加新行。为什么会有这种行为?
谢谢。