logstash - 从 json 子字符串中提取字段 - logstash
问题描述
我对Logstash
过滤东西还很陌生。我已经低于 json 字符串
{
"changed": false,
"msg": "Foo Facts: oma_phase: prd, oma_app: fsd, oma_apptype: obe, oma_componenttype: oltp, oma_componentname: -, oma_peak: pk99, oma_phaselevel: prd"
}
我想提取字段oma_phase, oma_app, oma_apptype, oma_componenttype, oma_componentname, oma_peak & oma_phaselevel
。
我试过下面的原生 json 过滤器,
filter {
if [type] == "ansible" {
json {
source => "ansible_result"
}
}
}
这ansible_result
是保存上述 json 值的键。但是,有许多键具有不同的值但具有相同的ansible_result
键。这会创建很多索引键,我不希望这样。
我想要某种过滤器,它可以Foo Facts
在提取oma_*
字段后匹配子字符串和那里。
我不知何故无法使用grok
过滤器来匹配子字符串。如果你能帮我解决这个问题,那就太好了。
提前谢谢了..
解决方案
请尝试以下代码:
filter {
json {
source => "message"
}
}
ansible_result json 将被视为一条消息。