最近在做测试,用 filebeat 采集日志后,丢给 logstash ,再丢给 elk 。
然后就被 logstash 恶心到了。
日志里有些字段,是带"."的,比如kubernetes.deployment.name
,如果不用 filter 做处理,elk 是能收到这个字段的。如果用 filter ,只筛选部分字段,丢给 elk ,那直接就把带"."的字段都忽视了。比如下边这个配置:
if [fields][source] == "ack" {
prune {
whitelist_names => ["message", "kubernetes\.deployment\.name", "stream", "@timestamp"]
}
}
elk 能看到"message", , "stream", "@timestamp"。看不到 "kubernetes.deployment.name"。 查到官方论坛有说什么有安全隐患,2.0 elk 不再接收带"."的字段。虽说我用的 8 版本,不过应该是同一个问题。
不处理的时候,所有字段都接收,做过处理后不接收“.”了,这是什么前卫设计,真理解不了。