Skip to content
Snippets Groups Projects

Grafana 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) et des machines (via Prometheus).

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.

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.

Pour collecter des métriques, il est nécessaire d'installer des exporters sur les machines cible : voir la documentation.

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 pour investiguer et régler le problème.

Emplacements

La configuration est réalisée :

  • Par les variables d'environnement de Compose, qui permettent d'accéder à tous les paramètres de la configuration (voir la documentation) : cette méthode est utilisée pour tous les paramètres non-critiques.
  • Par le fichier ldap.toml pour la configuration spécifique au LDAP. Ce fichier peut faire référence à des variables d'environnement avec cette syntaxe, pour les données critiques (e.g. mot de passe)
  • Par le fichier grafana.secrets, pour les secrets.

Utilisateurs

Il y a trois types d'utilisateurs :

  • L'administrateur de l'instance, configuré via l'environnement (Compose et secret)
  • Les utilisateurs LDAP
  • Les utilisateurs créés manuellement, comme Rhizome

Lancement

Copier grafana.secrets.example dans grafana.secrets et remplacer les valeurs. Le mot de passe LDAP de grafana se trouve dans le pass. Lancer :

docker-compose up -d

Mise à jour

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 de Grafana et la documentation de Prometheus pour le vérifier.