Grafana Monitoring
Grafana est le meilleur et le plus complet des outils de monitoring. Il permet de surveiller n’importe quelle appareil ou service et sa personnalisation est sans limites.
Il fonctionne de concert avec Prometheus, qui va s’occuper de récupérer les métriques sur les machines, tandis que Grafana lui va nous permettre de créer des Dashboard afin d’afficher les informations.
Création du stack Grafana Prometheus Node exporter Cadvisor
mkdir Grafana
cd Grafana
nano docker-compose.yml
version: '3'
services:
prometheus:
image: prom/prometheus
container_name: prometheus
ports:
- "9090:9090"
volumes:
- /etc/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
command:
- '--config.file=/etc/prometheus/prometheus.yml'
restart: always
grafana:
image: grafana/grafana
container_name: grafana
ports:
- "3000:3000"
volumes:
- ./grafana:/var/lib/grafana
environment:
- GF_SECURITY_ADMIN_PASSWORD=yourpassword
user: "${UID}:${GID}"
depends_on:
- prometheus
restart: always
node_exporter:
image: quay.io/prometheus/node-exporter:latest
container_name: node_exporter
command:
- '--path.rootfs=/host'
pid: host
restart: unless-stopped
volumes:
- '/:/host:ro,rslave'
cadvisor:
# Check latest release https://github.com/google/cadvisor/releases
image: gcr.io/cadvisor/cadvisor:v0.45.0
container_name: cadvisor
ports:
- "8080:8080"
network_mode: host
volumes:
- /:/rootfs:ro
- /var/run:/var/run:ro
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro
- /dev/disk/:/dev/disk:ro
devices:
- /dev/kmsg
restart: unless-stopped
privileged: true
nano /etc/prometheus/prometheus.yml
global:
scrape_interval: 15s # By default, scrape targets every 15 seconds.
# Attach these labels to any time series or alerts when communicating with
# external systems (federation, remote storage, Alertmanager).
# external_labels:
# monitor: 'codelab-monitor'
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus'
# Override the global default and scrape targets from this job every 5 seconds.
scrape_interval: 30s
scrape_timeout: 30s
static_configs:
- targets: ['localhost:9090']
# Job for node_exporter
- job_name: 'node_exporter'
static_configs:
- targets: ['node_exporter:9100']
# Job for cadvisor
- job_name: 'cadvisor'
scrape_interval: 30s
scrape_timeout: 30s
static_configs:
- targets: ['cadvisor:8080']
Grafana et Prometheus sont maintenant préconfigurés.
Les Dashboard des applications sont accessibles à :
Grafana : http://localhost:3000
Identifiant : admin
Mot de passe : yourpassword
Prometheus : http://localhost:9090
nano /etc/prometheus/prometheus.yml
docker restart prometheus
Ajout de la source métrique à Grafana
1. Pour ajouter la source des métriques, il faut aller dans Administration/Data Sources
Création du Dashboard Grafana
Une fois que tout est configuré, il faut ajouter un premier Dashboard à Grafana. Etant un outil très difficile à configurer, le plus simple et rapide est encore d’importer un template de Dashboard et ensuite de le modifier selon nos envies et nos besoins.
Ce Dashboard va vous remonter les métriques des conteneurs qui tournent sur votre hôte.