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.
# wget -O /etc/apt/keyrings/grafana.asc https://packages.grafana.com/gpg.key
# dos2unix /etc/apt/keyrings/grafana.asc
# chmod 644 /etc/apt/keyrings/grafana.asc
# echo "deb [signed-by=/etc/apt/keyrings/grafana.asc] https://packages.grafana.com/oss/deb stable main" > /etc/apt/sources.list.d/grafana.list
# apt update
# apt install grafana
# systemctl daemon-reload
# systemctl enable grafana-server.service
# systemctl start grafana-server.service
# grafana-server -v
Version 10.4.2 (commit: 22809dea50455ae875624827dd277b17621b4ed4, branch: HEAD)
# systemctl status grafana-server.service
● grafana-server.service - Grafana instance
Loaded: loaded (/lib/systemd/system/grafana-server.service; enabled; preset: enabled)
Active: active (running) since Tue 2024-04-30 15:37:26 CEST; 21s ago
Docs: http://docs.grafana.org
Main PID: 13827 (grafana)
Tasks: 15 (limit: 2352)
Memory: 54.1M
CPU: 2.276s
CGroup: /system.slice/grafana-server.service
└─13827 /usr/share/grafana/bin/grafana server --config=/etc/grafana/grafana.ini --pidfile=/run/grafana/grafana-server.pid --packaging=deb 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 (laisser les paramètres %(nom)s
tels quels)
:
[server]
root_url = %(protocol)s://%(domain)s:%(http_port)s/grafana/
Exemple de configuration avec Nginx :
location = /grafana {
return 301 grafana/;
}
location /grafana/ {
proxy_pass http://127.0.0.1:3000/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
client_max_body_size 10m; # Nécessaire pour Grafana https://github.com/grafana/grafana/issues/3176
}
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 :
- Connections > 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://127.0.0.1:8086
- Database : collectd
Avec l’authentification configurée ou non selon la configuration d’InfluxDB :
- User : <username>
- Password : <password>
Créer un dashboard
- 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 > Visualization > Choisir le type de graphe tout en haut à droite (défaut sur “Time series”)
- Parcourir les onglets pour choisir la source et configurer le graphe
Changer le dashboard par défaut
Pour changer le dashboard par défaut pour tout le monde (celui qui s’affiche à la connexion, sur la page d’accueil) :
- Administration > General > Default preferences > Home Dashboard > Sélectionner celui souhaité
Pour ne le changer que pour l’utilisateur courant :
- Cliquer tout en haut à droite sur l’icône représentant son utilisateur > Profile > Home Dashboard > Sélectionner celui souhaité