Logstash的message字段关键词匹配失效及单端口多日志处理咨询
Logstash单端口多源syslog日志处理方案
现有配置异常原因排查
- 所有5类日志都出现在Kibana的核心原因是你当前的配置只给匹配
vpn=ive的日志做了解析,没有配置非匹配日志的丢弃规则,未进入dissect分支的日志只会保持原始结构继续流转到output阶段,最终写入ES,所以会全部展示在Kibana中。 - 没有dissect失败报错是因为不匹配
vpn=ive的日志根本不会触发dissect插件执行,自然不会产生解析失败的日志。 - 临时验证可以在现有filter逻辑末尾添加规则:没有解析出VPN相关字段的日志直接丢弃,即可过滤非目标日志。
多类日志分类处理逻辑说明
你提到的分类逻辑完全可行,相关注意事项如下:
- 不要把分类逻辑放在input段实现:input段的核心能力是接收各类数据源,仅支持非常基础的字段添加操作,没有丰富的条件判断、特征匹配能力,强行在input段做分类会导致配置可读性、可维护性极差,也无法支撑后续的解析规则扩展。
- filter段是处理这类分类逻辑的最佳位置,参考配置示例如下:
filter { # 匹配VPN日志特征,执行KV解析打标签 if "vpn=ive" in [message] { kv { source => "message" field_split => " " value_split => "=" trim_key => "\s" trim_value => "\s" } add_tag => [ "vpn" ] } # 匹配DNS日志特征,执行JSON解析打标签,可替换为你实际的DNS日志特征关键词 else if "dns_event" in [message] { json { source => "message" skip_on_invalid_json => true } add_tag => [ "dns" ] } # 其余未匹配特征的无关日志直接丢弃 else { drop {} } }
- 如果后续需要新增另外三类日志的处理规则,直接在
else分支前补充对应特征的判断块即可,扩展性足够。 - 若不同类型日志的特征存在重叠,把特征更精准、匹配范围更小的判断逻辑放在前面,避免分类错误。
内容的提问来源于stack exchange,提问作者nav33n
相关产品推荐
相关产品推荐

