进入日志收集及监控报警这个领域,感觉一切都要从新学习。

现在周五,这周有两天用来踩坑了。

作些记录。

第一个遇到的问题,就是不同的应用组件,在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之类的错误。

切记!!!

05-11 20:36