Logstash的xml filter插件用于将合法XML字符串字段解析为嵌套事件字段,需指定source和target,支持命名空间、属性提取及 whitespace 处理,但要求输入严格符合XML格式。

Logstash 的 xml filter 插件专门用于解析 XML 格式的日志内容,核心是把一段 XML 字符串转换成嵌套的 Logstash 事件字段。关键在于:源字段必须是合法 XML 字符串,且需明确指定目标字段名和命名空间(如有)。
确保输入是有效的 XML 字符串
XML filter 不会自动识别或提取 XML 片段,它只处理已存在于事件中的某个字段(比如 message),且该字段值必须是格式正确的 XML。常见错误是原始日志包含非 XML 冗余文本(如时间戳、日志级别前缀),需先用 dissect 或 grok 提取纯 XML 部分。
- ✅ 正确示例:
"<log><level>INFO</level><msg>User login</msg></log>" - ❌ 错误示例:
"2024-05-10T08:30:00 INFO [app] <log>...</log>"—— 需先剥离非 XML 内容
基础配置:指定 source 和 target
最简配置只需 source(源字段名)和 target(解析后存入的目标字段名)。解析后,XML 元素会转为嵌套哈希,文本内容默认存入 _text 键(除非用 strip_whitespace 或 store_xml 调整)。
filter {
xml {
source => "message"
target => "parsed_xml"
}
}登录后复制
若原始 message 是 <event><id>123</id><type>login</type></event>,则结果中 [parsed_xml][event][id][_text] 为 "123",[parsed_xml][event][type][_text] 为 "login"。
还木有评论哦,快来抢沙发吧~