150 lines
6.1 KiB
Markdown
150 lines
6.1 KiB
Markdown
---
|
|
title: LoggiFly
|
|
created: 2026-06-07
|
|
updated: 2026-06-07
|
|
type: app
|
|
tags: [catalogue, docker, logs, monitoring, notifications, python, auto-hebergement]
|
|
confidence: high
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=Docker, https://github.com/clemcer/LoggiFly]
|
|
---
|
|
|
|
# 🐳 LoggiFly
|
|
|
|
> **Vos logs Docker vous parlent ?** : LoggiFly lit en continu les logs de vos conteneurs, filtre les motifs qui vous intéressent (erreurs, exceptions, mots-clés) et vous envoie une notification. Fini les logs perdus dans `docker logs`.
|
|
|
|
## 📋 Informations Générales
|
|
|
|
| Champ | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | (GitHub) |
|
|
| **GitHub** | [clemcer/LoggiFly](https://github.com/clemcer/LoggiFly) |
|
|
| **License** | MIT |
|
|
| **Langage** | Python |
|
|
| **Étoiles GitHub** | 1740 ⭐ |
|
|
| **Dernière MAJ** | 2026-06-02 |
|
|
| **Catégorie** | [[cat-docker\|Docker]] |
|
|
|
|
## 📝 Description
|
|
|
|
**LoggiFly** est un **démon léger** qui suit en temps réel (`docker logs -f`) la sortie de tous vos conteneurs, applique des **règles de filtrage** (regex, mots-clés, niveaux), et **déclenche des notifications** (Discord, Slack, Telegram, Ntfy, Gotify, email…) quand un motif correspond.
|
|
|
|
L'idée est de combler le manque entre `docker logs` (qu'il faut aller lire manuellement) et un ELK / Loki (trop lourd pour un homelab). LoggiFly est dans le juste milieu : GUI web, configuration YAML, notifications modernes.
|
|
|
|
- ✅ **Multi-conteneurs** : suit tous les conteneurs, ou une sélection via labels / noms
|
|
- ✅ **Règles YAML** : regex, mot-clé, niveau (ERROR/WARN/INFO), exclusion
|
|
- ✅ **Notifications multi-canaux** : Discord, Slack, Telegram, Ntfy, Gotify, Pushover, email, webhook custom
|
|
- ✅ **Anti-spam** : regroupement de notifications identiques sur une fenêtre de temps
|
|
- ✅ **GUI web** : dashboard des dernières alertes, aperçu des logs filtrés
|
|
- ✅ **Stockage SQLite** : conserve un historique des alertes
|
|
- ✅ **Mode multi-hôte** : peut se connecter à plusieurs daemons distants
|
|
|
|
**LoggiFly vs Dozzle** : Dozzle ([[app-dozzle]]) est un *viewer* de logs (lecture humaine), LoggiFly est un *alerter* (notification automatique). LoggiFly vs Loki/Grafana : stack pro pour gros volumes ; LoggiFly pour homelab. LoggiFly vs `grep + cron` : LoggiFly centralise, persiste et notifie — pas de scripts à maintenir.
|
|
|
|
## 🚀 Installation
|
|
|
|
### Docker Compose (recommandé)
|
|
|
|
```yaml
|
|
# docker-compose.yml
|
|
version: '3.8'
|
|
services:
|
|
loggifly:
|
|
image: ghcr.io/clemcer/loggifly:latest
|
|
container_name: loggifly
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8888:8888" # Web UI
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
|
- ./config:/app/config # config.yaml + rules.yaml
|
|
- loggifly-data:/app/data
|
|
environment:
|
|
- TZ=Europe/Paris
|
|
- LG_CONFIG=/app/config/config.yaml
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.loggifly.rule=Host(`logs.example.com`)"
|
|
- "traefik.http.routers.loggifly.entrypoints=websecure"
|
|
- "traefik.http.routers.loggifly.tls.certresolver=letsencrypt"
|
|
|
|
volumes:
|
|
loggifly-data:
|
|
```
|
|
|
|
### Exemple de config
|
|
|
|
```yaml
|
|
# config.yaml
|
|
general:
|
|
check_interval: 5
|
|
log_retention_days: 7
|
|
|
|
containers:
|
|
- name: "nextcloud"
|
|
patterns: ["Fatal", "Error", "exception", "out of memory"]
|
|
- name: "traefik"
|
|
patterns: ["level=error"]
|
|
|
|
notifications:
|
|
discord:
|
|
webhook: "https://discord.com/api/webhooks/…"
|
|
ntfy:
|
|
topic: "homelab-alerts"
|
|
```
|
|
|
|
## ⚙️ Configuration Initiale
|
|
|
|
1. **Monter le socket Docker** (`/var/run/docker.sock:ro`) pour que LoggiFly puisse lister et lire les conteneurs
|
|
2. **Préparer le dossier de config** : `./config/config.yaml` (paramètres généraux) et `./config/rules.yaml` (règles)
|
|
3. **Définir un premier conteneur à surveiller** : `containers: [{name: "nextcloud", patterns: ["Error", "exception"]}]`
|
|
4. **Configurer au moins un canal de notification** : Discord webhook, Ntfy topic, Telegram bot, etc.
|
|
5. **Accéder à la GUI** : `http://IP:8888` pour visualiser le dashboard et l'historique des alertes
|
|
6. **Ajuster l'anti-spam** : `cooldown` pour éviter qu'une même erreur en boucle spamme vos notifications
|
|
|
|
## 🔄 Alternatives
|
|
|
|
### Open Source
|
|
- [[app-dozzle|Dozzle]] — viewer web de logs en temps réel
|
|
- **Loki + Grafana** — stack pro, beaucoup plus lourde
|
|
- [[app-uptime-kuma|Uptime Kuma]] — monitoring d'uptime (pas de log streaming)
|
|
- **Vector / Promtail** — agents de collecte de logs
|
|
- **Docker events + script cron** — DIY
|
|
|
|
### Comparaison LoggiFly vs alternatives
|
|
|
|
| Critère | LoggiFly | Dozzle | Loki+Grafana | Vector |
|
|
| :--- | :--- | :--- | :--- | :--- |
|
|
| Lecture temps réel | ✅ | ✅ | ✅ | ✅ |
|
|
| Alertes/notifs | ✅ | ❌ | ✅ | ⚠️ (via Promtail) |
|
|
| Règles regex | ✅ | ❌ (filtre simple) | ✅ (LogQL) | ✅ (VRL) |
|
|
| GUI web | ✅ | ✅ | ✅ (Grafana) | ❌ |
|
|
| Setup | 5 min | 2 min | 1h+ | 30 min |
|
|
| RAM | ~50 Mo | ~30 Mo | ~500 Mo+ | ~50 Mo |
|
|
|
|
**Verdict** : LoggiFly est **le choix idéal pour un homelab** qui veut des alertes pertinentes sans la lourdeur de Loki. Pour des volumes >10 Go/jour, passez à Loki.
|
|
|
|
### Propriétaires (ce que LoggiFly remplace)
|
|
- **Datadog Log Management** (payant)
|
|
- **Loggly** (payant)
|
|
- **Sumo Logic** (payant)
|
|
- **New Relic Logs** (payant)
|
|
|
|
## 🔐 Sécurité
|
|
|
|
- ⚠️ **Socket Docker monté** : même en `ro`, peut lister tous vos conteneurs. Limiter via [[app-docker-socket-proxy-docker|docker-socket-proxy]] ou accès VPN
|
|
- **Logs potentiellement sensibles** : les logs Nextcloud/Mailcow/Seafile contiennent des adresses mail, des chemins, des PII. Ne pas exposer la GUI sur Internet sans auth
|
|
- **Webhooks** : valider les URLs, ne pas mettre de tokens dans le `docker-compose.yml` public — utiliser un `.env`
|
|
|
|
## 📚 Ressources
|
|
|
|
- [GitHub clemcer/LoggiFly](https://github.com/clemcer/LoggiFly)
|
|
- [Documentation & exemples](https://github.com/clemcer/LoggiFly/blob/main/docs/configuration.md)
|
|
|
|
## Pages Liées
|
|
- [[cat-docker]] — Catégorie Docker
|
|
- [[app-portainer]] / [[app-dockge]] / [[app-yacht]] — GUI Docker
|
|
- [[app-traefik]] — Reverse-proxy
|
|
- [[recettes-docker-compose]] — Compose files
|
|
- [[securisation-home-lab]] — Bonnes pratiques
|