Présentation

Créez des règles grok personnalisées pour analyser le message complet ou un attribut spécifique de votre événement brut. Limitez votre parseur grok à 10 règles de parsing. Pour plus d’informations sur la syntaxe Grok et les règles d’analyse, consultez Parsing.

Configuration du parseur Grok

Cas d’utilisation

Le parseur grok est principalement utilisé pour analyser les attributs à partir du message de votre log. Par exemple, les logs NGINX ont un message contenant plusieurs informations que vous pourriez vouloir extraire.

Après avoir créé une règle grok, le parseur peut écrire l’adresse IP, l’utilisateur, l’horodatage de la requête, la méthode de requête, l’URL, la version, le code de statut et les octets.

Configuration

Définissez le processeur Grok sur la Pipelines page. Pour configurer les règles de parsing Grok :

  1. Cliquez sur Add Grok Parser pour ouvrir une nouvelle configuration de parseur.
  2. Log Samples : Des exemples de logs sont automatiquement extraits dans la section Log Samples. Vous pouvez également ajouter d’autres exemples de logs (jusqu’à 10 au total, 5000 caractères chacun). Remarque : Les exemples de logs sont extraits des cinq modèles de logs ayant le volume le plus élevé correspondant à votre filtre de pipeline.
  3. Log Samples : Ajoutez jusqu’à cinq exemples de logs (jusqu’à 5000 caractères chacun) pour tester vos règles de parsing.
  4. Define parsing rules : Cliquez sur Auto parsing pour générer des règles correspondant à vos exemples.

    Le parsing automatique n'est pas disponible pour votre site Datadog sélectionné ().

  5. Test your rules : Cliquez sur un exemple pour déclencher son évaluation par rapport à la règle de parsing et afficher le résultat sur la droite de l’écran. Tous les exemples affichent un statut (match ou no match), qui indique si l’une des règles de parsing du parseur grok correspond à l’exemple.

État des logs avant et après

Avant (log brut) :

192.168.1.1 - john [10/Oct/2023:13:55:36 +0000] "GET /api/users HTTP/1.1" 200 1234

Règle de parsing Grok :

access.common %{ipOrHost:network.client.ip} %{notSpace:http.ident} %{notSpace:http.auth} \[%{httpdate:date}\] "(?>%{word:http.method} |)%{notSpace:http.url}(?: HTTP/%{number:http.version}|)" %{number:http.status_code} (?>%{number:network.bytes_written}|-)

Après traitement :

{
 "network": {
   "client": {
     "ip": "192.168.1.1"
   },
   "bytes_written": 1234
 },
 "http": {
   "ident": "-",
   "auth": "john",
   "method": "GET",
   "url": "/api/users",
   "version": "1.1",
   "status_code": 200
 },
 "date": 1696945536000
}

Le parseur Grok transforme les messages de logs non structurés en attributs JSON structurés qui peuvent être interrogés, filtrés et analysés dans le Log Explorer.

API

Utilisez le Datadog Log Pipeline API endpoint avec la charge utile JSON du parseur Grok suivante :

{
  "type": "grok-parser",
  "name": "Parsing Log message",
  "is_enabled": true,
  "source": "message",
  "samples": ["sample log 1", "sample log 2"],
  "grok": {"support_rules": "<SUPPORT_RULES>", "match_rules": "<MATCH_RULES>"}
}
ParamètreTypeRequisDescription
typeChaîneOuiType du processeur.
nameChaîneNonNom du processeur.
is_enabledBooléenNonIndique si le processeur est activé ou non. Par défaut: false.
sourceChaîneOuiNom de l’attribut de log à analyser. Par défaut: message.
samplesTableau de chaînesNonListe de (jusqu’à 5) exemples de logs pour ce parseur grok.
grok.support_rulesChaîneOuiListe des règles de support pour votre parseur grok.
grok.match_rulesChaîneOuiListe des règles de correspondance pour votre parseur grok.

Pour aller plus loin