Skip to content
Snippets Groups Projects
Verified Commit eea5b62b authored by Quentin Duchemin's avatar Quentin Duchemin
Browse files

[Prometheus] Merge Grafana and Prometheus, add Prom config and doc

parent c6f77913
No related branches found
No related tags found
1 merge request!50Remove CI
## Grafana
# Grafana et Prometheus
Ce dossier contient les ressources nécessaires pour lancer une instance Grafana, qui nous sert à visualiser les métriques des services (via [pica-metrics-bot](../pica-metrics-bot)) et Prometheus.
Ce dossier contient les ressources nécessaires pour lancer une instance de Grafana **et** de Prometheus, qui nous servent à collecter et visualiser les métriques des services (via [pica-metrics-bot](../pica-metrics-bot)) et des machines (via Prometheus).
Notez que Rhizome a aussi un compte créé manuellement sur l'instance : il faudra faire attention à les prévenir en cas de mise à jour ou de déplacement de l'instance.
Pour plus de facilité, ces deux services doivent communiquer via le même réseau, c'est pourquoi ils sont dans le même Docker Compose. Il n'y a pas de raisons de mettre ces deux services sur une machine différente, ce qui aurait pour seul effet de créer de la complexité supplémentaire.
Attention : même si l'authentification LDAP est activée, elle semble ne pas fonctionner : la connexion ne fonctionne que grâce à l'utilisateur administrateur. Voir [cette page](https://grafana.com/docs/grafana/latest/auth/ldap/#ldap-debug-view) pour investiguer et régler le problème.
Notez que Rhizome a aussi un compte créé manuellement sur l'instance Grafana : il faudra faire attention à les prévenir en cas de mise à jour ou de déplacement de l'instance.
## Configuration
Prometheus est un logiciel libre qui permet la collecte et le traitement de métriques, ainsi que le déclenchement d'alertes. Son fonctionnement est simple : un serveur va collecter régulièrement des métriques auprès de plusieurs *exporters*. Par exemple pour exporter des métriques systèmes, on utilise un *node_exporter* que l'on installe sur la machine, et on configure le serveur Prometheus (distant potentiellement) pour scraper cet exporter régulièrement.
### Prometheus
La configuration se fait dans [prometheus.yml](./prometheus.yml).
### Configuration
Pour collecter des métriques, il est nécessaire d'installer des *exporters* sur les machines cible : [voir la documentation](https://wiki.picasoft.net/doku.php?id=technique:monitoring:metrics:system_metrics).
### Grafana
Attention : même si l'authentification LDAP est activée, elle semble ne pas fonctionner : la connexion ne fonctionne que grâce à l'utilisateur administrateur. Voir [cette page](https://grafana.com/docs/grafana/latest/auth/ldap/#ldap-debug-view) pour investiguer et régler le problème.
#### Emplacements
......@@ -35,8 +47,10 @@ docker-compose up -d
### Mise à jour
Il suffit de mettre à jour le tag dans Compose. Pour le moment, nous utilisons une image de notre registre privé, mais il probable qu'il soit plus pertinent d'utiliser les images officielles (`grafana/grafana`).
Il suffit de mettre à jour le tag dans Compose.
Concernant Grafana, pour le moment, nous utilisons une image de notre registre privé, mais il probable qu'il soit plus pertinent d'utiliser les images officielles (`grafana/grafana`).
Cette possibilité devra être étudiée à la prochaine mise à jour.
Il ne devrait pas y avoir de manipulation spécifiques pour mettre à jour une instance Docker : voir [la documentation](https://grafana.com/docs/grafana/latest/installation/upgrading/#docker) pour le vérifier.
Il ne devrait pas y avoir de manipulation spécifiques pour mettre à jour une instance Docker : voir [la documentation de Grafana](https://grafana.com/docs/grafana/latest/installation/upgrading/#docker) et la [documentation de Prometheus](https://hub.docker.com/r/prom/prometheus) pour le vérifier.
version: '3.7'
networks:
metrics:
docker_default:
name: docker_default
volumes:
grafana:
name: grafana
prometheus:
name: prometheus
services:
grafana:
......@@ -23,4 +30,17 @@ services:
- "traefik.frontend.rule=Host:grafana.picasoft.net"
- "traefik.port=3000"
- "traefik.enable=true"
restart: always
networks:
- docker_default
- metrics
restart: unless-stopped
prometheus:
image: "prom/prometheus:v2.14.0"
container_name: prometheus
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
- prometheus:/prometheus
networks:
- metrics
restart: unless-stopped
File moved
# my global config
global:
scrape_interval: 1m # Set the scrape interval to every 1 minute
evaluation_interval: 1m # Evaluate rules every 1 minute
scrape_configs:
- job_name: 'voice-mumble'
static_configs:
- targets:
- 'voice.picasoft.net'
- job_name: 'pica01'
static_configs:
- targets:
- 'pica01.picasoft.net:9100'
relabel_configs:
- source_labels: [__address__]
regex: '.*'
target_label: instance
replacement: 'pica01'
- job_name: 'pica02'
static_configs:
- targets:
- 'pica02.picasoft.net:9100'
relabel_configs:
- source_labels: [__address__]
regex: '.*'
target_label: instance
replacement: 'pica02'
- job_name: 'monitoring'
static_configs:
- targets:
- 'monitoring.picasoft.net:9100'
relabel_configs:
- source_labels: [__address__]
regex: '.*'
target_label: instance
replacement: 'monitoring'
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment