Initial vault setup
This commit is contained in:
@@ -0,0 +1,184 @@
|
||||
---
|
||||
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é
|
||||
Reference in New Issue
Block a user