进入日志收集及监控报警这个领域,感觉一切都要从新学习。
现在周五,这周有两天用来踩坑了。
作些记录。
第一个遇到的问题,就是不同的应用组件,在k8s里,会生成不同的日志,如何采集到这些不同的日志呢?
由于filebeat是支持glob path的,所以我们可以使用这个技巧,来读取不同的组件的指定特征日志文件。
第二个问题,就是不同的日志文件,需要进入到不同的kafka的topic。最新版本是命名用fields来实现的。
所以,最终可以用的filebeat.yml样本如下:
filebeat.inputs: - type: log paths: - /xxx/logs/*a_app*/*access* fields: log_topics: a_topic - type: log paths: - /xxx/logs/*b_app*/*access* fields: log_topics: b_topic - type: log paths: - /xxx/logs/*c_app*/*access* fields: log_topics: c_topic output.kafka: enabled: true hosts: ["k1ip:9092", "k2ip:9092"] version: "0.8.2" topic: '%{[fields][log_topics]}'
修正一下,如果filebeat版本高,而kafka版本低,
则需要在output.kafka中,明确定义kafka才行。
不然,建立连接时,会提示什么kafka metadata EOF之类的错误。
切记!!!