---
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é
