请求创建适配两类日志的Grok模式(附现有模式参考)
适配两类日志的Grok模式
核心调整背景
目标日志存在两种格式差异:一种包含非空的Kafka消息内容,另一种Kafka消息部分为空(仅[])。原有Grok模式无法兼容空消息场景,需针对性修改。
适配后的Grok模式
%{DATE:date} %{TIME:time} %{LOGLEVEL:log_level} %{WORD:log_type} \[%{DATA:kafka_msg}?\] - \[%{DATA:file_line}\.\] %{WORD:module_name} %{GREEDYDATA:msg}
关键修改说明
\[%{DATA:kafka_msg}?\]:给Kafka消息字段添加?标记为可选匹配,既可以捕获[xxx]格式的非空消息内容,也能匹配空的[](此时kafka_msg字段值为空)\[%{DATA:file_line}\.\]:明确匹配文件行部分末尾的.,避免原模式中%{DATA:file_line}.可能出现的匹配偏差
验证示例
可使用以下两类日志测试模式有效性:
- 带Kafka消息的日志:
2024-06-10 09:15:42 DEBUG CONSUMER [{"key":"123","value":"order"}] - [OrderProcessor.java:456.] InventoryModule Received Kafka message - 空Kafka消息的日志:
2024-06-10 09:16:05 WARN PRODUCER [] - [KafkaSender.java:78.] NotificationModule Failed to send message, retrying
内容的提问来源于stack exchange,提问作者Rasintha Dilshan Jayarathna
相关产品推荐
相关产品推荐

