通常 filebeat可以用sidecar的模式来收集容器内的日志到kafka或es。
但是如果使用rancher配置了将日志收集到es,若同时希望将日志收集到kafka。在rancher2.4.5中无法配置,此时也无法使用sidecar模式来收集日志。
最简单的方式是将filebeat打包到镜像内,在同一容器内启动多进程来实现。
filebeat配置日志收集到kafka非常方便。只需设置个yaml文件:
例如创建: logs_kafka.yml
filebeat.inputs:
- type: log
enabled: true
paths:
- /work/logs/*
output.kafka:
hosts: ["host1:9092","host2:9092"]
topic: logs-test
keep_alive: 10s
运行命令:
./filebeat -c logs_kafka.yml
#若要打印日志,加-e参数
#./filebeat -c logs_kafka.yml -e