容器日志监控--filebeat容器收集日志

docker 会将容器日志记录到 /var/lib/docker/containers/id/id-json.log,我们就可以用filebeat把文件发送给elk就可以了

filebeat可以用容器启动, 我们只要把配置文件和日志目录挂给filebeat容器,filebeat容器再输出到elk,那就实现了日志收集.



拉取镜像

docker pull docker.elastic.co/beats/filebeat:7.2.0



创建文件  vim /docker/filebeat/filebeat.yml

[root@sz_xxgc_swarm01_18_2 filebeat]# cat filebeat.yml

filebeat.inputs:

- type: log

  enabled: true

  paths:

    - /var/log/docker/*/*.log

  json.keys_under_root: true

  json.add_error_key: true

  json.overwrite_keys: true

output.elasticsearch:

  hosts: ["10.10.18.2:9200"]

  index: "filebeat-testindex-%{+yyyy.MM.dd}"

setup.template.name: "filebeattest"

setup.template.pattern: "filebeattest-*"



创建目录并授权

说明: 创建这个目录是用来挂载给容器里面,存放日志,要授权,否则容器里面的用户没有权限在下面创建子目录

mkdir -p /docker/filebeat/registry/ && chmod 777 /docker/filebeat/registry/



启动容器

docker run -d   --name=filebeat -v /var/lib/docker/containers:/var/log/docker:ro -v /docker/filebeat/filebeat.yml:/usr/share/filebeat/filebeat.yml -v /docker/filebeat/registry/:/usr/share/filebeat/data/registry/ docker.elastic.co/beats/filebeat:7.2.0

查看容器filebeat容器是否已经正常收集容器日志

docker logs db88a32caa5f    


你可能感兴趣的:(容器日志监控--filebeat容器收集日志)