web-dev-qa-db-fra.com

Champs facultatifs de journal de connexion dans le fichier journal

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)

22
alpa

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

58
Alcanzar