Que recherchez-vous ?

Mise en pause et activation d’une rule Grafana

Maintenance informatique 24 mai 2021
Publié par : Benjamin Testut

Grafana est un outil open source très utile pour la surveillance, l'analyse et la visualisation de métriques. Avec Grafana, il est possible de faire des graphiques et des tableaux de bord à partir de multiples datasources comme Graphite, InfluxDB, Telegraf ou encore PostgreSQL.

Il est aussi possible de créer des alertes et de les coupler avec des outils tels que Mattermost, Slack, Telegram ou n’importe quel WebHook. Cela vous permettra d’être informé lorsqu’un seuil est dépassé. Seul bémol : il n’est pas possible de mettre en place des plages horaires de supervision (on peut parler aussi de période temporelle).

Mise en pause et activation d’une rule Grafana

Lorsqu’une surveillance est mise en place (pour un processus par exemple), cette dernière tourne en continu et envoie des notifications en cas de dépassement de seuils. Dans la procédure suivante, nous allons vous montrer comment mettre en place via l’API, un mécanisme qui permet d’activer/désactiver les notifications. Cela vous permettra d’avoir un système de plage horaire et donc d’exclure certaines heures à votre supervision.

Pour mettre en place ce mécanisme, nous allons nous servir de l’API de Grafana pour activer/désactiver les rules (les rules permettent d’envoyer des notifications d’alertes en cas de seuils dépassés et donc d’intervenir de manière pro-active).

1. Récupérer l’id d’un dashboard

Première étape pour mettre en place ce mécanisme d’activation/désactivation de rule sur Grafana : récupérer l’id de votre dashboard. Pour cela, rendez-vous sur le dashboard concerné par l’alerte que vous supervisez puis cliquez sur la roue crantée comme indiqué ci-dessous :

rule grafana
Cliquez ensuite sur JSON Model, repérez l’id de votre dashboard et mettez-le de côté :

2. Récupérer l’id d’une rule

Une fois l’id du dashboard en votre possession, il va maintenant falloir récupérer l’id de la rule concernée :
Via l’outil Git bash , voici la commande à lancer :

curl -k --location --request GET 'https://URL-DE-VOTRE-GRAFANA.fr/api/alerts?dashboardId=ID-DE-VOTRE-DASHBOARD' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer xxxCLE-DE-L’API-A-DEMANDER-A-VOTRE-ADMINxxx \

Vous allez obtenir un retour similaire à ceci :

% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 391 100 391 0 0 1722 0 --:--:-- --:--:-- --:--:-- 1722[{"id":917,"dashboardId":3076,"dashboardUid":"W7QLVdrMz","dashboardSlug":"play-pause-rule-grafana","panelId":2,"name":"test-windows-alert alert","state":"alerting","newStateDate":"2021-04-27T10:50:12+02:00","evalDate":"0001-01-01T00:00:00Z","evalData":{"evalMatches":[{"metric":"Average value_numeric","tags":{},"value":4}]},"executionError":"","url":"/d/W7QLVdrMz/play-pause-rule-grafana"}]
  • 917 correspond à l’id de votre rule
  • 3076 correspond à l’id de votre dashboard
  • play-pause-rule-grafana correspond au nom de votre dashboard
  • test-windows-alert alert correspond à l’alerte mise en place

3. Mise en pause de la rule

curl -k --location --request POST ''https://URL-DE-VOTRE-GRAFANA.fr/api/alerts/ID-DE-VOTRE-RULE/pause' --header 'Accept: application/json' --header 'Content-Type: application/json' --header 'Authorization: Bearer xxxCLE-DE-L’API-A-DEMANDER-A-VOTRE-ADMINxxx' --data '{ "paused": true }'

4. Sortir de pause la rule

curl -k --location --request POST ''https://URL-DE-VOTRE-GRAFANA.fr/api/alerts/ID-DE-VOTRE-RULE/pause' --header 'Accept: application/json' --header 'Content-Type: application/json' --header 'Authorization: Bearer xxxCLE-DE-L’API-A-DEMANDER-A-VOTRE-ADMINxxx' --data '{ "paused": false }'

Le tour est joué !
Maintenant il ne vous reste plus qu’à choisir votre ordonnanceur préféré (Control-M ou Jenkins par exemple) afin d’orchestrer à souhait votre activation/désactivation de rule sous Grafana.

Pour finir, voici un exemple concret d’utilisation de cette activation/désactivation de rule :

Vous surveillez un apache. Tous les jours à 20h, un arrêt relance est effectué. Sur le dashboard où est placé la surveillance d’apache, vous récupérez les informations (id dashboard, id rule). Vous ordonnancez une désactivation de la rule à 19h45, puis vous la réactivez à 20h15. Cela vous évitera d’avoir des alarmes et potentiellement un déclenchement d’astreinte pour un arrêt relance voulu et surtout programmé.

À propos de l’auteur·e

Benjamin Testut

Expert en Supervision - Exploitation

D’autres Articles

Proposez un sujet autour des enjeux des systèmes d’information.

Devenez membre de notre communauté d’experts inspirants.