Este post está basado en un trabajo que realicé en Agosto con el amigo Ekaitz Zarraga. Básicamente esto es una de las formas de levantar un sistemas de monitorización de contenedores docker con prometheus. Paso a relatar los pasos que se pueden realizar:
Clonamos el repositorio:
# git clone https://github.com/vegasbrianc/prometheus.git /opt/prometheus
# cd /opt/prometheus
OPCIONAL: No exponer al mundo exterior algunos puertos
Cambiando en /opt/prometheus/docker-compose.yml por ejemplo 9090:9090 por solo 9090 en ports.
Definimos la password que usaremos en grafana (para el user admin):
# PASSWORD="lapassworddegrafana"
# sed -e "s:GF_SECURITY_ADMIN_PASSWORD=.*:GF_SECURITY_ADMIN_PASSWORD=$PASSWORD:" -i /opt/prometheus/grafana/config.monitoring
Sustituir la configuración de prometheus por la siguiente (en el archivo /opt/prometheus/prometheus/prometheus.yml ):
global:
external_labels:
monitor: 'my-project'
rule_files:
- 'alert.rules'
alerting:
alertmanagers:
- scheme: http
static_configs:
- targets:
- "alertmanager:9093"
scrape_configs:
- job_name: 'prometheus'
scrape_interval: 5s
static_configs:
- targets: ['localhost:9090']
- job_name: 'cadvisor'
scrape_interval: 5s
static_configs:
- targets: ['cadvisor:8080']
- job_name: 'node-exporter'
scrape_interval: 5s
static_configs:
- targets: ['node-exporter:9100']
NOTA: Los cambios realizados en la conf han sido realmente estos (quitando los otros que representaban lo mismo):
static_configs:
– targets: [‘cadvisor:8080’]
…
static_configs:
– targets: [‘node-exporter:9100’]
Levantar los contenedores:
# docker-compose up -d
Se levantarán las siguientes interfaces en estos puertos:
– Grafana – Puerto 3000
– AlertManager – Puerto 9093
– cadvisor – Puerto 8080
– Prometheus – Puerto 9090
– Node-Exporter – Puerto 9100
Se tendría que poder ya ver la monitorización en la interfaz web de Grafana de los contenedores que tengamos.
Un saludo cordial.