如何调整Netfilter syslog日志格式以适配指定Grok解析规则?
适配指定Grok模式的Netfilter日志格式调整方案
原始日志样本
<5>Apr 24 12:07:59 CoreNetwork01 kernel: NF:DROP:IN=wan2 OUT=lan2 MAC=00:90:0b:93:24:80:7c:21:0e:0d:38:84:08:00 SRC=114.123.102.228 DST=201.112.128.68 LEN=34 TOS=0x00 PREC=0x00 TTL=23 ID=52031 PROTO=TCP TYPE=8 CODE=0 ID=51033 SEQ=0 MARK=0x130000
目标Grok模式
<%{INT}>( )?%{SYSLOGTIMESTAMP:event_time} %{HOST:src_host} %{DATA:product_event_type}: \[.*?\] %{NOTSPACE}( %{WORD:action})? %{GREEDYDATA:kv_data}
不匹配核心原因
目标模式要求%{DATA:product_event_type}: 之后必须包含方括号包裹的任意内容,接着是一个非空格字符串,可选跟随动作字段,最后是键值对数据。但原始日志中kernel: NF:DROP:直接衔接键值对,缺少方括号结构和对应匹配段的格式。
调整后的日志格式
<5>Apr 24 12:07:59 CoreNetwork01 kernel: [netfilter] NF DROP IN=wan2 OUT=lan2 MAC=00:90:0b:93:24:80:7c:21:0e:0d:38:84:08:00 SRC=114.123.102.228 DST=201.112.128.68 LEN=34 TOS=0x00 PREC=0x00 TTL=23 ID=52031 PROTO=TCP TYPE=8 CODE=0 ID=51033 SEQ=0 MARK=0x130000
调整细节说明
- 在
kernel:后添加[netfilter](方括号内内容可自定义),匹配模式中的\[.*?\]段 - 将原始的
NF:DROP:修改为NF DROP,其中NF对应模式中的%{NOTSPACE},DROP对应可选的%{WORD:action}字段 - 后续键值对部分保持不变,匹配
%{GREEDYDATA:kv_data}
调整后,日志各部分将完全匹配目标Grok模式的分段规则,实现正常解析。
内容的提问来源于stack exchange,提问作者Kevin
相关产品推荐
相关产品推荐

