ELK collecte plusieurs journaux de conteneur Docker (12)

Travailler ensemble pour créer et grandir ensemble ! C'est le 27ème jour de ma participation au "Nuggets Daily New Plan · August Update Challenge", cliquez pour voir les détails de l'événement

filebeat collecte les journaux de conteneur

De nombreuses entreprises utilisent désormais des conteneurs Docker pour exécuter des services. Il y aura de nombreux dockers sur une seule machine. Les journaux dans les conteneurs Docker doivent également être collectés et analysés. Filebeat dispose également d'un schéma de collecte de journaux pour les conteneurs Docker.

Adresse de configuration officielle www.elastic.co/guide/en/be…

1. Déployer le menu fixe

1.安装docker
[root@docker ~]# wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
[root@docker ~]# sed -i 's#download.docker.com#mirrors.tuna.tsinghua.edu.cn/docker-ce#' /etc/yum.repos.d/docker-ce.repo
[root@docker ~]# yum -y install docker-ce
[root@docker ~]#  tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://zggyaen3.mirror.aliyuncs.com"]
}
EOF
{
  "registry-mirrors": ["https://zggyaen3.mirror.aliyuncs.com"]
}


2.启动docker
[root@docker ~]# systemctl start docker

3.运行一个nginx容器
[root@docker ~]# docker run -d -p 888:80 nginx

4.查看容器日志路径,这个日志就是容器里面程序的日志
[root@docker ~]# docker inspect compassionate_mayer | grep log
        "LogPath": "/var/lib/docker/containers/7b345b1107fdd302d6b476403bb61eaca19414d42a3c316283d3f490f7380dfb/7b345b1107fdd302d6b476403bb61eaca19414d42a3c316283d3f490f7380dfb-json.log",

复制代码

2. Configurez filebeat pour collecter les journaux de conteneur Docker uniques

2.1. Configurer filebeat

1.配置filebeat
[root@docker /etc/filebeat]# vim /etc/filebeat/filebeat.yml
filebeat.inputs:
- type: docker
  containers.ids:
    - '7b345b1107fdd302d6b476403bb61eaca19414d42a3c316283d3f490f7380dfb'			#填写容器的id

output.elasticsearch:
  hosts: ["192.168.81.210:9200"]
  indices:
  index: "docker-nginx-%{+yyyy.MM.dd}"
  
setup.template.name: "docker"
setup.template.pattern: "docker-*"
setup.template.enabled: false
setup.template.overwrite: true

2.重启filebeat
[root@docker /etc/filebeat]# systemctl restart filebeat.service
复制代码

2.2. Vérifier si es a généré un index

insérez la description de l'image ici

2.3. L'indice sur les es associés au kibana

Cliquez sur Gestion --- Créer un indexinsérez la description de l'image ici

2.4. Afficher les journaux collectés

Cliquez sur Découverte --- Sélectionnez Index

Les journaux du conteneur Docker collectés cette fois-ci ne sont pas si subdivisés. Bien que ce journal soit également au format json, Docker les met dans une valeur par défaut.

insérez la description de l'image ici

journal formaté

insérez la description de l'image ici

3. Configurer filebeat pour collecter plusieurs journaux de conteneur

3.1. Exécuter plusieurs dockers

[root@docker ~]# docker run -d -p 999:80 nginx
[root@docker ~]# docker run -d -p 888:80 nginx
复制代码

3.2. Configurer filebeat

[root@docker ~]# grep -Ev '#|^$' /etc/filebeat/filebeat.yml
filebeat.inputs:
- type: docker
  containers:
    path: "/var/lib/docker/containers"			#docker容器日志的路径
    ids:
      - "*"							#如果只想收集一个容器的日志,就写一个容器的id号,如果想收集所有容器的日志则写*
      
output.elasticsearch:
  hosts: ["192.168.81.210:9200"]
  indices:
  index: "docker-nginx-%{+yyyy.MM.dd}"
  
setup.template.name: "docker"
setup.template.pattern: "docker-*"
setup.template.enabled: false
setup.template.overwrite: true
复制代码

3.3. Générer un journal

ab -c 100 -n 5672 http://www.jiangxl.com:999/
ab -c 100 -n 1000 http://www.jiangxl.com:888/

复制代码

3.4. Vérifiez si l'index es a ajouté des données

a augmenté

insérez la description de l'image ici

3.5.kibana index es associé

insérez la description de l'image ici

3.6. Vérifier si les journaux collectés proviennent de plusieurs conteneurs

C'est déjà un journal d'un conteneur différent

insérez la description de l'image ici

Je suppose que tu aimes

Origine juejin.im/post/7136113825773781029
conseillé
Classement