Cómo monitorizar contenedores Docker usando SAM y cAdvisor
cAdvisor (abreviatura de contenedor Advisor) analiza y muestra el uso de recursos y los datos de rendimiento desde los contenedores en ejecución. cAdvisor ya viene preparado para publicar métricas en formato Prometheus.
https://prometheus.io/docs/guides/cadvisor/
Prometheus está integrado en SAM. Esto permite aprovechar las métricas de cAdvisor y mostrarlas a través de Prometheus y Grafana.
Como cAdvisor escucha en el puerto 8080, que entra en conflicto con el puerto de Nginx, puedes cambiar el puerto Nginx para solucionarlo:
Pasos para realizar la configuración:
1. Cambia el puerto nginx.
modifica nghix.conf:
server {
listen 9991;
Esto te permite acceder al IU de cAdvisor a través de http://server:8080/, que incluye muchos cuadros de mando (dashboards) de ejemplo.
2. Configura docker-compose para añadir el contenedor cAdvisor:
en docker-compose.yml, añade lo siguiente:
cadvisor:
image: google/cadvisor:latest
ports:
- 8080:8080
volumes:
- /:/rootfs:ro
- /var/run:/var/run:rw
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro
3. Configura prometheus para añadir un trabajo para cAdvisor:
modifica isc_prometheus.yml y añade:
- job_name: cadvisor
scrape_interval: 5s
static_configs:
- labels:
cluster: "1"
group: node
targets:
- cadvisor:8080
¡Ya está! Para asegurarse de que prometheus está cogiendo las métricas de cAdvisor, ve al IU de prometheus http://server:9090/. En Status->Targets, deberías ver el endpoint y el estado de cAdvisor.
Puedes descargar unos excelentes cuadros de mando (dashboards) predefinidos con métricas de cAdvisor. Solo necesitas añadir el parámetro del cluster en cada consulta.