filebeat如何根据document type 映射到redis的多个key中

Beats | 作者 apl330 | 发布于2017年06月20日 | 阅读数:2984

按照Filebeat redis output 插件的文档https://www.elastic.co/guide/e ... _keys,是支持keys的。也就是这样使用:
output.redis:
hosts: ["localhost"]
key: "default_list"
keys:
- key: "info_list" # send to info_list if `message` field contains INFO
when.contains:
message: "INFO"
- key: "debug_list" # send to debug_list if `message` field contains DEBUG
when.contains:
message: "DEBUG"
- key: "%{[type]}"
mapping:
"http": "frontend_list"
"nginx": "frontend_list"
"mysql": "backend_list"

但是我按照这样的写法,当document_type为http时,到达redis的数据的key仍然是http,而不是frontend_lit
已邀请:

谭雁宏

赞同来自: medcl football025

话不多说,我直接上我的配置文件吧!
 
 
[root@tanshuai filebeat]# cat filebeat.yml
filebeat.prospectors:
- input_type: log
paths:
- /var/log/cm*log
document_type: cmdb

- input_type: log
paths:
- /var/log/mysql*.log
document_type: mysql

output.redis:
hosts: ["127.0.0.1:6379"]
key: "default_list"
keys:
- key: "%{[type]}"
mapping:
"cmdb": "cmdb"
"mysql": "mysql"
[root@tanshuai filebeat]# redis-cli keys "*"
1) "mysql"
2) "cmdb"
希望对你有帮助!

谭雁宏

赞同来自:

其实我也是根据你这题目的提示 需要用到document type ,我才配个官网介绍keys的使用,然后自己研究了下,搞出来的。也感谢楼主呀!哈哈。

要回复问题请先登录注册