Login Logout

Howto Grafana

Grafana permet d’effectuer des requêtes sur des bases de données, pour en afficher des graphes personnalisés. Nous l’utilisons en combinaison avec collectd et InfluxDB.

Installation

Grafana n’étant pas disponible sous Debian Bullseye, nous utilisons les dépôts fournis par GrafanaLabs.

# echo "deb https://packages.grafana.com/oss/deb stable main" > /etc/apt/sources.list.d/grafana.list
# wget -O /etc/apt/trusted.gpg.d/grafana.asc https://packages.grafana.com/gpg.key
# dos2unix /etc/apt/trusted.gpg.d/grafana.asc
# chmod 644 /etc/apt/trusted.gpg.d/grafana.asc
# apt update
# apt install grafana
# systemctl daemon-reload
# systemctl enable grafana-server.service
# systemctl start grafana-server.service

# grafana-server -v
Version 8.2.1 (commit: 88622d7f09, branch: HEAD)

# systemctl status grafana-server.service
● grafana-server.service - Grafana instance
   Loaded: loaded (/usr/lib/systemd/system/grafana-server.service; enabled; vendor preset: enabled)
     Docs: http://docs.grafana.org
 Main PID: 2400 (grafana-server)
    Tasks: 35 (limit: 4915)
   CGroup: /system.slice/grafana-server.service
           └─2400 /usr/sbin/grafana-server --config=/etc/grafana/grafana.ini --pidfile=/var/run/grafana/grafana-server.pid cfg:default.paths.logs=/var/log/grafana cfg:default.paths.data=/var/lib/grafana cfg:default.paths.plugins=/var/lib/grafana/plugins cfg:default.paths.provisioning=/etc/grafana/provisioning

Configuration

On modifie le fichier de configuration /etc/grafana/grafana.ini afin de n’écouter qu’en local, pour ensuite utiliser un reverse proxy vers 127.0.0.1:3000. On cache également l’affichage de la version utilisée de Grafana.

[server]
http_addr = 127.0.0.1

[auth.anonymous]
hide_version = true

Authentification LDAP

Modifier la configuration /etc/grafana/grafana.ini :

[auth.ldap]
enabled = true
config_file = /etc/grafana/ldap.toml
allow_sign_up = true

Puis configurer le fichier /etc/grafana/ldap.toml en conséquence.

Reverse proxy avec sous dossier

Si grafana est dans un sous-dossier de la forme example.com/grafana/ plutôt que grafana.example.com, il faut alors l’indiquer dans la configuration :

[server]
root_url = http://localhost:3000/grafana/

Emplacement des données

Les données de Grafana (sources, dashboards, graphes, utilisateurs, …) sont stockées par défaut dans /var/lib/grafana.

Configuration SMTP

Pour pouvoir utiliser la fonction “mot de passe oublié”, le serveur SMTP doit être configurée :

[smtp]
enabled = true
host = localhost:25
skip_verify = true
from_address = grafana@example.com
from_name = Grafana Example

Utilisation

Les identifiants par défaut sont admin/admin, et doivent être changés à la première connexion à l’interface.

Ajouter une source

Pour ajouter par exemple une source InfluxDB, avec les données dans une base collectd :

  • Configuration > Data Sources > Add data source
  • Choisir InfluxDB
  • Name : Collectd (pour indiquer la source des données et non le nom de la base)
  • Query Language : InfluxQL
  • URL : http://localhost:8086
  • Access : Server
  • Database : collectd
  • User : <username>
  • Password : <password>

Avec l’authentification configurée ou non selon la configuration d’InfluxDB

Créer un dashboard

  • Create > Dashboard
  • Configurer le dashboard en cliquant sur la roue dentée en haut à droite

Un dashboard hérite des permissions de son dossier parent. Pour ne pas avoir les permissions par défaut every viewers can view et every editors can edit, étant donné que les permissions du dossier par défaut Général ne sont pas modifiables, il faut créer un nouveau dossier n’ayant pas ces permissions et y placer les dashboards. Ainsi, les utilisateurs n’auront par défaut pas accès à tous les dashboards.

Des dashboards créés par la communauté peuvent être importés depuis https://grafana.com/dashboards

Créer un graphe

  • Se rendre dans le dashboard précédemment créé > En haut à droite, choisir Add panel > Choisir le type de graphe
  • Cliquer sur Panel Title > Edit
  • Parcourir les onglets pour choisir la source et configurer le graphe