Le système de surveillance Prometheus + Grafana coopère avec Cadvisor pour surveiller les conteneurs Docker

Prometheus utilise Cadvisor pour surveiller les conteneurs Docker

1. Présentation de Cadvisor

En règle générale, les entreprises ont beaucoup d'hôtes docker, vous devez donc surveiller docker. La surveillance docker peut utiliser les statistiques docker avec des commandes shell pour obtenir la valeur de la surveillance, mais elle ne peut pas être transmise à prometheus pour la collecte. Le docker de surveillance Zabbix est plus gênant, donc il y a le cadvisor de Google

Cadvisor peut non seulement collecter toutes les informations de conteneur en cours d'exécution sur une machine, mais fournit également l'interface http de l'interface de requête de base, ce qui est pratique pour prometheus pour capturer des données.

Cadvisor peut effectuer une surveillance en temps réel et une collecte de données de performances sur les ressources et les conteneurs sur les machines à nœuds, y compris l'utilisation du processeur, l'utilisation de la mémoire, le débit du réseau et l'utilisation du système de fichiers. Cependant, cadvisor présente un défaut et ne peut afficher les données de surveillance actuelles qu'en temps réel ., Les données chronologiques ne sont pas conservées, donc cadvisor doit être connecté à prometheus, et les données chronologiques sont stockées par la base de données tsdb intégrée de prometheus

Cadvisor utilise des groupes de contrôle Linux pour obtenir l'utilisation des ressources du conteneur, intégré dans k8s, et la configuration standard officielle

Cadvisor doit être installé sur chaque hôte docker

Docker surveille principalement la mémoire du conteneur, le processeur, le disque et la carte réseau

Commandes pour surveiller les performances du conteneur à l'aide des statistiques du docker

[root @ 192_168_81_220 docker] # docker stats --no-stream nerveux_moser
CONTAINER ID NAME CPU% MEM USAGE / LIMIT MEM% NET I / O BLOCK I / O PIDS
e265e173ac98 nerveux_moser 0,00% 5,605 Mo / 972,6 Mo 0,58% 2,42 Ko / 0B 27,3 Mo / 22,5 Ko 2

Enfin, coopérez avec grafana pour montrer l'effet de la surveillance des conteneurs docker.
Vous pouvez voir clairement le processeur, l'utilisation de la mémoire de chaque conteneur et le nombre de conteneurs en cours d'exécution sur chaque hôte dans la figure.
Insérez la description de l'image ici

2. Préparation de l'environnement

IP Nom du processeur un service
192.168.81.210 serveur-prometheus prométhée 、 grafana
192.168.81.220 192_168_81_220 docker 、 cadvisor
192.168.81.230 192_168_81_230 docker 、 cadvisor

3. Déployez le docker sur le serveur docker

Les serveurs 192.168.81.220/92.168.81.230 doivent être exploités

1.获取镜像源
wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
 
sed -i 's#download.docker.com#mirrors.tuna.tsinghua.edu.cn/docker-ce#' /etc/yum.repos.d/docker-ce.repo 

yum makecache fast

2.安装docker
yum -y install docker-ce
systemctl start docker
systemctl enable docker

3.配置镜像加速器
 tee /etc/docker/daemon.json <<-'EOF'
{
   "registry-mirrors": ["https://zggyaen3.mirror.aliyuncs.com"]
}
EOF


4.启动docker
systemctl restart docker

5.简单运行一个容器
docker run -d nginx:latest

4.Docker installer la surveillance de cadvisor

4.1. Installer cadvisor

Toutes les opérations sur l'hôte docker, les serveurs 192.168.81.220/92.168.81.230 doivent toutes être exécutées

docker run \
  --volume=/:/rootfs:ro \
  --volume=/var/run:/var/run:rw \
  --volume=/sys:/sys:ro \
  --volume=/var/lib/docker/:/var/lib/docker:ro \
  --volume=/dev/disk/:/dev/disk:ro \
  --publish=8080:8080 \
  --detach=true \
  --name=cadvisor \
  google/cadvisor:latest
  
注释:   --volume=/:/rootfs:ro 		#将/目录挂载到容器的/rootfs,权限为读
	    --volume=/var/run:/var/run:rw 	#将/var/run挂载到容器的/var/run目录,权限为读写
	    其他的volume都是这个意思,ro为读,rw为读写
	    --volume=/var/lib/docker/:/var/lib/docker:ro			#这个是将宿主机的docker目录挂载到容器,因为cadvisor需要监控所有容器,因此需要挂载
	    --publish=8080:8080 		#开放公共端口

L'effet final est que les deux machines ont démarré la mise en miroir cadvisor et nginx

Insérez la description de l'image ici

4.2. Visitez cadvisor pour afficher les données de surveillance

Visitez http: // host ip: 8080j

Insérez la description de l'image ici

4.3. Afficher les informations de surveillance d'un certain conteneur

Cliquez sur la page d'accueil / le menu fixe, et après avoir sauté dedans, vous pouvez voir la liste des conteneurs sous les sous-conteneurs. Les ID de conteneur affichés ci-dessous sont tous les ID de conteneur. Vous pouvez utiliser docker ps pour voir le conteneur spécifique

Insérez la description de l'image ici

Après ouverture, vous pouvez voir un indicateur de surveillance de conteneur spécifique

Insérez la description de l'image ici

Vous pouvez également voir l'image

Insérez la description de l'image ici

4.4 page d'index de suivi des conseillers

Visitez simplement http: // IP hôte: 8080 / metrics
Insérez la description de l'image ici

5. prométhée ajoute la surveillance de cadvisor

5.1 Installation de Prométhée

二进制安装详细看上一篇文章
docker安装
[root@prometheus-server ~]# docker run -d -p9090:9090  -v /data/prom/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus:latest 

5.1. Modifier le fichier de configuration prometheus

1.修改配置文件增加docker监控cadvisor
[root@prometheus-server ~]# vim /etc/prometheus/prometheus.yml 
  - job_name: "docker"
    static_configs:
    - targets: ['192.168.81.220:8080','192.168.81.230:8080']
2.刷新配置
[root@prometheus-server ~]# curl -X POST http://127.0.0.1:9090/-/reload

L'hôte de surveillance du docker est actif

Insérez la description de l'image ici

Vérifiez les éléments de surveillance, le début du conteneur est la surveillance

Insérez la description de l'image ici

6.prometheus + grafana réalise la surveillance et l'affichage graphique des conteneurs docker

6.1. Une grafana habillée

[root@prometheus-server ~]# rpm -ivh grafana-6.3.2-1.x86_64.rpm 
[root@prometheus-server ~]# systemctl start grafana-server
[root@prometheus-server ~]# systemctl enable grafana-server

Visitez http: // adresse du serveur: 3000

Insérez la description de l'image ici

6.1. Ajouter une source de données prometheus

Cliquez sur Ajouter une source de données

Insérez la description de l'image ici

Choisissez prométhée

Insérez la description de l'image ici

Remplissez l'adresse de prométhée

Insérez la description de l'image ici

6.2. Importer un modèle graphique de surveillance du menu fixe

6.2.1. Cliquez sur le signe + - importer

Insérez la description de l'image ici

6.2.2. Remplissez l'identifiant du modèle de surveillance

Remplissez ici le numéro d'identification du modèle de surveillance, le modèle de surveillance docker n ° 193 est meilleur

Insérez la description de l'image ici

6.2.3. Sélectionnez la source prometheus

Après avoir rempli le numéro d'identification, le modèle correspondant sera trouvé automatiquement

Sélectionnez la source prometheus correspondante et cliquez sur importer

Insérez la description de l'image ici

6.3. Afficher les graphiques

Choisissez la surveillance Docker

Insérez la description de l'image ici

La surprise de ce modèle est que vous ne pouvez pas voir les conteneurs sur un hôte spécifique, mais répertoriez à la place tous les conteneurs de l'hôte docker ici.
Insérez la description de l'image ici

7. Vous pouvez choisir l'importation de modèle de l'hôte docker

Enfin trouvé un modèle de surveillance de docker qui peut sélectionner l'hôte dans grafana

Lien de téléchargement https://grafana.com/api/dashboards/8321/revisions/3/download

Après avoir importé cette valeur faciale
Insérez la description de l'image ici

8. L'effet final

Insérez la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/weixin_44953658/article/details/111629225
conseillé
Classement