2017-07-06 1 views
0

J'ai un cluster ELK pour conserver mes journaux ci-dessous, et je veux extraire certains champs dans le journal utiliser logstash grok.Chaîne de correspondance avec le préfixe et le suffixe utiliser Motif de connexion Logstash

[info ][170703 10:34:38.998686/832]acct ok,deal_time=122ms;ACCESS_PORT=216179383538692472&ACCESS_TYPE=2&ACCOUNT=07592111916&Acct-Status-Type=3; 

Voici mon motif grok. Je veux extraire la valeur de certains champs et la donner à la variable d'événement. par ex. acct = 07592111916

J'utilise (? (? < = ACCOUNT =). * & $) pour extraire la valeur, mais ne fonctionne pas, où est mon problème?

Je débogue le code dans ce site. http://grokdebug.herokuapp.com

+0

Est-ce que la réponse ci-dessous pour vous? –

+0

@ WiktorStribiżew oui, ça marche. – Kizer

+0

Si vous avez une autre question, postez-la. –

Répondre

1

Je pense que vous devez extraire cette façon:

(?<acct>(?<=ACCOUNT=)[^&]+)

+0

merci, cela fonctionne. comment puis-je aller plus loin, par exemple, vérifier si la chaîne "ACCOUNT =" existe, sinon passer le motif. – Kizer