Grok

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Type Langage de pattern-matching pour l'extraction de champs dans des logs
Écosystème Logstash / Elastic Stack (ELK)
Auteur d'origine Jordan Sissel (également auteur de Logstash)
Voir aussi Grafana · Octopussy · LOGZILLA

Grok est un langage de correspondance de motifs (pattern matching) utilisé pour extraire des champs structurés à partir de lignes de logs en texte libre. Il est surtout connu comme filtre grok de Logstash (pipeline Elastic Stack/ELK), où il permet de transformer une ligne de log brute en événement structuré — champs typés (adresse IP, timestamp, niveau de sévérité...) — à partir d'une bibliothèque de motifs réutilisables.

Attention : homonymie

Le nom « Grok » est aussi celui d'un framework web Python pour Zope (grok.zope.org), sans aucun rapport avec l'outil de pattern-matching de logs décrit ici — les deux projets ne partagent que leur nom. Des instructions d'installation mentionnant ez-setup.py grokproject concernent ce framework web, pas l'outil de parsing de logs.

Origine

L'outil de pattern-matching de logs a été créé par Jordan Sissel — également auteur de Logstash — sous le nom grok : une implémentation en C, distribuée séparément avant de devenir un filtre natif de Logstash.

Installation historique (outil autonome, avant intégration à Logstash)

# yum install bison gperf libevent libpcre CUnit ctags flex \
    libevent-devel libpcre3-devel libtokyocabinet-devel tokyocabinet-devel

# tar -zxf grok-<version>.tar.gz
# cd grok
# make
# make install

Cette installation autonome n'a plus lieu d'être aujourd'hui : Logstash embarque nativement un filtre grok, sans dépendance externe à installer.

Déboguer ses patterns

Un outil web interactif permet de tester un pattern grok contre un exemple de ligne de log avant de le déployer (à vérifier disponibilité de l'instance publique) — sinon, Kibana propose également un débogueur grok intégré dans les versions récentes de la stack.

Écosystème

Grok sert typiquement en amont d'une chaîne de visualisation et d'analyse de logs : une fois les champs extraits, les événements structurés peuvent être exploités par des outils comme Grafana, Octopussy ou LOGZILLA.

Voir aussi

  • Grafana — visualisation de métriques et de logs
  • Octopussy — analyseur de logs syslog
  • LOGZILLA — plateforme de gestion et d'analyse de logs
  • Syslog — les logs syslog sont une source fréquente à parser avec Grok