Prometheus usa ca 0000- para monitorear los contenedores de la ventana acoplable
1. Descripción general de Cadvisor
Por lo general, las empresas tienen muchos hosts de la ventana acoplable, por lo que debe monitorear la ventana acoplable. El monitoreo de la ventana acoplable puede usar las estadísticas de la ventana acoplable con comandos de shell para obtener el valor de la supervisión, pero no se puede pasar a prometheus para su recopilación. La ventana acoplable de monitoreo de Zabbix es más problemática, por lo que existe la categoría de Google
Cadvisor no solo puede recopilar toda la información del contenedor en ejecución en una máquina, sino que también proporciona la interfaz http de la interfaz de consulta básica, que es conveniente para que prometheus capture datos.
Cadvisor puede realizar monitoreo en tiempo real y recopilación de datos de rendimiento en los recursos y contenedores en máquinas de nodo, incluido el uso de CPU, el uso de memoria, el rendimiento de la red y el uso del sistema de archivos. Sin embargo, ca went tiene una falla y solo puede mostrar los datos de monitoreo actuales en tiempo real ., Los datos cronológicos no se conservan, por lo que ca 0000- debe estar conectado a prometheus, y los datos cronológicos se almacenan en la base de datos tsdb incorporada de prometheus.
Cadvisor usa cgroups de Linux para obtener el uso de recursos del contenedor, integrado en k8s, y la configuración estándar oficial
Cadvisor debe instalarse en cada host de la ventana acoplable
Docker monitorea principalmente la memoria del contenedor, la CPU, el disco y la tarjeta de red
Comandos para monitorear el rendimiento del contenedor usando las estadísticas de Docker
[root @ 192_168_81_220 docker] # docker stats --no-stream dangerous_moser
NOMBRE DE ID DE CONTENEDOR CPU% MEM USAGE / LIMIT MEM% NET I / O BLOCK I / O PIDS
e265e173ac98 nervioso_moser 0.00% 5.605MiB / 972.6MiB 0.58% 2.42kB / 0B 27,3 MB / 22,5 kB 2
Finalmente, coopere con grafana para mostrar el efecto de monitorear los contenedores de la ventana acoplable.
Puede ver claramente la CPU, el uso de memoria de cada contenedor y la cantidad de contenedores que se ejecutan en cada host en la figura.
2. Preparación ambiental
IP | Nombre de la CPU | Servicio |
---|---|---|
192.168.81.210 | servidor prometheus | prometeo 、 grafana |
192.168.81.220 | 192_168_81_220 | docker 、 ca went |
192.168.81.230 | 192_168_81_230 | docker 、 ca went |
3. Implementar Docker en el servidor de Docker.
Los servidores 192.168.81.220/92.168.81.230 necesitan ser operados
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
Monitoreo de instalación de Docker
4.1. Instalar ca went
Todas las operaciones en el host de la ventana acoplable, los servidores 192.168.81.220/92.168.81.230 deben funcionar
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 #开放公共端口
El efecto final es que ambas máquinas han iniciado la duplicación de nginx y ca 0000-
4.2. Visite ca went para ver los datos de seguimiento
Visite http: // host ip: 8080j
4.3. Ver la información de seguimiento de un contenedor determinado
Haga clic en la página de inicio / ventana acoplable y, después de saltar, podrá ver la lista de contenedores debajo de los subcontenedores. Los ID de contenedor que se muestran a continuación son todos los ID de contenedor. Puede usar docker ps para ver el contenedor específico
Después de abrir, puede ver un indicador de monitoreo de contenedor específico
También puedes ver la imagen
4.4.página de índice de seguimiento de ca went
Simplemente visite http: // host ip: 8080 / metrics
5.prometheus agregar monitorización de ca went
5.1.instalación de Prometheus
二进制安装详细看上一篇文章
docker安装
[root@prometheus-server ~]# docker run -d -p9090:9090 -v /data/prom/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus:latest
5.1. Modificar el archivo de configuración de 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
El host de supervisión de Docker está activo
Verifique los elementos de monitoreo, el comienzo del contenedor está monitoreando
6.prometheus + grafana realiza la monitorización y visualización gráfica de contenedores docker
6.1. Una grafana vestida
[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
Visite http: // dirección del servidor: 3000
6.1. Agregar fuente de datos prometheus
Haga clic en Agregar fuente de datos
Elige prometeo
Complete la dirección de prometheus
6.2. Importar plantilla gráfica de supervisión de Docker
6.2.1. Haga clic en el signo +: importar
6.2.2. Complete la identificación de la plantilla de monitoreo
Complete el número de identificación de la plantilla de monitoreo aquí, la plantilla de monitoreo de Docker No. 193 es mejor
6.2.3. Seleccionar fuente prometheus
Después de completar el número de identificación, la plantilla correspondiente se encontrará automáticamente
Seleccione la fuente de prometheus correspondiente y haga clic en importar
6.3. Ver gráficos
Elija el monitoreo de Docker
El problema de esta plantilla es que no puede ver los contenedores en un host específico, sino que enumera todos los contenedores del host de la ventana acoplable aquí.
7. Puede elegir la importación de la plantilla del host de la ventana acoplable.
Finalmente encontré una plantilla de monitoreo de Docker que puede seleccionar el host en grafana.
Enlace de descarga https://grafana.com/api/dashboards/8321/revisions/3/download
Después de importar este valor nominal