mirror of
https://github.com/skylanix/MamieHenriette.git
synced 2026-02-16 21:10:37 +01:00
Ajoute surveillance Zabbix optionnelle et migration Alpine
- Migre vers Alpine Linux avec surveillance Zabbix optionnelle - Configure variables d'environnement pour activation conditionnelle - Met à jour documentation avec instructions Docker complètes
This commit is contained in:
10
.env.example
Normal file
10
.env.example
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# Configuration Discord Bot
|
||||||
|
TOKEN=your_discord_bot_token_here
|
||||||
|
STATUS=online
|
||||||
|
INTERVAL=3600
|
||||||
|
|
||||||
|
# Configuration Zabbix (optionnel)
|
||||||
|
ENABLE_ZABBIX=false
|
||||||
|
ZABBIX_SERVER=zabbix-server.example.com
|
||||||
|
ZABBIX_HOSTNAME=mamie-henrriette-bot
|
||||||
|
ZABBIX_PORT=10050
|
||||||
11
Dockerfile
11
Dockerfile
@@ -1,11 +1,16 @@
|
|||||||
FROM python:3.9-slim
|
FROM alpine:3.22.1
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
|
RUN apk add --no-cache python3 py3-pip zabbix-agent2
|
||||||
|
|
||||||
COPY requirements.txt .
|
COPY requirements.txt .
|
||||||
COPY bot.py .
|
COPY bot.py .
|
||||||
COPY statuts.txt .
|
COPY statuts.txt .
|
||||||
|
COPY zabbix_agent2.conf /etc/zabbix/zabbix_agent2.conf
|
||||||
|
COPY start.sh /start.sh
|
||||||
|
|
||||||
RUN pip install --no-cache-dir -r requirements.txt
|
RUN pip3 install --no-cache-dir --break-system-packages --root-user-action=ignore -r requirements.txt && \
|
||||||
|
chmod +x /start.sh
|
||||||
|
|
||||||
CMD ["python", "bot.py"]
|
CMD ["/start.sh"]
|
||||||
102
README.md
102
README.md
@@ -1,4 +1,3 @@
|
|||||||
Voici le README.md pour votre projet :
|
|
||||||
|
|
||||||
# 👵 Mamie Henrriette - Discord Status Bot 🤖
|
# 👵 Mamie Henrriette - Discord Status Bot 🤖
|
||||||
|
|
||||||
@@ -13,11 +12,13 @@ Mamie Henrriette est un bot Discord intelligent qui change automatiquement de st
|
|||||||
- Gestion des erreurs et logging
|
- Gestion des erreurs et logging
|
||||||
- Support multi-statuts Discord
|
- Support multi-statuts Discord
|
||||||
- Déploiement simplifié avec Docker
|
- Déploiement simplifié avec Docker
|
||||||
|
- 📊 Surveillance optionnelle avec Zabbix
|
||||||
|
|
||||||
## 🛠 Prérequis
|
## 🛠 Prérequis
|
||||||
|
|
||||||
- Docker
|
- Docker et Docker Compose
|
||||||
- Compte Discord et Token du bot
|
- Compte Discord et Token du bot
|
||||||
|
- (Optionnel) Serveur Zabbix pour la surveillance
|
||||||
|
|
||||||
## 📦 Installation
|
## 📦 Installation
|
||||||
|
|
||||||
@@ -27,19 +28,69 @@ git clone https://git.favrep.ch/lapatatedouce/MamieHenrriette
|
|||||||
cd MamieHenrriette
|
cd MamieHenrriette
|
||||||
```
|
```
|
||||||
|
|
||||||
2. Conteneur Docker
|
2. Copiez le fichier de configuration
|
||||||
|
```bash
|
||||||
|
cp .env.example .env
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Éditez le fichier `.env` avec vos paramètres
|
||||||
|
```bash
|
||||||
|
nano .env
|
||||||
|
```
|
||||||
|
|
||||||
|
4. Démarrez le conteneur Docker
|
||||||
|
|
||||||
|
**Mode développement (avec logs):**
|
||||||
```bash
|
```bash
|
||||||
docker-compose up --build
|
docker-compose up --build
|
||||||
```
|
```
|
||||||
|
|
||||||
|
**Mode production (en arrière-plan):**
|
||||||
|
```bash
|
||||||
|
docker-compose up --build -d
|
||||||
|
```
|
||||||
|
|
||||||
|
**Voir les logs:**
|
||||||
|
```bash
|
||||||
|
docker-compose logs -f discord-bot
|
||||||
|
```
|
||||||
|
|
||||||
|
**Arrêter le conteneur:**
|
||||||
|
```bash
|
||||||
|
docker-compose down
|
||||||
|
```
|
||||||
|
|
||||||
## 🔧 Configuration
|
## 🔧 Configuration
|
||||||
|
|
||||||
### Variables d'environnement
|
### Variables d'environnement principales
|
||||||
|
|
||||||
- `TOKEN`: Votre token Discord (obligatoire)
|
- `TOKEN`: Votre token Discord (obligatoire)
|
||||||
- `STATUS`: Statut initial (défaut: online)
|
- `STATUS`: Statut initial (défaut: online)
|
||||||
- `INTERVAL`: Intervalle de changement de statut (défaut: 60 secondes)
|
- `INTERVAL`: Intervalle de changement de statut (défaut: 3600 secondes)
|
||||||
|
|
||||||
|
### 📊 Configuration Zabbix (optionnelle)
|
||||||
|
|
||||||
|
- `ENABLE_ZABBIX`: Activer la surveillance Zabbix (défaut: false)
|
||||||
|
- `ZABBIX_SERVER`: Adresse du serveur Zabbix
|
||||||
|
- `ZABBIX_HOSTNAME`: Nom d'hôte pour identifier le bot
|
||||||
|
- `ZABBIX_PORT`: Port d'exposition Zabbix (défaut: 10050)
|
||||||
|
|
||||||
|
#### Métriques surveillées par Zabbix
|
||||||
|
|
||||||
|
- Statut du bot Discord
|
||||||
|
- Temps de fonctionnement (uptime)
|
||||||
|
- Utilisation mémoire
|
||||||
|
- Erreurs et avertissements dans les logs
|
||||||
|
- Connectivité à Discord
|
||||||
|
|
||||||
|
#### Activation de Zabbix
|
||||||
|
|
||||||
|
Dans votre fichier `.env` :
|
||||||
|
```bash
|
||||||
|
ENABLE_ZABBIX=true
|
||||||
|
ZABBIX_SERVER=votre-serveur-zabbix.com
|
||||||
|
ZABBIX_HOSTNAME=mamie-henrriette-bot
|
||||||
|
```
|
||||||
|
|
||||||
### Fichier `statuts.txt`
|
### Fichier `statuts.txt`
|
||||||
|
|
||||||
@@ -57,33 +108,38 @@ En mode supervision
|
|||||||
- discord.py==2.3.2
|
- discord.py==2.3.2
|
||||||
- python-dotenv==1.0.0
|
- python-dotenv==1.0.0
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 🖥️ Installation environnement de développement
|
||||||
|
|
||||||
# Installation poste de dev
|
## Installation des dépendances système
|
||||||
## installation des dépendences systeme
|
|
||||||
~~~
|
|
||||||
sudo apt install python3 python3-pip p
|
|
||||||
~~~
|
|
||||||
|
|
||||||
## creation de l'environnement python locale
|
```bash
|
||||||
Dans le projet
|
sudo apt install python3 python3-pip
|
||||||
~~~
|
```
|
||||||
|
|
||||||
|
## Création de l'environnement Python local
|
||||||
|
|
||||||
|
Dans le dossier du projet :
|
||||||
|
|
||||||
|
```bash
|
||||||
python3 -m venv .venv
|
python3 -m venv .venv
|
||||||
~~~
|
```
|
||||||
|
|
||||||
Puis activer l'environnement :
|
Puis activer l'environnement :
|
||||||
~~~
|
|
||||||
|
```bash
|
||||||
source .venv/bin/activate
|
source .venv/bin/activate
|
||||||
~~~
|
```
|
||||||
|
|
||||||
## installation des dépendences python
|
## Installation des dépendances Python
|
||||||
|
|
||||||
~~~
|
```bash
|
||||||
pip install -r requirements.txt
|
pip install -r requirements.txt
|
||||||
~~~
|
```
|
||||||
|
|
||||||
## execution
|
## Exécution
|
||||||
|
|
||||||
~~~
|
```bash
|
||||||
TOKEN=truc python3 bot.py
|
TOKEN=votre_token_discord python3 bot.py
|
||||||
~~~
|
```
|
||||||
@@ -7,5 +7,12 @@ services:
|
|||||||
- TOKEN=your token
|
- TOKEN=your token
|
||||||
- STATUS=online
|
- STATUS=online
|
||||||
- INTERVAL=3600
|
- INTERVAL=3600
|
||||||
|
- ENABLE_ZABBIX=${ENABLE_ZABBIX:-false}
|
||||||
|
- ZABBIX_SERVER=${ZABBIX_SERVER:-zabbix-server.example.com}
|
||||||
|
- ZABBIX_HOSTNAME=${ZABBIX_HOSTNAME:-mamie-henrriette-bot}
|
||||||
volumes:
|
volumes:
|
||||||
- ./statuts.txt:/app/statuts.txt
|
- ./statuts.txt:/app/statuts.txt
|
||||||
|
ports:
|
||||||
|
- "${ZABBIX_PORT:-10050}:10050"
|
||||||
|
profiles:
|
||||||
|
- default
|
||||||
21
start.sh
Normal file
21
start.sh
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Script de démarrage conditionnel pour Zabbix et le bot Discord
|
||||||
|
|
||||||
|
# Vérifier si Zabbix est activé
|
||||||
|
if [ "$ENABLE_ZABBIX" = "true" ]; then
|
||||||
|
echo "Zabbix activé - Configuration de l'agent..."
|
||||||
|
|
||||||
|
# Remplacer les variables dans la config Zabbix
|
||||||
|
sed -i "s/Server=.*/Server=$ZABBIX_SERVER/" /etc/zabbix/zabbix_agent2.conf
|
||||||
|
sed -i "s/ServerActive=.*/ServerActive=$ZABBIX_SERVER:10051/" /etc/zabbix/zabbix_agent2.conf
|
||||||
|
sed -i "s/Hostname=.*/Hostname=$ZABBIX_HOSTNAME/" /etc/zabbix/zabbix_agent2.conf
|
||||||
|
|
||||||
|
zabbix_agent2 -f &
|
||||||
|
echo "Zabbix Agent démarré"
|
||||||
|
else
|
||||||
|
echo "Zabbix désactivé"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Démarrage du bot Discord..."
|
||||||
|
exec python3 bot.py
|
||||||
30
zabbix_agent2.conf
Normal file
30
zabbix_agent2.conf
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
# Configuration Zabbix Agent 2 pour Mamie Henrriette Bot
|
||||||
|
|
||||||
|
# Serveur Zabbix
|
||||||
|
Server=zabbix-server.example.com
|
||||||
|
ServerActive=zabbix-server.example.com:10051
|
||||||
|
|
||||||
|
# Configuration de l'agent
|
||||||
|
Hostname=mamie-henrriette-bot
|
||||||
|
ListenPort=10050
|
||||||
|
ListenIP=0.0.0.0
|
||||||
|
|
||||||
|
# Logs
|
||||||
|
LogType=console
|
||||||
|
LogLevel=3
|
||||||
|
DebugLevel=3
|
||||||
|
|
||||||
|
# Timeout
|
||||||
|
Timeout=30
|
||||||
|
|
||||||
|
# Métriques personnalisées pour le bot Discord
|
||||||
|
UserParameter=discord.bot.status,python3 /app/bot_status.py
|
||||||
|
UserParameter=discord.bot.uptime,cat /proc/uptime | awk '{print $1}'
|
||||||
|
UserParameter=discord.bot.memory,ps -o pid,vsz,rss,comm -p $(pgrep -f bot.py) | tail -1 | awk '{print $3}'
|
||||||
|
|
||||||
|
# Surveillance des logs
|
||||||
|
UserParameter=discord.bot.errors,grep -c "ERROR" /var/log/discord-bot.log 2>/dev/null || echo 0
|
||||||
|
UserParameter=discord.bot.warnings,grep -c "WARNING" /var/log/discord-bot.log 2>/dev/null || echo 0
|
||||||
|
|
||||||
|
# Vérification de la connectivité Discord
|
||||||
|
UserParameter=discord.connectivity,timeout 5 curl -s https://discord.com/api/v10/gateway >/dev/null && echo 1 || echo 0
|
||||||
Reference in New Issue
Block a user