ChatOps : Auditer son infrastructure avec N8N et Blackbox Exporter
La supervision moderne ne consiste plus à avoir un écran de NOC affichant des dizaines de graphiques. La tendance est à l’intégration des flux de diagnostic directement dans les canaux de communication de l’équipe (ChatOps).
L’idée est simple : depuis une application comme Telegram, un ingénieur d’astreinte tape une commande pour demander l’état de santé général du parc ou pour forcer le diagnostic d’un endpoint précis (DNS, Ping, HTTP).
Pour y parvenir, la solution la plus robuste consiste à coupler l’orchestrateur N8N au moteur de sondage Prometheus Blackbox Exporter.
1. Le composant d’analyse : Blackbox Exporter
Dans la stack Prometheus, le Node Exporter récupère les métriques internes (CPU, RAM). Le Blackbox Exporter, lui, effectue un sondage actif (“probing”) depuis l’extérieur (Blackbox).
Son comportement est celui d’une API HTTP REST. Il écoute sur le port 9115 et accepte des paramètres. En lui fournissant une cible (target) et un type de test (module), il va résoudre le nom de domaine, établir la connexion TCP, vérifier le certificat TLS, mesurer la latence, puis renvoyer un statut de succès (1) ou d’échec (0).
Exemple de requête isolée via Curl :
curl "http://blackboxexporter:9115/probe?target=https://apigw.ravindra-job.com&module=http_2xx"
Les modules définissant la logique des tests sont stockés dans un fichier blackbox.yml. Notre lab public de démonstration utilise par exemple les modules http_2xx pour le portail web, tcp_connect pour l’API Gateway, et icmp pour vérifier si le routeur réseau (Freebox) est joignable.
Le fichier de configuration complet est disponible sur notre environnement de simulation GitHub InfraAtHome (Démonstration).
2. Le relais de métriques : Prometheus
L’avantage d’une infrastructure SRE structurée, c’est que Prometheus gratte (scrape) déjà ces endpoints en continu. Au lieu de refaire des pings manuels à chaque question sur Telegram, le plus simple est de demander à l’API de Prometheus l’état de la dernière métrique collectée.
Dans la configuration Prometheus (extrait de prometheus.yml de notre lab pédagogique), des cibles statiques simulées sont associées aux sondes Blackbox :
- job_name: 'ravincloudFromWAN'
metrics_path: /probe
params:
module: [http_2xx]
static_configs:
- targets:
- https://grafana.ravindra-job.com
- https://domoticz.ravindra-job.com
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- target_label: __address__
replacement: 10.100.0.5:9115
(Code source complet disponible sur le dépôt InfraAtHome)
3. L’automatisation N8N (Le ChatOps)
C’est ici qu’intervient N8N. Il fait l’interface entre l’utilisateur Telegram et les API internes (Blackbox/Prometheus). On identifie généralement deux scénarios.
(Le fichier JSON du Workflow complet décrit ci-dessous est disponible dans les scripts de notre lab de démo).
Scénario 1 : Le bilan de santé global (“Etat de l’Infra”)
Lorsqu’un utilisateur tape /status dans Telegram :
- Nœud HTTP Request (Prometheus) : N8N lance une requête PromQL :
http://prometheus:9090/api/v1/query?query=probe_success==0. Cette requête demande à Prometheus de ne lister que les cibles dont le dernier test a échoué. - Nœud Function (Code) : Un bout de code JavaScript parse la réponse. S’il n’y a aucun résultat, l’état global est vert ("✅ Tout est opérationnel"). Sinon, il formate la liste des URL injoignables.
- Nœud Telegram : Renvoie le compte-rendu dans le chat de l’astreinte.
Scénario 2 : Le test “On-Demand” (Vérification ponctuelle)
Un service vient de tomber et l’ingénieur veut vérifier si le serveur répond sur un port spécifique, sans ouvrir une console SSH.
Il tape dans Telegram : /check_infra 192.168.1.8 icmp
- Nœud IF : N8N intercepte la commande spécifique
/check_infra. - Nœud HTTP Request (Blackbox) : N8N va extraire l’IP (
192.168.1.8) et le module (icmp) de la phrase. Contrairement au scénario précédent, N8N ne demande pas l’historique à Prometheus. Il attaque directement le endpoint/probedu conteneur Blackbox pour forcer un test temps réel sur cette cible arbitraire. - Nœud Telegram : N8N parse le résultat du test brut et répond : “Diagnostic demandé pour 192.168.1.8. Résultat de la sonde (probe_success) : ✅ UP”.
Conclusion
Le ChatOps déplace le diagnostic de premier niveau du terminal technique vers l’outil de collaboration. En utilisant N8N pour lier l’API de Blackbox Exporter à un bot de messagerie, les administrateurs obtiennent un outil interactif capable de lancer des sondes réseau isolées (Ping, TCP, HTTP) sur des cibles arbitraires ou de vérifier l’état du parc entier en quelques millisecondes, favorisant ainsi la transparence et la vélocité des équipes d’intervention.
Sources
Si vous voulez plus d’information sur l’infrastructure vous pouvez voir l’ repo à ce sujet : https://github.com/ravindrajob/InfraAtHome



