当名称中包含句点时,Logstash过滤器无法正常工作

时间:2017-02-09 15:57:03

标签: logstash kibana filebeat

所以我需要编写一个过滤器,将字段名称中的所有句点更改为下划线。我喜欢变异,我可以做一些事情,而不是其他事情。这里是我在Kibana的当前输出。

Kibana Data

查看那些说“packet.event-id”等字段?我需要重命名所有这些。这是我写的过滤器,我不知道它为什么不起作用

The filter

问题是我可以添加一个字段,并重命名“offset”WORKS。但是,当我尝试做包时,没有任何改变。我觉得这应该很简单,我很困惑为什么只有一个有句号的人不起作用。

我已经更新了Kibana中的索引,但仍然没有任何变化。有人有解决方案吗?

2 个答案:

答案 0 :(得分:2)

当它们以Kibana中的点缀符号显示时,它是因为最初以json格式加载的文档有结构。

要使用logstash访问文档结构,您需要在重命名过滤器中使用[packet][event-id]而不是packet.event-id

例如:

filter {
    mutate { 
        rename => { 
            "[packet][event-id]" => "my_packet_event_id" 
        }
    }
}

答案 1 :(得分:0)

您可以通过向filebeat.yml添加几行配置直接在Filebeat中进行JSON解析。

filebeat.prospectors:
- paths:
    - /var/log/snort/snort.alert
  json.keys_under_root: true
  json.add_error_key: true
  json.message_key: log

您不需要重命名字段。如果您确实需要访问Logstash中的字段,则可以将该字段引用为[packet][length]。有关语法的文档,请参阅Logstash field references

顺便说一句,有de_dot替换字段名称中的点,但在这种情况下不应该应用。