web-dev-qa-db-fra.com

Logstash conditionnel pour vérifier si la balise existe?

Existe-t-il un moyen dans logstash d'utiliser un conditionnel pour vérifier si une balise spécifique existe?

Par exemple,

grok {
match => [
"message", "Some expression to match|%{GREEDYDATA:NOMATCHES}"
]

si NOMATCHES existe Faites quelque chose.

Comment vérifier si la balise NOMATCHES existe ou non?

Merci.

22
CodeRunner

Juste pour être clair: l'extrait de configuration que vous avez fourni définit un champ, pas une balise.

Les événements Logstash peuvent être considérés comme un dictionnaire de champs. Un champ nommé tags est référencé par de nombreux plugins via add_tag et remove_tag opérations.

Vous pouvez vérifier si une balise est définie:

if "foo" in [tags] {
    ...
}

Mais vous semblez vouloir vérifier si un champ contient quelque chose:

if [NOMATCHES] =~ /.+/ {
    ...
}

Ce qui précède vérifiera que NOMATCHES existe et n'est pas vide.

Référence: aperçu du fichier de configuration.

50
rutter

Le test d'existence suivant fonctionne également [testé dans Logstash 1.4.2], bien qu'il ne puisse pas valider non vide:

if [NOMATCHES] {
    ...
}
6
dgassaway