Grok
| 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.