Analyseur de logs réseau en temps réel pour Linux. Collecte les événements réseau, détecte les anomalies et les affiche dans un dashboard interactif.
graph LR
A[Linux Logs] --> B[File Collector]
B --> C[Parser]
C --> D[(Database)]
D --> E[Analyzer]
D --> F[SignalR Hub]
E -. alerts .-> F
F --> G[React Dashboard]
Légende — Logs Linux → Collecteur → Parser → Base de données → Analyseur / SignalR → Dashboard React
- 📡 Collecte en temps réel via
journalctl,iptables,SharpPcap - 🔍 Parsing automatique des formats de logs Linux
- 🗄️ Stockage structuré dans SQLite (dev) ou PostgreSQL (prod)
- 🚨 Détection d'anomalies : port scan, flood, connexions suspectes
- 📊 Dashboard React avec graphes et tableau en temps réel
- ⚡ Push instantané via SignalR (WebSocket)
| Côté | Technologie |
|---|---|
| Backend | ASP.NET Core 9 (C#) |
| Frontend | React 18 + Vite |
| Base de données | SQLite → PostgreSQL |
| ORM | Entity Framework Core 9 |
| Temps réel | SignalR |
| Graphes | Recharts |
- .NET 9 SDK
- Node.js 20+
- Linux (testé sur Arch Linux / EndeavourOS)
git clone https://github.com/ton-user/NetworkLogAnalyzer.git
cd NetworkLogAnalyzercd backend
dotnet restore
dotnet ef database update \
--project src/Storage \
--startup-project src/Api
dotnet run --project src/ApiLe backend démarre sur http://localhost:5000
La documentation Swagger est disponible sur http://localhost:5000/swagger
cd frontend
npm install
npm run devLe frontend démarre sur http://localhost:5173
Terminal 1 — Backend :
cd backend && dotnet run --project src/ApiTerminal 2 — Frontend :
cd frontend && npm run devOuvre http://localhost:5173 dans ton navigateur.
Pour capturer les paquets sans être root :
sudo setcap cap_net_raw+eip $(which dotnet)Ou lancer directement avec sudo :
sudo dotnet run --project src/ApiNetworkLogAnalyzer/
├── README.md
├── ARCHITECTURE.md ← Guide technique complet
├── backend/
│ ├── global.json ← Force .NET 9
│ ├── NetworkLogAnalyzer.sln
│ └── src/
│ ├── Api/ ← Point d'entrée HTTP + SignalR
│ ├── Collector/ ← Lecture des logs
│ ├── Parser/ ← Traduction texte brut → objets
│ ├── Storage/ ← Base de données (EF Core)
│ └── Analyzer/ ← Détection d'anomalies
└── frontend/
└── src/
├── components/ ← Tableau, graphes, alertes
├── hooks/ ← useSignalR, useEvents
└── services/ ← Appels API REST
| Méthode | Endpoint | Description |
|---|---|---|
| GET | /api/events |
Liste tous les événements |
| GET | /api/events?severity=CRITICAL |
Filtrer par sévérité |
| GET | /api/events?sourceIp=X |
Filtrer par IP source |
| GET | /api/events/{id} |
Détail d'un événement |
| GET | /api/events/stats |
Statistiques globales |
ws://localhost:5000/hubs/logs Événements reçus en temps réel :
NewEvent→ nouvel événement réseauNewAlert→ anomalie détectée
| Règle | Condition | Sévérité |
|---|---|---|
| Port scan | Même IP, plus de 20 ports différents en 10 sec | CRITICAL |
| Flood | Plus de 1000 paquets par seconde | CRITICAL |
| SSH bruteforce | Plus de 5 tentatives SSH échouées en 1 min | WARNING |
- Fork le projet
- Crée une branche :
git checkout -b feature/ma-fonctionnalite - Commit :
git commit -m "Ajoute ma fonctionnalité" - Push :
git push origin feature/ma-fonctionnalite - Ouvre une Pull Request
MIT — libre d'utilisation, modification et distribution.