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