Jacquin Antoine e19d4069ce version 2
2026-02-21 23:27:11 +01:00
2026-02-21 22:46:47 +01:00
2026-02-21 23:27:11 +01:00
2026-02-21 23:27:11 +01:00
2026-02-21 23:27:11 +01:00
2026-02-21 22:46:47 +01:00

🛠️ Ops-GPT : Orchestrateur SRE (Modèle GPT-OSS:20B)

Ops-GPT est un assistant SRE spécialisé dans l'écosystème RHEL / CentOS / Rocky Linux. Il utilise les données temps réel pour diagnostiquer les pannes de service et les conflits de ressources.

📌 Architecture de Diagnostic

L'intelligence du système repose sur la corrélation de cinq flux de données via le protocole MCP (Model Context Protocol) :

  1. Inventaire (RPM) : Identification des versions OS et paquets.
  2. Performance (VictoriaMetrics) : Monitoring (CPU, RAM, I/O, Network).
  3. Réseau & Sockets (ss -ntulop) : État réel des ports et processus à l'écoute.
  4. Configuration Live par Service : Lecture ciblée des fichiers de configuration (/etc/).
  5. Mémoire Collective (ChromaDB) : Base vectorielle des incidents passés.

🚀 Spécifications des Outils MCP

📂 get_live_config(service_name)

  • Fonction : Récupère intelligemment l'ensemble des fichiers de configuration liés à un service spécifique.
  • Comportement : Si service_name="nginx", l'outil renvoie /etc/nginx/nginx.conf et les fichiers dans /etc/nginx/conf.d/.
  • Format de sortie :
    SERVICE: [service_name]
    FILES_COLLECTED: /etc/[service]/...
    --- FILE: [path] ---
    [Content]
    

🔌 get_network_sockets

  • Fonction : Fournit la sortie brute de la commande ss -ntulop.
  • Utilité : Permet au LLM de corréler les ports configurés avec les processus réellement en cours d'exécution (PID, Users, Inodes).
  • Format de sortie :
    NETWORK_STATE (ss -ntulop):
    Netid State  Recv-Q Send-Q Local Address:Port Peer Address:Port Process
    tcp   LISTEN 0      128    0.0.0.0:80         0.0.0.0:* users:(("nginx",pid=1234,fd=6))
    

📊 get_system_metrics (VictoriaMetrics)

  • Fonction : Extraction des statistiques descriptives (Load, CPU, I/O Wait).

🛡️ Règles de Gouvernance SRE

1. Sécurité et Anonymisation

Le modèle applique un filtre systématique :

  • IPs[IP_SOURCE] / [IP_DEST]
  • Hostnames[HOSTNAME]
  • Secrets[REDACTED] (Clés, Passwords dans les confs).

2. Stratégie Linguistique

  • Interface Client : Français.
  • Backend & Archivage : Anglais Technique.

3. Philosophie d'Intervention

  • Périmètre : OS & Middleware (RHEL-based).
  • Priorité : Restauration immédiate (MTTR) via Workarounds.
  • Données : Zéro perte de données tolérée.

📋 Exemple de Corrélation Avancée

  1. Input : "Impossible de démarrer Apache sur [HOSTNAME]."
  2. Action 1 (get_network_sockets) : Le modèle voit que le port 80 est déjà "LISTEN" par le PID 567 (nginx).
  3. Action 2 (get_live_config("apache")) : Le modèle confirme que le Listen 80 est configuré.
  4. Action 3 (get_rpm_inventory) : Vérifie si une mise à jour récente a installé nginx par erreur (dépendance).
  5. Synthèse : "Conflit détecté : Nginx occupe déjà le port 80. Souhaitez-vous arrêter Nginx ou changer le port d'Apache ?"
  6. Archivage : Enregistre le conflit de port dans ChromaDB.
Description
No description provided
Readme 43 KiB
Languages
Python 92.8%
Dockerfile 7.2%