Bot destiné à la gestion des programmes hébergés sur le serveur de Gameur, permettant aux utilisateurs de gérer de manière autonome certaines actions et de résoudre des incidents mineurs. L’objectif principal de ce bot est de simplifier l’administration des services, d’offrir aux utilisateurs une plus grande autonomie dans la gestion de leurs programmes, et de réduire significativement la charge de travail de Gameur, en limitant les interventions manuelles aux cas nécessitant réellement une expertise technique.
Find a file
2026-02-26 12:43:43 +01:00
__pycache__ V1.0 de GameurBot (Metrics surveillance des perfs) 2026-02-26 12:43:43 +01:00
agent.py V1.0 de GameurBot (Metrics surveillance des perfs) 2026-02-26 12:43:43 +01:00
agent_output.log V1.0 de GameurBot (Metrics surveillance des perfs) 2026-02-26 12:43:43 +01:00
agent_precision.log V1.0 de GameurBot (Metrics surveillance des perfs) 2026-02-26 12:43:43 +01:00
agent_verification.log V1.0 de GameurBot (Metrics surveillance des perfs) 2026-02-26 12:43:43 +01:00
bot.py V1.0 de GameurBot (Metrics surveillance des perfs) 2026-02-26 12:43:43 +01:00
bot_output.log V1.0 de GameurBot (Metrics surveillance des perfs) 2026-02-26 12:43:43 +01:00
bot_precision.log V1.0 de GameurBot (Metrics surveillance des perfs) 2026-02-26 12:43:43 +01:00
bot_verification.log V1.0 de GameurBot (Metrics surveillance des perfs) 2026-02-26 12:43:43 +01:00
config.example.json V1.0 de GameurBot (Metrics surveillance des perfs) 2026-02-26 12:43:43 +01:00
config.json V1.0 de GameurBot (Metrics surveillance des perfs) 2026-02-26 12:43:43 +01:00
README.md V1.0 de GameurBot (Metrics surveillance des perfs) 2026-02-26 12:43:43 +01:00
requirements.txt V1.0 de GameurBot (Metrics surveillance des perfs) 2026-02-26 12:43:43 +01:00
status_engine.py V1.0 de GameurBot (Metrics surveillance des perfs) 2026-02-26 12:43:43 +01:00

🖥️ Discord Status Bot

Bot Discord de monitoring serveur en temps réel. Affiche et met à jour automatiquement un message épinglé dans chaque serveur Discord avec l'état des ressources, la cause des ralentissements, et une ETA de retour à la normale.


Architecture

[Serveur de jeux]                    [n'importe où]
   agent.py  ──── HTTP POST ────▶   bot.py
   (psutil)       /metrics           ├── serveur aiohttp (port 8765)
                                     ├── StatusEngine (analyse)
                                     └── discord.py (mise à jour embed épinglé)
                                              │
                                    ┌─────────┼─────────┐
                                 Guilde 1  Guilde 2  Guilde 3  ...

Installation

1. Dépendances

pip install -r requirements.txt

2. Configuration

cp config.example.json config.json

Remplis config.json :

Clé Description
discord_token Token de ton bot (https://discord.com/developers/applications)
api_secret Mot de passe partagé entre le bot et l'agent (chaîne aléatoire)
api_port Port HTTP du bot (défaut : 8765)

⚠️ Le même api_secret doit être renseigné dans agent.py (API_SECRET) et dans config.json.

3. Adapter l'agent

Dans agent.py, modifie :

BOT_API_URL = "http://ADRESSE_DU_BOT:8765/metrics"
API_SECRET  = "le_meme_secret_que_dans_config.json"

Si le bot et l'agent tournent sur la même machine, laisse http://localhost:8765/metrics.

Si le bot est sur une autre machine (VPS dédié Discord), utilise son IP/domaine.

4. Ajouter les mots-clés de tes services

Dans agent.py, SERVICE_KEYWORDS :

SERVICE_KEYWORDS = {
    "minecraft":    ["java", "minecraft", "paper"],
    "satisfactory": ["factoryserver"],
    "ollama":       ["ollama"],
    # Ajoute tes propres services ici
    "mon_jeu":      ["mon_process_name"],
}

Lancement

Bot (à lancer en premier)

python bot.py

Ou en service systemd :

[Unit]
Description=Discord Status Bot
After=network.target

[Service]
WorkingDirectory=/chemin/vers/discord-status-bot
ExecStart=/usr/bin/python3 bot.py
Restart=always

[Install]
WantedBy=multi-user.target

Agent (sur le serveur de jeux)

python agent.py

Idem, peut être lancé en service systemd.


Configuration Discord

Créer le bot Discord

  1. Aller sur https://discord.com/developers/applications
  2. New Application → donne-lui un nom
  3. Onglet BotReset Token → copier le token dans config.json
  4. Activer Server Members Intent et Message Content Intent si nécessaire
  5. Onglet OAuth2 > URL Generator :
    • Scopes : bot, applications.commands
    • Bot Permissions : Send Messages, Manage Messages, Embed Links, Read Message History
  6. Copier l'URL générée et l'ouvrir pour inviter le bot sur tes serveurs

Configurer chaque serveur Discord

Une fois le bot invité sur un serveur et lancé localement :

  1. Va dans le salon où tu veux le tableau de bord
  2. Tape /setup
  3. Le bot envoie et épingle le premier message de statut
  4. Répète sur chaque serveur Discord

Commandes slash disponibles

Commande Description Permissions
/status Affiche l'état actuel (message éphémère) Tous
/services Détail de chaque service détecté Tous
/setup Configure le salon actuel comme tableau de bord Admin

Personnalisation

Seuils d'alerte

Dans status_engine.py, modifie THRESHOLDS :

THRESHOLDS = {
    "cpu":  {"warning": 70,  "critical": 85},
    "ram":  {"warning": 80,  "critical": 90},
    "swap": {"warning": 40,  "critical": 70},
}

Fréquence de mise à jour

  • AgentPUSH_INTERVAL dans agent.py (défaut : 15s)
  • Bot@tasks.loop(seconds=20) dans bot.py

Exemple de rendu

🔴 Serveur — Surchargé

📊 Ressources
CPU  ████████░░  82%  🌡️ 74°C
RAM  █████████░  91%  (14.6/16.0 GB)
SWAP ████░░░░░░  43%

📈 Charge (1m / 5m / 15m) : 7.42 / 6.80 / 5.12

🎮 Services actifs
▸ ⛏️ Minecraft 🔥 — CPU 45% | RAM 4.2 GB
▸ 🤖 Ollama (IA) 🔥 — CPU 38% | RAM 8.1 GB
▸ 🏭 Satisfactory ⚡ — CPU 12% | RAM 2.1 GB

🔍 Pourquoi ça rame ?
• CPU à 82% — principal consommateur : Minecraft (45%)
• RAM à 91% (14.6/16.0 GB) — Ollama (IA) occupe 8.1 GB
• 💡 Conflit probable : Ollama (IA) et Minecraft, Satisfactory se partagent les ressources

⏱️ Retour à la normale
⏱️ Retour à la normale dans ~8 min

Dernière mise à jour  26/02/2026 21:34