Installation serveur · 26 min read · Nov 24, 2025
Comment installer la pile TIG (Telegraf, InfluxDB et Grafana) sur Debian 12

La pile TIG (Telegraf, InfluxDB et Grafana) est un acronyme pour une plateforme d’outils open-source visant à faciliter la collecte, le stockage, la visualisation et l’alerte des métriques système. Vous pouvez surveiller et visualiser des métriques telles que la mémoire, l’espace disque, les utilisateurs connectés, la charge système, l’utilisation de la mémoire swap, le temps de disponibilité, les processus en cours, etc. depuis un seul endroit. Les outils utilisés dans la pile sont les suivants :
- Telegraf - est un agent de collecte de métriques open-source pour collecter et envoyer des données et des événements depuis des bases de données, des systèmes et des capteurs IoT. Il prend en charge divers plugins de sortie tels qu’InfluxDB, Graphite, Kafka, etc. vers lesquels il peut envoyer les données collectées.
- InfluxDB - est une base de données open-source de séries temporelles écrite en langage Go. Elle est optimisée pour un stockage rapide et à haute disponibilité et convient à tout ce qui implique de grandes quantités de données horodatées, y compris les métriques, les événements et l’analyse en temps réel.
- Grafana - est une suite de visualisation et de surveillance de données open-source. Elle prend en charge divers plugins d’entrée tels que Graphite, ElasticSearch, InfluxDB, etc. Elle fournit un tableau de bord magnifique et des analyses de métriques vous permettant de visualiser et de surveiller tout type de métriques système et de données de performance.
Dans ce tutoriel, vous apprendrez à installer et configurer la pile TIG sur un seul serveur Debian 12.
Prérequis
- Un serveur exécutant Debian 12 avec un minimum de 1 Go de RAM.
- Un utilisateur non-sudo avec des privilèges root.
- Le pare-feu uncomplicated (UFW) est activé et en cours d’exécution.
- Un nom de domaine entièrement qualifié (FQDN) comme
grafana.example.compointant vers votre serveur. - Un compte SMTP avec un service de messagerie comme Amazon SES ou Mailgun pour recevoir des notifications par e-mail pour les alertes de service.
- Assurez-vous que tout est à jour.
$ sudo apt update && sudo apt upgrade - Quelques paquets essentiels sont requis pour le tutoriel et Craft CMS. Certains d’entre eux seront déjà sur votre serveur.
$ sudo apt install curl wget nano software-properties-common dirmngr apt-transport-https ca-certificates lsb-release debian-archive-keyring gnupg2 ufw unzip -y
Étape 1 - Configurer le pare-feu
Avant d’installer des paquets, la première étape consiste à configurer le pare-feu pour ouvrir les ports pour InfluxDB et Grafana.
Vérifiez l’état du pare-feu.
$ sudo ufw status
Vous devriez voir quelque chose comme ceci.
Statut : actif
À Action De
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Ouvrez le port 8086 pour InfluxDB et 3000 pour le serveur Grafana.
$ sudo ufw allow 8086
$ sudo ufw allow 3000
Autorisez les ports HTTP et HTTPS.
$ sudo ufw allow http
$ sudo ufw allow https
Vérifiez à nouveau l’état pour confirmer.
$ sudo ufw status
Statut : actif
À Action De
-- ------ ----
OpenSSH ALLOW Anywhere
8086 ALLOW Anywhere
3000 ALLOW Anywhere
80/tcp ALLOW Anywhere
443 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
8086 (v6) ALLOW Anywhere (v6)
3000 (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
Étape 2 - Installer InfluxDB
Nous allons utiliser le dépôt officiel d’InfluxDB pour l’installer.
Téléchargez la clé GPG d’InfluxDB.
$ wget -q https://repos.influxdata.com/influxdata-archive_compat.key
Importez la clé GPG dans le serveur.
$ echo '393e8779c89ac8d958f81f942f9ad7fb82a25e133faddaf92e15b16e6ac9ce4c influxdata-archive_compat.key' | sha256sum -c && cat influxdata-archive_compat.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg > /dev/null
influxdata-archive_compat.key: OK
Importez le dépôt InfluxDB.
$ echo 'deb [signed-by=/etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg] https://repos.influxdata.com/debian stable main' | sudo tee /etc/apt/sources.list.d/influxdata.list
Mettez à jour la liste des dépôts du système.
$ sudo apt update
Vous avez la possibilité d’installer InfluxDB 1.8.x ou 2.0.x. Cependant, il est préférable d’utiliser la dernière version. Installez InfluxDB.
$ sudo apt install influxdb2
Démarrez le service InfluxDB.
$ sudo systemctl start influxdb
Vérifiez l’état du service.
$ sudo systemctl status influxdb
? influxdb.service - InfluxDB est une base de données de séries temporelles open-source et distribuée
Chargé : chargé (/lib/systemd/system/influxdb.service; enabled; preset: enabled)
Actif : actif (en cours d'exécution) depuis mar. 2024-01-02 02:39:41 UTC; 1s ago
Docs : https://docs.influxdata.com/influxdb/
Processus : 5584 ExecStart=/usr/lib/influxdb/scripts/influxd-systemd-start.sh (code=exited, status=0/SUCCESS)
PID principal : 5585 (influxd)
Tâches : 8 (limite : 2299)
Mémoire : 53.1M
CPU : 735ms
CGroup : /system.slice/influxdb.service
??5585 /usr/bin/influxd
........
Étape 3 - Créer une base de données InfluxDB et des identifiants d’utilisateur
Pour stocker les données de Telegraf, vous devez configurer la base de données Influx et l’utilisateur.
InfluxDB est livré avec un outil en ligne de commande nommé influx pour interagir avec le serveur InfluxDB. Pensez à influx comme à l’outil en ligne de commande mysql.
Exécutez la commande suivante pour effectuer la configuration initiale pour Influx.
$ influx setup
> Bienvenue dans InfluxDB 2.0 !
? Veuillez taper votre nom d'utilisateur principal navjot
? Veuillez taper votre mot de passe *************
? Veuillez taper à nouveau votre mot de passe ***********
? Veuillez taper le nom de votre organisation principale howtoforge
? Veuillez taper le nom de votre bucket principal tigstack
? Veuillez taper votre période de rétention en heures, ou 0 pour infini 360
? Configuration avec ces paramètres ?
Nom d'utilisateur : navjot
Organisation : howtoforge
Bucket : tigstack
Période de rétention : 360h0m0s
Oui
Utilisateur Organisation Bucket
navjot howtoforge tigstack
Vous devez configurer votre nom d’utilisateur initial, votre mot de passe, le nom de l’organisation, le nom du bucket principal pour stocker les données et la période de rétention en heures pour ces données. Vos détails sont stockés dans le fichier /home/username/.influxdbv2/configs.
Vous pouvez également effectuer cette configuration en lançant l’URL http:// dans votre navigateur. Une fois que vous avez effectué la configuration initiale, vous pouvez vous connecter à l’URL avec les identifiants créés ci-dessus.

Vous devriez être accueilli avec le tableau de bord suivant.

Le processus de configuration initiale crée un jeton par défaut qui a un accès complet en lecture et écriture à toutes les organisations de la base de données. Vous avez besoin d’un nouveau jeton pour des raisons de sécurité qui se connectera uniquement à l’organisation et au bucket auxquels nous voulons nous connecter.
Pour créer un nouveau jeton, cliquez sur l’icône suivante dans la barre latérale gauche et cliquez sur le lien Jetons API pour continuer.
Vous serez dirigé vers la page Jetons API. Ici, vous verrez le jeton par défaut que nous avons créé au moment de la configuration initiale.

Cliquez sur le bouton Générer un jeton API et sélectionnez l’option Jeton API personnalisé pour lancer une nouvelle fenêtre contextuelle. Donnez un nom au jeton ( telegraf) et développez la section Ressources et sélectionnez le bucket par défaut que nous avons créé sous les sections Lecture et Écriture.

Cliquez sur Générer pour terminer la création du jeton. Cliquez sur le bouton COPIER DANS LE PAPIER pour copier le jeton. Le bouton peut ne pas fonctionner dans certains cas, alors assurez-vous de confirmer avant de fermer la fenêtre contextuelle.

Conservez-le pour l’instant car nous en aurons besoin plus tard.
Cela termine l’installation et la configuration d’InfluxDB. Ensuite, nous devons installer Telegraf.
Étape 4 - Installer Telegraf
Telegraf et InfluxDB partagent le même dépôt. Cela signifie que vous pouvez installer Telegraf directement.
$ sudo apt install telegraf
Le service Telegraf est activé et démarré automatiquement lors de l’installation.
Telegraf est un agent basé sur des plugins et possède 4 types de plugins :
- Plugins d’entrée collectent des métriques.
- Plugins de traitement transforment, décorent et filtrent les métriques.
- Plugins d’agrégation créent et agrègent des métriques.
- Plugins de sortie définissent les destinations où les métriques sont envoyées, y compris InfluxDB.
Telegraf stocke sa configuration pour tous ces plugins dans le fichier /etc/telegraf/telegraf.conf. La première étape consiste à connecter Telegraf à InfluxDB en activant le plugin de sortie influxdb_v2. Ouvrez le fichier /etc/telegraf/telegraf.conf pour l’éditer.
$ sudo nano /etc/telegraf/telegraf.conf
Trouvez la ligne [[outputs.influxdb_v2]] et décommentez-la en supprimant le # devant. Modifiez le code ci-dessous de la manière suivante.
# # Configuration pour l'envoi de métriques à InfluxDB 2.0
[[outputs.influxdb_v2]]
# ## Les URL des nœuds du cluster InfluxDB.
# ##
# ## Plusieurs URL peuvent être spécifiées pour un seul cluster, seule UNE des
# ## urls sera écrite à chaque intervalle.
# ## ex : urls = ["https://us-west-2-1.aws.cloud2.influxdata.com"]
urls = ["http://127.0.0.1:8086"]
#
# ## Jeton pour l'authentification.
token = "$INFLUX_TOKEN"
#
# ## L'organisation est le nom de l'organisation à laquelle vous souhaitez écrire.
organization = "howtoforge"
#
# ## Bucket de destination dans lequel écrire.
bucket = "tigstack"
Collez la valeur du jeton InfluxDB sauvegardée précédemment à la place de la variable $INFLUX_TOKEN dans le code ci-dessus.
Recherchez la ligne INPUT PLUGINS et vous verrez les plugins d’entrée suivants activés par défaut.
# Lire les métriques sur l'utilisation du CPU
[[inputs.cpu]]
## Que faut-il signaler par statistiques par CPU ou non
percpu = true
## Que faut-il signaler par statistiques CPU système total ou non
totalcpu = true
## Si vrai, collecter des métriques de temps CPU brutes
collect_cpu_time = false
## Si vrai, calculer et signaler la somme de tous les états CPU non inactifs
report_active = false
## Si vrai et que l'info est disponible, alors ajouter des tags core_id et physical_id
core_tags = false
# Lire les métriques sur l'utilisation du disque par point de montage
[[inputs.disk]]
## Par défaut, les statistiques seront collectées pour tous les points de montage.
## Définir mount_points limitera les statistiques uniquement aux points de montage spécifiés.
# mount_points = ["/"]
## Ignorer les points de montage par type de système de fichiers.
ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"]
## Ignorer les points de montage par options de montage.
## La commande 'mount' signale les options de tous les montages entre parenthèses.
## Les montages bind peuvent être ignorés avec l'option spéciale 'bind'.
# ignore_mount_opts = []
# Lire les métriques sur le disque IO par appareil
[[inputs.diskio]]
....
....
# Obtenir des statistiques du noyau depuis /proc/stat
[[inputs.kernel]]
# pas de configuration
# Lire les métriques sur l'utilisation de la mémoire
[[inputs.mem]]
# pas de configuration
# Obtenir le nombre de processus et les regrouper par état
[[inputs.processes]]
# pas de configuration
# Lire les métriques sur l'utilisation de la mémoire swap
[[inputs.swap]]
# pas de configuration
# Lire les métriques sur la charge système et le temps de disponibilité
[[inputs.system]]
# pas de configuration
Vous pouvez configurer des plugins d’entrée supplémentaires selon vos besoins, y compris Apache Server, conteneurs Docker, Elasticsearch, pare-feu iptables, Kubernetes, Memcached, MongoDB, MySQL, Nginx, PHP-fpm, Postfix, RabbitMQ, Redis, Varnish, Wireguard, PostgreSQL, etc.
Une fois que vous avez terminé, enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.
Redémarrez le service Telegraf une fois que vous avez terminé d’appliquer les modifications.
$ sudo systemctl restart telegraf
Étape 5 - Vérifiez si les statistiques Telegraf sont stockées dans InfluxDB
Avant de continuer, vous devez vérifier si les statistiques Telegraf sont correctement collectées et alimentées dans InfluxDB. Ouvrez l’interface utilisateur InfluxDB dans votre navigateur, cliquez sur la deuxième icône de la barre latérale gauche et sélectionnez le menu Buckets.

Cliquez sur tigstack et vous devriez être accueilli avec la page suivante.

Cliquez sur le nom du bucket puis cliquez sur l’une des valeurs dans le filtre _measurement, et continuez à cliquer sur d’autres valeurs au fur et à mesure qu’elles apparaissent. Une fois que vous avez terminé, cliquez sur le bouton Soumettre. Vous devriez voir un graphique en haut. Vous devrez peut-être attendre un certain temps pour que les données apparaissent. Nous avons déplacé l’intervalle de temps de Passé 1 h à Passé 5m pour générer un graphique sur une grande zone.

Cela devrait confirmer que les données sont transmises correctement.
Étape 6 - Installer Grafana
Nous allons utiliser le dépôt officiel de Grafana pour l’installer. Importez la clé GPG de Grafana.
$ sudo mkdir -p /etc/apt/keyrings/
$ wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/grafana.gpg > /dev/null
Ajoutez le dépôt à votre système.
$ echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
Si vous souhaitez installer la version bêta de Grafana, ajoutez le dépôt suivant à la place.
$ echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com beta main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
Mettez à jour la liste des dépôts du système.
$ sudo apt update
Installez Grafana.
$ sudo apt install grafana
Démarrez et activez le service Grafana.
$ sudo systemctl enable grafana-server --now
Vérifiez l’état du service.
$ sudo systemctl status grafana-server ? grafana-server.service - Instance Grafana Chargé : chargé (/lib/systemd/system/grafana-server.service; enabled; preset: enabled) Actif : actif (en cours d'exécution) depuis mar. 2024-01-02 03:48:01 UTC; 3s ago Docs : http://docs.grafana.org PID principal : 8769 (grafana) Tâches : 7 (limite : 2299) Mémoire : 42.6M CPU : 1.804s CGroup : /system.slice/grafana-server.service ??8769 /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... ....... ## Étape 7 - Configurer la source de données Grafana Lancez l'URL `http://:3000` dans votre navigateur et la page de connexion Grafana suivante devrait vous accueillir.  Connectez-vous avec le nom d'utilisateur par défaut `admin` et le mot de passe `admin`. Ensuite, vous devez configurer un nouveau mot de passe par défaut.  Vous serez accueilli avec la page d'accueil Grafana suivante. Cliquez sur le bouton Ajouter votre première source de données.  Cliquez sur le bouton InfluxDB.  Sur la page suivante, sélectionnez Flux dans le menu déroulant comme langage de requête. Vous pouvez utiliser InfluxQL comme langage de requête, mais il est plus compliqué à configurer car il ne prend en charge que InfluxDB v1.x par défaut. Flux prend en charge InfluxDB v2.x et est plus facile à configurer.  Entrez les valeurs suivantes. URL : `http://localhost:8086` Détails d'authentification de base Utilisateur : navjot Mot de passe : `` Détails InfluxDB Organisation : howtoforge Jeton : `` Bucket par défaut : tigstack  Cliquez sur le bouton Enregistrer et tester et vous devriez voir un message de confirmation vérifiant que la configuration est réussie.  ## Étape 8 - Configurer les tableaux de bord Grafana L'étape suivante consiste à configurer les tableaux de bord Grafana. Cliquez sur le menu hamburger à gauche de Accueil et cliquez sur Tableaux de bord pour ouvrir l'écran de création de tableau de bord.  Cliquez sur le bouton Créer un tableau de bord pour continuer.  Sur la page suivante, cliquez sur le bouton Ajouter une visualisation pour lancer la superposition et cliquez sur `influxdb-1` pour la sélectionner comme source de données.  Vous serez dirigé vers la page Modifier le panneau** suivante.  Collez le code suivant dans l'éditeur de requêtes.
from(bucket: “NAMEOFYOUBUCKET”) |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r[“_measurement”] == “cpu”) |> filter(fn: (r) => r[“_field”] == “usage_idle”) |> filter(fn: (r) => r[“cpu”] == “cpu-total”) |> filter(fn: (r) => r[“host”] == “NAMEOFYOURHOST”) |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false) |> map(fn: (r) => ({ r with _value: r._value * -1.0 + 100.0 })) |> toFloat() |> yield(name: “mean”)
Utilisez le nom du bucket que nous avons utilisé ci-dessus. Et le nom de l'hôte que vous pouvez récupérer dans le fichier `/etc/hostname`.
Le code ci-dessus calculera l'utilisation du CPU et générera un graphique pour cela. Donnez un titre au panneau.

Cliquez sur le bouton Inspecteur de requête puis cliquez sur le bouton Rafraîchir pour vérifier si votre requête fonctionne correctement. Cliquez sur l'icône de croix pour fermer l'inspecteur.

Vous pouvez également nommer l'axe en utilisant le champ Étiquette à droite sous la section Axe.

Cliquez sur le bouton Appliquer pour enregistrer le panneau. Cliquez sur le bouton Enregistrer le tableau de bord, une fois terminé.

Donnez un nom au tableau de bord et cliquez sur Enregistrer pour terminer.

Cela ouvrira le tableau de bord, puis cliquez sur le bouton Ajouter une visualisation pour créer un autre panneau.

Répétez le processus en créant un autre panneau pour l'utilisation de la RAM.
from(bucket: “NAMEOFYOUBUCKET”) |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r[“_measurement”] == “mem”) |> filter(fn: (r) => r[“_field”] == “used_percent”) |> filter(fn: (r) => r[“host”] == “NAMEOFYOURHOST”) |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false) |> yield(name: “mean”)
Utilisez le code suivant pour afficher l'utilisation du disque dur.
from(bucket: “NAMEOFYOURBUCKET”) |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r[“_measurement”] == “disk”) |> filter(fn: (r) => r[“_field”] == “used”) |> filter(fn: (r) => r[“path”] == “/“) |> filter(fn: (r) => r[“host”] == “NAMEOFYOURHOST”) |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false) |> map(fn: (r) => ({ r with _value: r._value / 1000000.0 })) |> toFloat()
|> yield(name: “mean”)
Vous pouvez créer un nombre illimité de panneaux.
Le code ci-dessus est basé sur le langage de script Flux. Heureusement, vous n'avez pas besoin d'apprendre le langage pour écrire des requêtes. Vous pouvez générer la requête depuis l'URL InfluxDB. Même si apprendre le langage peut être bénéfique pour optimiser les requêtes.
Vous devez revenir au tableau de bord InfluxDB et ouvrir la page Explorer pour obtenir la requête.
Cliquez sur le nom du bucket puis cliquez sur l'une des valeurs dans le filtre `_measurement`, et continuez à cliquer sur d'autres valeurs au fur et à mesure qu'elles apparaissent. Une fois que vous avez terminé, cliquez sur le bouton Éditeur de script et vous devriez voir la page suivante. Le graphique devrait également être mis à jour.


Copiez la requête affichée et vous pouvez maintenant l'utiliser dans le tableau de bord Grafana pour construire vos graphiques.
## Étape 9 - Configurer les alertes et les notifications
L'utilisation principale de la mise en place de moniteurs est de recevoir des alertes à temps lorsque la valeur dépasse un certain seuil.
La première étape consiste à définir la destination où vous souhaitez recevoir des alertes. Vous pouvez recevoir des notifications par e-mail, Slack, Kafka, Google Hangouts Chat, Microsoft Teams, Telegram, etc.
Nous allons activer les notifications par e-mail pour notre tutoriel. Pour configurer les notifications par e-mail, nous devons d'abord configurer le service SMTP. Ouvrez le fichier `/etc/grafana/grafana.ini` pour configurer SMTP.
$ sudo nano /etc/grafana/grafana.ini
Trouvez la ligne suivante `[smtp]` dans le fichier. Décommentez les lignes suivantes et entrez les valeurs pour le serveur SMTP personnalisé.
[smtp] enabled = true host = email-smtp.us-west-2.amazonaws.com:587 user = VOTRENOMUTILISATEUR
password = VOTREMOTDEPASSEUTILISATEUR ;cert_file = ;key_file = ;skip_verify = false from_address = [email protected] from_name = HowtoForge Grafana
;ehlo_identity = dashboard.example.com
;startTLS_policy = NoStartTLS
Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.
Redémarrez le serveur Grafana pour appliquer les paramètres.
$ sudo systemctl restart grafana-server
Ouvrez la page Grafana, cliquez sur l'icône d'alerte, et cliquez sur Points de contact.

Grafana crée et configure automatiquement un point de contact par e-mail par défaut qui doit être configuré avec l'adresse e-mail correcte. Cliquez sur le bouton d'édition à côté du point de contact `grafana-default-email`.

Entrez les détails pour configurer le canal de notification par e-mail.

Si vous souhaitez envoyer un message supplémentaire, cliquez sur le lien Paramètres d'e-mail optionnels et entrez le message.

Cliquez sur Tester pour ouvrir la fenêtre contextuelle, puis cliquez sur le bouton Envoyer une notification de test pour voir si les paramètres d'e-mail fonctionnent. Cliquez sur Enregistrer le point de contact lorsque vous avez terminé.
Vous devriez recevoir l'e-mail suivant confirmant les paramètres.

Maintenant que nous avons configuré les canaux de notification, nous devons configurer les alertes sur quand recevoir ces e-mails. Pour configurer les alertes, vous devez revenir aux panneaux de tableau de bord.
Retournez à l'écran Tableaux de bord. Cliquez sur le tableau de bord que nous venons de créer et vous obtiendrez sa page d'accueil avec différents panneaux. Pour modifier le panneau, cliquez sur le nom du panneau, et un menu déroulant apparaîtra. Cliquez sur le lien Modifier pour continuer.

Cliquez sur le Panneau d'alerte et cliquez sur le bouton Nouvelle règle d'alerte pour configurer une nouvelle alerte. Nous créons une alerte pour le panneau d'utilisation du CPU.

Vous pouvez maintenant configurer les conditions sous lesquelles Grafana enverra l'alerte. Cliquez sur le lien Options dans le menu déroulant et sélectionnez l'intervalle de temps par défaut (now-6h à now) pour changer l'intervalle de temps à Dernières 15 minutes, ce qui signifie qu'il vérifiera depuis 15 minutes jusqu'à maintenant.

Par défaut, le type d'alerte sélectionné est l'alerte gérée par Grafana. Deux expressions sont sélectionnées par défaut. Supprimez-les en appuyant sur le bouton de poubelle à côté d'elles. Sélectionnez le menu déroulant Ajouter une expression et sélectionnez la Condition classique comme type d'expression.


Cliquez sur Définir comme condition d'alerte pour sélectionner l'expression choisie pour l'envoi des alertes. Cela changera la boîte d'expression comme indiqué ci-dessous.

### Conditions
Grafana fonctionne sur une requête du format suivant pour déterminer quand lancer une alerte.
avg() OF query(A) IS ABOVE 0.8
- avg() contrôle comment la valeur pour chaque série doit être réduite à une valeur comparable par rapport au seuil. Vous pouvez cliquer sur le nom de la fonction pour sélectionner une fonction différente telle que avg(), min(), max(), sum(), count(), etc.
- query(A) La lettre entre parenthèses définit quelle requête exécuter à partir de l'onglet Métriques.
- IS BELOW 14 Définit le type de seuil et la valeur du seuil. Vous pouvez cliquer sur IS BELOW pour sélectionner un type de seuil différent.
Vous pouvez ajouter une deuxième condition en dessous en cliquant sur le bouton + sous la première condition. Actuellement, vous ne pouvez utiliser que les opérateurs ET et OU entre plusieurs conditions.
Ensuite, nous allons définir le comportement d'évaluation. Cliquez sur le bouton Nouveau dossier pour créer un dossier pour stocker vos règles. Cliquez sur le bouton Nouveau groupe d'évaluation pour créer un groupe pour regrouper les règles qui seront évaluées après le même intervalle de temps. Définissez l'intervalle de temps sur 5m lors de la création du groupe.

Une fois terminé, la page devrait ressembler à ceci. Définissez l'État d'alerte en cas d'erreur d'exécution ou de délai d'attente sur Alerting.

### Règle
- Nom - Entrez un nom descriptif pour l'alerte
- Dossier - Créez ou sélectionnez un dossier préexistant pour stocker votre règle de notification.
- Groupe - Entrez un nom pour votre groupe d'alerte. Les alertes dans un même groupe sont évaluées après le même intervalle de temps.
- En attente - Spécifiez à quelle fréquence Grafana doit évaluer l'alerte. C'est aussi ce qu'on appelle un intervalle d'évaluation. Vous pouvez définir n'importe quelle valeur que vous souhaitez ici.
### Pas de données et gestion des erreurs
Vous pouvez configurer comment Grafana doit gérer les requêtes qui ne renvoient pas de données ou uniquement des valeurs nulles en utilisant les conditions suivantes :
1. Pas de données - Définissez l'état de la règle sur `NoData`
2. Alerting - Définissez l'état de la règle sur `Alerting`
3. Ok - Définissez l'état de la règle d'alerte sur `Ok`, car vous recevrez une alerte même si tout va bien.
Vous pouvez indiquer à Grafana comment gérer les erreurs d'exécution ou de délai d'attente.
1. Alerting - Définissez l'état de la règle sur `Alerting`
2. Ok - Définissez l'état de la règle d'alerte sur `Ok`, car vous recevrez une alerte même si tout va bien.
3. Erreur - Définissez l'état de la règle d'alerte sur Erreur pour indiquer qu'il y a un problème.
Une fois que vous avez terminé, cliquez sur le bouton Aperçu des alertes pour voir si tout fonctionne bien. Cliquez sur le bouton Enregistrer la règle et quitter en haut à droite pour terminer l'ajout de l'alerte. Vous devriez maintenant commencer à recevoir des alertes par e-mail. Voici un exemple d'un tel e-mail.

## Étape 10 - Installer Nginx
Debian 12 est livré avec une version plus ancienne de Nginx. Vous devez télécharger le dépôt officiel de Nginx pour installer la dernière version.
Importez la clé de signature de Nginx.
$ curl https://nginx.org/keys/nginx_signing.key | gpg –dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Ajoutez le dépôt pour la version principale de Nginx.
$ echo “deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg]
http://nginx.org/packages/mainline/debian lsb_release -cs nginx” \
| sudo tee /etc/apt/sources.list.d/nginx.list
Mettez à jour les dépôts du système.
$ sudo apt update
Installez Nginx.
$ sudo apt install nginx
Vérifiez l'installation. Sur les systèmes Debian, la commande suivante ne fonctionnera qu'avec `sudo`.
$ sudo nginx -v nginx version: nginx/1.25.3
Démarrez le serveur Nginx.
$ sudo systemctl start nginx
Vérifiez l'état du service.
$ sudo systemctl status nginx ? nginx.service - nginx - serveur web haute performance
Chargé : chargé (/lib/systemd/system/nginx.service; enabled; preset: enabled)
Actif : actif (en cours d'exécution) depuis mar. 2024-01-02 09:21:10 UTC; 5s ago
Docs : https://nginx.org/en/docs/
Processus : 12964 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)PID principal : 12965 (nginx)
Tâches : 3 (limite : 2299)
Mémoire : 2.9M
CPU : 86ms
CGroup : /system.slice/nginx.service
??12965 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf"
??12966 "nginx: worker process"
??12967 "nginx: worker process"Jan 02 09:21:10 grafana systemd[1]: Démarrage du service nginx.service - nginx - serveur web haute performance… Jan 02 09:21:10 grafana systemd[1]: Service nginx.service démarré - serveur web haute performance nginx.
## Étape 11 - Installer SSL
Nous devons installer Certbot pour générer le certificat SSL. Vous pouvez soit installer Certbot en utilisant le dépôt de Debian, soit obtenir la dernière version en utilisant l'outil Snapd. Nous allons utiliser la version Snapd.
Debian 12 n'est pas livré avec Snapd installé. Installez le paquet Snapd.
$ sudo apt install snapd
Exécutez les commandes suivantes pour vous assurer que votre version de Snapd est à jour.
$ sudo snap install core && sudo snap refresh core
Installez Certbot.
$ sudo snap install –classic certbot
Utilisez la commande suivante pour vous assurer que la commande Certbot peut être exécutée en créant un lien symbolique vers le répertoire `/usr/bin`.
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Vérifiez si Certbot fonctionne correctement.
$ certbot –version certbot 2.8.0
Exécutez la commande suivante pour générer un certificat SSL.
$ sudo certbot certonly –nginx –agree-tos –no-eff-email –staple-ocsp –preferred-challenges http -m [email protected] -d grafana.example.com
La commande ci-dessus téléchargera un certificat dans le répertoire `/etc/letsencrypt/live/grafana.example.com` sur votre serveur.
Générez un certificat de groupe Diffie-Hellman.
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Vérifiez le service de planification de renouvellement de Certbot.
$ systemctl list-timers
Vous trouverez `snap.certbot.renew.service` comme l'un des services programmés pour s'exécuter.
NEXT LEFT LAST PASSED UNIT ACTIVATES
Tue 2024-01-02 15:24:52 UTC 6h left Mon 2024-01-01 15:24:52 UTC 17h ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service Tue 2024-01-02 20:05:29 UTC 10h left Tue 2024-01-02 09:02:47 UTC 21min ago apt-daily.timer apt-daily.service Tue 2024-01-02 20:35:00 UTC 11h left - - snap.certbot.renew.timer snap.certbot.renew.service
Faites un essai à blanc du processus pour vérifier si le renouvellement SSL fonctionne correctement.
$ sudo certbot renew –dry-run
Si vous ne voyez aucune erreur, vous êtes prêt. Votre certificat se renouvellera automatiquement.
## Étape 12 - Configurer Nginx pour Grafana et InfluxDB
Ouvrez le fichier `/etc/nginx/nginx.conf` pour l'éditer.
$ sudo nano /etc/nginx/nginx.conf
Ajoutez la ligne suivante avant la ligne `include /etc/nginx/conf.d/*.conf;`.
server_names_hash_bucket_size 64;
Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.
Créez et ouvrez le fichier `/etc/nginx/conf.d/grafana.conf` pour l'éditer.
$ sudo nano /etc/nginx/conf.d/grafana.conf
Collez le code suivant dedans. Remplacez `grafana.example.com` par votre nom de domaine.
map $http_upgrade $connection_upgrade { default upgrade; ‘’ close; }
server {
listen 443 ssl reuseport;
listen [::]:443 ssl reuseport;
http2 on;
server_name grafana.example.com;
access_log /var/log/nginx/grafana.access.log;
error_log /var/log/nginx/grafana.error.log;
ssl_certificate /etc/letsencrypt/live/grafana.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/grafana.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/grafana.example.com/chain.pem;
ssl_session_timeout 5m;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
resolver 1.1.1.1 1.0.0.1 [2606:4700:4700::1111] [2606:4700:4700::1001] valid=60s;
resolver_timeout 2s;
location / {
proxy_set_header Host $http_host;
proxy_pass http://localhost:3000;
}
location /api/live {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $http_host;
proxy_pass http://localhost:3000;
}
location /influxdb/ {
access_log /var/log/nginx/influx.access.log;
error_log /var/log/nginx/influx.error.log;
rewrite ^/influxdb$ /influxdb/ permanent;
rewrite ^/influxdb/(.*)$ /$1 break;
proxy_cookie_path ~*^/api /influxdb/api;
proxy_connect_timeout 600s;
proxy_http_version 1.1;
proxy_pass http://localhost:8086;
proxy_read_timeout 600s;
proxy_send_timeout 600s;
proxy_set_header Authorization $http_authorization;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Real-IP $remote_addr;
sub_filter ' ' ' ';
sub_filter 'src="/' 'src="/influxdb/';
sub_filter 'href="/' 'href="/influxdb/';
sub_filter 'data-basepath="' 'data-basepath="/influxdb/';
sub_filter 'n.p="/' 'n.p="/influxdb/';
sub_filter 'o.p="/' 'o.p="/influxdb/';
sub_filter '/api/' '/influxdb/api/';
sub_filter 'api/v2/query' 'influxdb/api/v2/query';
sub_filter '/health`' '/influxdb/health`';
sub_filter_types text/css text/javascript application/javascript application/json;
sub_filter_once off;
}}
server {
listen 80;
listen [::]:80;
server_name grafana.example.com;
return 301 https://$host$request_uri;}
Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.
Vérifiez votre configuration Nginx.
$ sudo nginx -t
Redémarrez le serveur Nginx.
$ sudo systemctl restart nginx
### Configurer Telegraf pour HTTPS
Ouvrez le fichier `/etc/telegraf/telegraf.conf` pour l'éditer.
$ sudo nano /etc/telegraf/telegraf.conf
Recherchez la section `[[outputs.influxdb_v2]]` et changez la valeur de l'URL en `https://grafana.nspeaks.com/influxdb` afin que les données entre InfluxDB et Telegraf soient sécurisées.
urls = [“https://grafana.example.com/influxdb”]
Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.
Redémarrez le service Telegraf.
$ sudo systemctl restart telegraf
### Configurer Grafana pour HTTPS
Ensuite, nous devons configurer Grafana pour un accès HTTPS. Ouvrez le fichier `/etc/grafana/grafana.ini` pour l'éditer.
$ sudo nano /etc/grafana/grafana.ini
Trouvez la section `[server]` et changez la variable `domain`, et `root_url` comme suit.
;domain = localhost domain = grafana.example.com
;enforce_domain = true
;root_url = %(protocol)s://%(domain)s:%(http_port)s/ root_url = %(protocol)s://%(domain)s
Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.
Redémarrez le serveur Grafana.
$ sudo systemctl restart grafana-server
### Fermer les ports du pare-feu pour InfluxDB et Grafana
Vous devez également fermer les ports InfluxDB et Grafana.
$ sudo ufw delete allow 8086 $ sudo ufw delete allow 3000
Grafana devrait être accessible à `https://grafana.example.com` et l'interface utilisateur et l'API InfluxDB devraient toutes deux être accessibles à l'URL `https://grafana.example.com/influxdb`.
## Conclusion
Cela conclut le tutoriel sur l'installation et la configuration de la pile TIG sur un serveur Debian 12. Si vous avez des questions, postez-les dans les commentaires ci-dessous.Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.