Retour aux outils
MonitoringIntermédiaireOpen sourceAuto-hébergeable

Graylog

**La plateforme SIEM-like open source de référence** : collecte, indexation, recherche, alertes, das

MAJ 2026-06-14
Graylog
Site officiel Code source★ 8 062

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, da

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)

# 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

  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èreGraylogELK StackLokiWazuh
UI intégrée✅ ComplèteKibana❌ (Grafana)✅
Alertes✅ Avancées❌ (ElastAlert)✅ (Grafana)✅ SIEM
Pipelines✅ Built-inLogstash❌❌
SIEM features✅❌❌✅✅
Recherche full-text✅✅❌✅
RAM4-8 Go8-16 Go1-2 Go4-8 Go
LicenseSSPL-1.0SSPL/ElasticAGPL-3.0GPL-2.0
SetupMoyenComplexeFacileMoyen

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