185 lines
7.9 KiB
Markdown
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é
|