Grafana

Picasoft stocke des métriques dans InfluxDB et Prometheus, mais l’intérêt de tout ceci est de pouvoir les visualiser. Une solution logicielle très largement répandue est Grafana. C’est un logiciel libre qui permet de réaliser un vaste panel de graphiques différents en se connectant à différents types de TSDB, le tout dans une interface Web avec un accès fin des droits de lecture et écriture des dashboards.

Pour notre déploiement de Grafana, nous avons les besoins suivants :

  • déploiement avec Docker
  • utilisation derrière notre reverse-proxy Traefik pour la gestion du HTTPS
  • gestion des droits d’accès en lecture et écriture

Grafana est relativement simple à déployer dans la mesure où une image Docker officielle très complète existe déjà. Tout se passe via une interface Web donc le service est simple à exposer derrière Traefik, et il est possible de créer des utilisateurs et de gérer les droits d’accès aux différentes parties de Grafana.

Picasoft utilise l'image Docker officielle. Le README explique comment utiliser l’image.

On déploie donc notre Grafana sur la VM monitoring, en lui donnant les informations suivantes :

  • le nom et l’URL de l’instance
  • un utilisateur/mot de passe d’administration a créer automatiquement
  • les labels qui vont bien pour exposer le service derrière Traefik
  • un volume pour avoir une persistance des données

Une fois l’instance déployée, on peut se connecter dessus à l’aide des identifiants d’administration et commencer à configurer Grafana.

Il y a 2 concepts importants à comprendre dans Grafana : les datasources et les dashboards.
Les datasources sont, comme le nom l’indique, des sources de données pour Grafana. Ce sont des connecteurs qui peuvent se connecter à un grand nombre de base de données : InfluxDB, Prometheus, OpenTSDB, etc.
Les dashboards sont tout simplement des vues sur lesquelles il est possible de mettre plusieurs graphiques à visualiser.

Dans notre cas, Picasoft a simplement configuré un datasource de type InfluxDB. Il suffit de lui indiquer l’URL de InfluxDB ainsi que les identifiants permettant de lire la base de donnée. Il est important de spécifier, pour des raisons de sécurité, des accès en lecture seule à Grafana puisqu’il n’y a pas besoin d’aller écrire dans la base.

On fait de même avec Prometheus, mais en plus simple. On ajoute un datasource Prometheus mais on fait en sorte que Grafana puisse faire des requêtes sur le serveur Prometheus via un réseau Docker.

Pour Picasoft, il convient de créer un dashboard pour chaque service, et d’y afficher l’ensemble des métriques du service. Nous n’allons pas entrer dans le détail sur la configuration de dashboards Grafana ici, car la documentation est relativement complète.

Quelques ressources :

  • technique/adminsys/monitoring/metrologie/grafana.1604871545.txt.gz
  • de 127.0.0.1