J'essaie d'analyser un fichier journal à l'aide de grok
Chaque ligne du fichier journal contient des champs séparés par des virgules:
13,home,ABC,Get,,Private, Public,1.2.3 ecc...
J'utilise une correspondance comme celle-ci: match => [ "message", "%{NUMBER:requestId},%{Word:ServerHost},%{Word:Service},
...
Ma question est: puis-je autoriser le champ facultatif? Parfois, certains fichiers peuvent être vides ,,
Y a-t-il un modèle qui correspond à une chaîne comme celle-ci 2.3.5
? (une sorte de numéro de version)
À sa base, grok est basé sur des expressions régulières, vous pouvez donc entourer un motif avec ()?
pour le rendre facultatif - par exemple (%{NUMBER:requestId})?,
S'il n'y a pas de motif grok qui correspond à vos besoins, vous pouvez toujours créer une extraction nommée comme ceci: (?<version>[\d\.]+)
qui extraira dans la version, une chaîne contenant un nombre quelconque de chiffres et de points.