Agent IA d'Auto-Remediation

Dans nos articles précédents, nous avons exploré comment sécuriser nos serveurs avec CrowdSec et comment les surveiller avec Prometheus et Grafana. Maintenant, il est temps de lier ces deux mondes avec une intelligence automatisée. L’objectif ? Créer un système qui non seulement détecte les problèmes, mais qui les résout aussi. C’est le concept de l’Action-to-Action (A2A), et nous allons le mettre en œuvre avec N8N.

Qu’est-ce que N8N ?

N8N (prononcé “n-eight-n”) est une plateforme d’automatisation de flux de travail open-source. Pensez-y comme un “Zapier” ou un “Integromat” que vous pouvez héberger vous-même. Il vous permet de connecter différentes applications et services (APIs, bases de données, services de messagerie, etc.) pour créer des workflows complexes sans écrire une seule ligne de code, ou en en écrivant très peu.

Le Principe de l’Agent d’Auto-Réparation

Notre agent intelligent sera un workflow N8N qui écoute les alertes de notre système de monitoring (comme Prometheus Alertmanager) et exécute une série d’actions prédéfinies en réponse.

Scénario 1 : Le Service Web est Inaccessible

  1. Déclencheur : Prometheus détecte que votre site web ne répond plus et envoie une alerte via un webhook à N8N.
  2. Diagnostic Automatisé :
    • Le workflow N8N reçoit l’alerte.
    • Il utilise un nœud HTTP Request pour vérifier si le serveur lui-même répond (par exemple, en pingant une autre machine sur le même réseau).
    • Il se connecte en SSH (via un nœud “Execute Command”) pour vérifier l’état du service (ex: systemctl status nginx).
  3. Action Corrective :
    • Si le service est arrêté, le workflow tente de le redémarrer (systemctl restart nginx).
    • Il attend quelques secondes et vérifie à nouveau si le site est accessible.
  4. Notification :
    • Si la remédiation a réussi, il envoie une notification sur Slack ou Telegram : “✅ Le service Nginx était arrêté et a été redémarré avec succès.”
    • Si la remédiation a échoué, il escalade le problème en créant un ticket dans Jira ou en envoyant un message urgent à l’équipe d’astreinte.

Scénario 2 : Attaque par Force Brute Détectée

  1. Déclencheur : Notre agent CrowdSec détecte une attaque par force brute et envoie une alerte via un webhook.
  2. Enrichissement de l’Information :
    • Le workflow N8N reçoit l’alerte contenant l’IP de l’attaquant.
    • Il utilise des nœuds d’API pour interroger des services de géolocalisation (comme ip-api.com) et de réputation d’IP (comme AbuseIPDB).
  3. Action et Notification :
    • Il envoie un message détaillé sur un canal de sécurité : “🚨 Attaque par force brute détectée depuis l’IP 123.45.67.89 (Chine, ASN: China Telecom). L’IP a été bannie par le bouncer.
    • Il peut également ajouter automatiquement cette IP à une liste de surveillance dans un autre outil de sécurité.

Mise en Place de l’Environnement

Vous pouvez facilement déployer N8N avec Docker. Voici un exemple de docker-compose.yml :

version: '3.7'

services:
  n8n:
    image: n8nio/n8n
    container_name: n8n_workflow_automation
    restart: always
    ports:
      - "5678:5678"
    environment:
      - GENERIC_TIMEZONE=Europe/Paris
    volumes:
      - ./n8n_data:/home/node/.n8n

Une fois lancé, vous pouvez accéder à l’interface de N8N sur http://localhost:5678 et commencer à construire vos workflows.

Conclusion : Vers une Infrastructure Autonome

En combinant la surveillance (Prometheus), la sécurité (CrowdSec) et l’automatisation (N8N), nous passons d’une gestion réactive à une gestion proactive, voire prédictive. Cet “agent d’auto-réparation” réduit non seulement le temps moyen de résolution (MTTR), mais libère également les ingénieurs des tâches répétitives et stressantes, leur permettant de se concentrer sur l’innovation et l’amélioration continue. C’est un pas de plus vers une infrastructure véritablement autonome et résiliente.