当名称中有句点时,Logstash 过滤器不起作用
Logstash Filter not working when something has a period in the name
所以我需要编写一个过滤器,将字段名称中的所有句点更改为下划线。我正在使用 mutate
,我可以做一些事情而不是其他事情。作为参考,这里是我在 Kibana 中的当前输出。
看到那些写着 "packet.event-id" 等等的字段了吗?我需要重命名所有这些。这是我写的过滤器,我不知道为什么它不起作用
filter {
json {
source => "message"
}
mutate {
add_field => { "pooooo" => "AW CMON" }
rename => { "offset" = "my_offset" }
rename => { "packet.event-id" => "my_packet_event_id" }
}
}
问题是我可以添加一个字段,"offset" 的重命名是可行的。但是当我尝试做数据包时,没有任何改变。我觉得这应该很简单,但我很困惑为什么只有带句点的那个不起作用。
我已经刷新了Kibana的索引,还是没有任何变化。有人有解决方案吗?
当它们在 Kibana 中以点分符号出现时,这是因为您最初以 json 格式加载的文档有结构。
要使用 logstash 访问文档结构,您需要在重命名过滤器中使用 [packet][event-id]
而不是 packet.event-id
。
例如:
filter {
mutate {
rename => {
"[packet][event-id]" => "my_packet_event_id"
}
}
}
您可以通过向 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 用于替换字段名称中的点,但在这种情况下不应应用。
所以我需要编写一个过滤器,将字段名称中的所有句点更改为下划线。我正在使用 mutate
,我可以做一些事情而不是其他事情。作为参考,这里是我在 Kibana 中的当前输出。
看到那些写着 "packet.event-id" 等等的字段了吗?我需要重命名所有这些。这是我写的过滤器,我不知道为什么它不起作用
filter {
json {
source => "message"
}
mutate {
add_field => { "pooooo" => "AW CMON" }
rename => { "offset" = "my_offset" }
rename => { "packet.event-id" => "my_packet_event_id" }
}
}
问题是我可以添加一个字段,"offset" 的重命名是可行的。但是当我尝试做数据包时,没有任何改变。我觉得这应该很简单,但我很困惑为什么只有带句点的那个不起作用。
我已经刷新了Kibana的索引,还是没有任何变化。有人有解决方案吗?
当它们在 Kibana 中以点分符号出现时,这是因为您最初以 json 格式加载的文档有结构。
要使用 logstash 访问文档结构,您需要在重命名过滤器中使用 [packet][event-id]
而不是 packet.event-id
。
例如:
filter {
mutate {
rename => {
"[packet][event-id]" => "my_packet_event_id"
}
}
}
您可以通过向 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 用于替换字段名称中的点,但在这种情况下不应应用。