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.
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
4.2. Visitez cadvisor pour afficher les données de surveillance
Visitez http: // host ip: 8080j
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
Après ouverture, vous pouvez voir un indicateur de surveillance de conteneur spécifique
Vous pouvez également voir l'image
4.4 page d'index de suivi des conseillers
Visitez simplement http: // IP hôte: 8080 / metrics
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
Vérifiez les éléments de surveillance, le début du conteneur est la surveillance
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
6.1. Ajouter une source de données prometheus
Cliquez sur Ajouter une source de données
Choisissez prométhée
Remplissez l'adresse de prométhée
6.2. Importer un modèle graphique de surveillance du menu fixe
6.2.1. Cliquez sur le signe + - importer
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
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
6.3. Afficher les graphiques
Choisissez la surveillance Docker
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.
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