Filebeat自定义索引 && 多output过滤
一、目标
1)实现自定义索引
2)不同的input输出到各自对应的索引,nginx的日志输出到index-nginx的索引,zabbix的日志输出到index-zabbix,app的日志输出到index-app(如图1);这样不会弄成大杂烩。
图1:
结果图:
二、配置文件
# 定义app、zabbix、nginx等应用的input类型、以及存放的具体路径 filebeat.inputs: - type: log enabled: true paths: - /var/log/*.log fields: source: app - type: log enabled: true paths: - /var/log/nginx/*.log fields: source: nginx - type: log enabled: true paths: - /var/log/zabbix/*.log fields: source: zabbix filebeat.config.modules: path: ${path.config}/modules.d/*.yml reload.enabled: true setup.template.settings: index.number_of_shards: 1 # 定义kibana的IP:PORT setup.kibana: host: "10.0.0.11:5601" # 定义模板的相关信息 setup.template.name: "lile_log" setup.template.pattern: "lile-*" setup.template.overwrite: true setup.template.enabled: true # 在7.4这个版本中,自定义ES的索引需要把ilm设置为false setup.ilm.enabled: false # 定义app、zabbix、nginx的output output.elasticsearch: # 定义ES的IP:PORT hosts: ["10.0.0.24:9200"] # 这里的index前缀lile与模板的pattern匹配,中间这一串设置为field.source变量,方面后面具体的匹配 index: "lile-%{[fields.source]}-*" indices: # 这里的前缀lile同为与模板的pattern匹配,中间为field.source具体的值,当前面的input的field.source值与这里的匹配时,则index设置为定义的 - index: "lile-app-%{+yyyy.MM.dd}" when.equals: fields: source: "app" - index: "lile-zabbix-%{+yyyy.MM.dd}" when.equals: fields.source: "zabbix" - index: "lile-nginx-%{+yyyy.MM.dd}" when.equals: fields.source: "nginx" processors: - add_host_metadata: ~ - add_cloud_metadata: ~
难点:
setup.ilm.enabled: false 在7.4版本中,需要把ilm这个设置关闭掉,才能自定义索引
三、总结
这个多output弄了将近一个星期,不断的测试,网上感觉资料很少,更多的是自己知识的匮乏,不理解原理。虽然用了这么长的时间,可能觉得有点浪费时间,但是既然开始了,就不想放弃,人的自信心也是这样一件事情一件事情累计起来的,如果觉得这个太难了不想浪费时间,久而久之,什么都做不好。后续还得好好把ES的原理好好理解。
参考网址:
https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-input-log.html
-------------------------------------------
个性签名:在平凡中坚持前行,总有一天会遇见不一样的自己!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!
万水千山总是情,打赏一分行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主,哈哈哈(っ•̀ω•́)っ✎⁾⁾!
微信公众号 微信打赏 支付宝打赏
posted on 2019-11-26 06:50 Captain_Li 阅读(12369) 评论(11) 编辑 收藏 举报