Skip to content

renaudgweb/LogIAnalyzer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🕵️‍♂️ LogIAnalyzer - Surveillance et Analyse des Logs avec IA

LogIAnalyzer Logo

License: MIT Python version

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.

🌟 Fonctionnalités

  • 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

📋 Prérequis

  • 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

🚀 Installation rapide

1. Cloner le repository

git clone https://github.com/renaudgweb/log-analyzer.git
cd log-analyzer

2. Rendre les scripts exécutables

chmod +x scripts/*.sh

3. Installer le système

sudo ./scripts/setup-log-analyzer.sh

4. Configurer les paramètres

# É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/.env

5. Démarrer le service

sudo systemctl start log-analyzer
sudo systemctl enable log-analyzer  # Pour démarrage automatique

📁 Structure du projet

log-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

⚙️ Configuration

Fichier config.ini

[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.txt

Fichier .env

AI_API_KEY=votre_clé_mistral
SMTP_PASSWORD=votre_mot_de_passe_app_gmail

🔧 Commandes utiles

Gestion du service

# 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

Consultation des logs

# 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

Tests

# 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.py

📧 Configuration Gmail

Pour utiliser Gmail, vous devez créer un mot de passe d'application :

  1. Activez la validation en 2 étapes sur votre compte Google
  2. Allez sur myaccount.google.com/apppasswords
  3. Sélectionnez "Mail" et "Autre appareil"
  4. Copiez le mot de passe de 16 caractères généré
  5. Utilisez-le dans votre fichier .env

🔐 Sécurité

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.)

📊 Système de scoring

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)

🐛 Dépannage

Le service ne démarre pas

# 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/

Pas d'accès aux fichiers de logs

# 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

Emails non reçus

# Tester la configuration email
python3 src/email_sender.py

# Vérifier les logs SMTP
sudo journalctl -u log-analyzer | grep -i smtp

📚 Documentation

🤝 Contribution

Les contributions sont les bienvenues ! N'hésitez pas à :

  • Signaler des bugs
  • Proposer des nouvelles fonctionnalités
  • Améliorer la documentation
  • Soumettre des pull requests

📄 Licence

Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.

👤 Auteur

renaudG

🙏 Remerciements

  • Mistral AI pour l'API d'analyse
  • La communauté open source pour les bibliothèques utilisées

About

Log analysis with AI

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published