Howto Grafana
- Documentation : http://docs.grafana.org/
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