SystÚme automatisé de surveillance et d'analyse de logs Linux utilisant l'intelligence artificielle (Mistral AI) pour détecter les anomalies de sécurité et générer des alertes en temps réel.
- Surveillance en temps réel des fichiers de logs systÚme
- Analyse intelligente via Mistral AI pour détecter les anomalies
- SystÚme de scoring de gravité (1-10) pour prioriser les alertes
- Alertes email automatiques pour les incidents critiques (score â„ 7)
- Rapport quotidien automatique envoyé à 04h00
- Architecture sécurisée avec utilisateur systÚme dédié
- Recommandations automatiques pour résoudre les problÚmes détectés
- OS : Linux (Ubuntu 20.04+, Debian 11+, ou compatible)
- Python : 3.8 ou supérieur
- Permissions : AccĂšs root/sudo pour l'installation
- Compte Mistral AI : console.mistral.ai
- Compte email : Gmail, Outlook, ou autre serveur SMTP
git clone https://github.com/renaudgweb/log-analyzer.git
cd log-analyzerchmod +x scripts/*.shsudo ./scripts/setup-log-analyzer.sh# Ăditer la configuration principale
sudo nano /etc/log_analyzer/config.ini
# Ajouter les secrets (clés API, mots de passe)
sudo nano /etc/log_analyzer/.envsudo systemctl start log-analyzer
sudo systemctl enable log-analyzer # Pour démarrage automatiquelog-analyzer/
âââ src/
â âââ __init__.py # Package Python
â âââ log_monitor.py # Script principal
â âââ config_loader.py # Chargement de configuration
â âââ email_sender.py # Gestion des emails
âââ config/
â âââ config.ini.example # Template de configuration
â âââ .env.example # Template des secrets
âââ systemd/
â âââ log-analyzer.service # Service systemd
âââ scripts/
â âââ setup-log-analyzer.sh # Installation
â âââ uninstall-log-analyzer.sh # DĂ©sinstallation
â âââ test-config.sh # Test de configuration
âââ docs/
â âââ installation.md
â âââ configuration.md
â âââ troubleshooting.md
âââ requirements.txt
âââ README.md
âââ .gitignore
[Settings]
log_files = /var/log/apache2/error.log, /var/log/auth.log
email_sender = votre_email@gmail.com
email_receiver = destinataire@gmail.com
smtp_server = smtp.gmail.com
smtp_port = 587
log_check_interval = 300
ai_model = mistral-medium-latest
ai_temperature = 0.5
ai_max_tokens = 4096
daily_report_file = /var/log/log_analyzer/daily_report.txtAI_API_KEY=votre_clé_mistral
SMTP_PASSWORD=votre_mot_de_passe_app_gmail# Démarrer
sudo systemctl start log-analyzer
# ArrĂȘter
sudo systemctl stop log-analyzer
# Redémarrer
sudo systemctl restart log-analyzer
# Statut
sudo systemctl status log-analyzer
# Activer au démarrage
sudo systemctl enable log-analyzer
# Désactiver au démarrage
sudo systemctl disable log-analyzer# Logs en temps réel
sudo journalctl -u log-analyzer -f
# DerniĂšres 100 lignes
sudo journalctl -u log-analyzer -n 100
# Logs d'aujourd'hui
sudo journalctl -u log-analyzer --since today
# Logs avec priorité error ou supérieur
sudo journalctl -u log-analyzer -p err# Tester la configuration
./scripts/test-config.sh
# Tester le chargement de config Python
python3 src/config_loader.py
# Tester l'envoi d'email
python3 src/email_sender.pyPour utiliser Gmail, vous devez créer un mot de passe d'application :
- Activez la validation en 2 étapes sur votre compte Google
- Allez sur myaccount.google.com/apppasswords
- Sélectionnez "Mail" et "Autre appareil"
- Copiez le mot de passe de 16 caractÚres généré
- Utilisez-le dans votre fichier
.env
Le systÚme est conçu avec les meilleures pratiques de sécurité :
- Utilisateur dédié sans shell interactif
- Permissions minimales (principe du moindre privilĂšge)
- Isolation complĂšte via systemd
- Secrets protégés (permissions 400 sur .env)
- Restrictions systĂšme (NoNewPrivileges, ProtectSystem, etc.)
Les anomalies sont notées de 1 à 10 :
- 1-3 : Anomalie bénigne (log uniquement)
- 4-6 : Anomalie modérée (log et rapport quotidien)
- 7-10 : Anomalie critique (log, rapport ET alerte email immédiate)
# Vérifier les logs d'erreur
sudo journalctl -u log-analyzer -n 50
# Vérifier les permissions
ls -la /etc/log_analyzer/
ls -la /opt/log_analyzer/# Vérifier les groupes de l'utilisateur
id log_analyzer
# Doit afficher "adm" dans les groupes
# Sinon, ajouter manuellement :
sudo usermod -aG adm log_analyzer
sudo systemctl restart log-analyzer# Tester la configuration email
python3 src/email_sender.py
# Vérifier les logs SMTP
sudo journalctl -u log-analyzer | grep -i smtpLes contributions sont les bienvenues ! N'hésitez pas à :
- Signaler des bugs
- Proposer des nouvelles fonctionnalités
- Améliorer la documentation
- Soumettre des pull requests
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.
renaudG
- Mistral AI pour l'API d'analyse
- La communauté open source pour les bibliothÚques utilisées