logstash - Logstash - 多个 grok 模式不能一起工作
问题描述
我对使用 Logstash 非常陌生。我有两种日志,
Pattern 1 : --2019-05-09 08:53:45.057 -INFO 11736 --- [ntainer#1-0-C-1] cssservice.MessageLogServiceImpl : [adc7fd862db5307a688817198046b284dbb12b9347bed9067320caa49d8efa381557392024151] Event => Message Status Change [Start Time : 09052019 08:53:44]:CUSTOM_PROCESSING_COMPLETED
Pattern 2 : --2019-05-09 06:49:05.590 -TRACE 6293 --- [ntainer#0-0-C-1] cssservice.MessageLogServiceImpl : [41a6811cbc1c66eda0e942712a12a003d6bf4654b3edb6d24bf159b592afc64f1557384545548] Event => Message Failure Identified : 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"
}
}
我还注意到这两种 grok 模式都是单独工作的(如果我评论一个,那么另一个完美地工作)。当两种模式都处于活动状态时,Logstash 服务器也可以。但是当它们都打开并且在日志文件中添加一个新行时,它会引发一个 grokparse 错误。
我也想知道,虽然我将输入配置为从头开始读取文件,但即使在服务器重新启动后它也不会读取,除非我在日志中添加新行。为什么会有这种行为?
提前致谢。
解决方案
推荐阅读
- swift - UIStatusBarStyle 不会改变
- python - 快速验证生成的字符串(+数学)
- mysql - Mysql left join 从结果中删除重复值
- laravel - VueJS + element.eleme.io 如何为 el-select 设置默认选项值
- ios - 将 [String:AnyObject] 类型的字典分配给 [String: String] 给出零错误
- ruby-on-rails - ActiveAdmin 和动态 Rails 命名空间
- core-data - 核心数据 NSManagedObject 转换为 json 格式
- python - 无法在 codechef 上解决 Python 中的 NZEC 错误,尽管它在 IDE 上给出了正确的输出
- ios - iOS - 大标题隐藏了我的身体顶部
- r - 将数据框的列转换为因子