Files
wiki/Catalogue-Self-Hosted/apps/app-graylog.md
T
2026-06-09 18:40:21 +02:00

185 lines
7.9 KiB
Markdown

---
title: Graylog
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, logs, siem, observability, alerting, dashboards, java, elasticsearch, mongodb]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=Logs, https://github.com/Graylog2/graylog2-server]
---
# 📋 Graylog
> **La plateforme SIEM-like open source de référence** : collecte, indexation, recherche, alertes, dashboards et threat intelligence dans une seule UI. Attention : la licence SSPL n'est pas reconnue comme open source stricte par l'OSI.
## 📋 Informations Générales
| Champ | Valeur |
| :--- | :--- |
| **Site web** | [graylog.org](https://www.graylog.org/) |
| **GitHub** | [Graylog2/graylog2-server](https://github.com/Graylog2/graylog2-server) |
| **License** | SSPL-1.0 (⚠️ pas OSS strict) |
| **Langage** | Java |
| **Étoiles GitHub** | 8k ⭐ |
| **Dernière MAJ** | 2026-06-05 |
| **Catégorie** | [[cat-logs|Logs]] |
## 📝 Description
**Graylog** est une **plateforme de gestion de logs** open source avec une stack technique lourde mais complète : **Graylog Server** (Java) + **MongoDB** (métadonnées) + **OpenSearch/Elasticsearch** (indexation). Cette stack apporte une vraie profondeur fonctionnelle : recherches full-text performantes, agrégations, dashboards, alertes, et même des fonctionnalités de type **SIEM** (Security Information & Event Management).
L'UI de Graylog est particulièrement aboutie pour un outil open source : **streams** (routage temps réel), **pipelines** (parsing/transform/enrich), **alertes** (email, Slack, PagerDuty), **dashboards** (graphiques temps réel), et une **API REST** complète. La version **Enterprise** ajoute LDAP/SAML, archivage, et compliance reporting.
⚠️ **Licence SSPL** : depuis la v4.0, Graylog est passé sous **Server Side Public License**. Cette licence (imposée par MongoDB en 2018) impose que toute personne offrant le logiciel en SaaS doive publier ses modifications. Elle **n'est pas reconnue par l'OSI** comme open source. Pour un labo perso, ça ne change rien. Pour un produit SaaS commercial, c'est problématique.
**Public cible** : équipes de sécurité (SOC), entreprises qui veulent un SIEM open source, labos avancés qui ont besoin d'alertes et de pipelines de logs, admins qui gèrent des parcs de serveurs moyens.
-**UI web complète** : recherche, dashboards, streams, alertes
-**Recherche full-text** performante (via OpenSearch)
-**Pipelines** : parsing, grok, regex, enrichissement (GeoIP, etc.)
-**Streams** : routage temps réel des logs par règles
-**Alertes** : seuils, agrégations, escalade
-**Dashboards** temps réel
-**Threat intelligence** : intégration MITRE ATT&CK, listes d'IPs
-**Inputs multiples** : Syslog (UDP/TCP/TLS), GELF, Beats, HTTP, Kafka
-**RBAC** : utilisateurs, rôles, équipes
-**API REST** complète
- ⚠️ **License SSPL** : pas SaaS-friendly
- ⚠️ **Stack lourde** : Java + MongoDB + OpenSearch (RAM)
## 🚀 Installation
### Option 1 : Docker Compose (stack complète)
```yaml
# docker-compose.yml
version: '3.8'
services:
mongodb:
image: mongo:7.0
container_name: graylog-mongo
restart: unless-stopped
volumes:
- mongo-data:/data/db
opensearch:
image: opensearchproject/opensearch:2.15.0
container_name: graylog-opensearch
restart: unless-stopped
environment:
- discovery.type=single-node
- bootstrap.memory_lock=true
- "OPENSEARCH_JAVA_OPTS=-Xms2g -Xmx2g"
- DISABLE_SECURITY_PLUGIN=true
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- opensearch-data:/usr/share/opensearch/data
graylog:
image: graylog/graylog:6.0
container_name: graylog
restart: unless-stopped
environment:
GRAYLOG_PASSWORD_SECRET: CHANGEME-256BIT-SECRET
GRAYLOG_ROOT_PASSWORD_SHA2: SHA256-HASH-OF-YOUR-PASSWORD
GRAYLOG_HTTP_EXTERNAL_URI: http://graylog.example.com:9000/
GRAYLOG_MONGODB_URI: mongodb://mongodb:27017/graylog
GRAYLOG_ELASTICSEARCH_HOSTS: http://opensearch:9200
depends_on:
- mongodb
- opensearch
ports:
- "9000:9000" # Web UI
- "1514:1514" # Syslog TCP
- "1514:1514/udp" # Syslog UDP
- "12201:12201" # GELF
labels:
- "traefik.enable=true"
- "traefik.http.routers.graylog.rule=Host(`graylog.example.com`)"
- "traefik.http.routers.graylog.entrypoints=websecure"
- "traefik.http.routers.graylog.tls.certresolver=letsencrypt"
volumes:
mongo-data:
opensearch-data:
```
### Option 2 : OVA (VM préconfigurée)
Graylog fournit une image OVA prête à l'emploi (test/lab).
## ⚙️ Configuration Initiale
1. **Démarrer la stack** : `docker compose up -d`
2. **Accéder à l'UI** : `http://IP:9000` (login: `admin` / mot de passe root)
3. **Créer un input** : System > Inputs > Syslog UDP > Launch
4. **Créer une stream** : Streams > Create > règles de filtrage
5. **Créer un pipeline** : System > Pipelines > règles de parsing (grok, regex)
6. **Configurer les alertes** : Alerts > Event Definitions
7. **Activer le threat intel** : Security > Threat Intel
8. **Connecter les sources** : rsyslog, filebeat, nxlog côté clients
## 🔄 Alternatives
### Open Source
- [[app-loki]] — Plus léger, label-based
- [[app-elasticsearch]] — Directement (sans Graylog par-dessus)
- [[app-parseable]] — Moderne, columnar
- [[app-quickwit]] — Recherche full-text légère
- **Wazuh** — SIEM complet (open source, plus security-focused)
- **ELK Stack** — Elasticsearch + Logstash + Kibana (parent commun de Graylog)
### Comparaison Graylog vs autres
| Critère | Graylog | ELK Stack | Loki | Wazuh |
| :--- | :--- | :--- | :--- | :--- |
| **UI intégrée** | ✅ Complète | Kibana | ❌ (Grafana) | ✅ |
| **Alertes** | ✅ Avancées | ❌ (ElastAlert) | ✅ (Grafana) | ✅ SIEM |
| **Pipelines** | ✅ Built-in | Logstash | ❌ | ❌ |
| **SIEM features** | ✅ | ❌ | ❌ | ✅✅ |
| **Recherche full-text** | ✅ | ✅ | ❌ | ✅ |
| **RAM** | 4-8 Go | 8-16 Go | 1-2 Go | 4-8 Go |
| **License** | SSPL-1.0 | SSPL/Elastic | AGPL-3.0 | GPL-2.0 |
| **Setup** | Moyen | Complexe | Facile | Moyen |
**Verdict** : Graylog est **le plus complet** des outils open source pour la gestion de logs avec UI. Idéal si vous voulez des pipelines et alertes intégrées. Pour un labo léger, [[app-loki]] est plus simple. Pour un vrai SIEM, Wazuh est plus adapté.
### Propriétaires (ce que Graylog remplace)
- **Splunk** (cher, enterprise)
- **IBM QRadar** (SIEM, très cher)
- **LogRhythm** (SIEM)
- **Datadog Logs + Monitoring**
- **Sumo Logic**
## 🔐 Sécurité
- ⚠️ **Logs = données sensibles** : Graylog gère souvent des logs de sécurité (auth, firewall)
-**Chiffrement at-rest** : LUKS/ZFS + chiffrement OpenSearch (TLS + passwords)
-**Chiffrement in-transit** : TLS obligatoire (Traefik + syslog TLS)
-**Authentification** : local, LDAP, Active Directory, SAML (Enterprise)
-**RBAC** : Users > Teams > Roles (read/write/admin par stream)
- ⚠️ **Rétention** : GDPR/RGPD — configurer `index_set.retention_strategy` (deletion ou rotation)
-**PII filtering** : pipelines Grok/regex pour anonymiser
-**Audit log** : System > Audit Log (qui a fait quoi)
-**Backups chiffrés** : [[app-restic]] sur `/var/lib/graylog-data` et MongoDB
- ⚠️ **License SSPL** : vérifier la compatibilité avec votre cas d'usage commercial
## 📚 Ressources
- [GitHub Graylog2/graylog2-server](https://github.com/Graylog2/graylog2-server)
- [Documentation officielle](https://go2docs.graylog.org/)
- [Graylog Marketplace](https://marketplace.graylog.org/)
- [Tutoriels YouTube](https://www.youtube.com/c/Graylog)
## Pages Liées
- [[cat-logs]] — Catégorie Logs
- [[app-loki]] — Alternative légère
- [[app-grafana]] — Visualisation (peut compléter)
- [[app-uptime-kuma]] — Monitoring uptime
- [[securisation-home-lab]] — Bonnes pratiques sécurité