2013-02-01 2 views
4

Résumé: J'ai quelques serveurs smtp sortants et des logs de courrier centralisés via rsyslog vers un serveur sur lequel j'utilise logstash, en les envoyant à elasticsearch, en cherchant avec kibana.Logstash grok filter pour marquer les messages rebondis

Je voudrais marquer comme "Bounced" pour les entrées du journal de Postfix comme:

2013-02-01T16:50:14+02:00 XXSMTPXX postfix/smtp[10879]: BC54A65BD4: to=<[email protected]>, relay=none, delay=0.3, delays=0.01/0/0.29/0, dsn=5.4.4, status=bounced (Host or domain name not found. Name service error for name=gozdesigorta.com.t type=AAAA: Host not found) 

le filtre grok je l'ai utilisé dans logstash.conf est comme:

grok { 
    patterns_dir => "/etc/logstash/patterns" 
    tags => "postfix/bounce" 
    pattern => "%{POSTFIXBOUNCE}" 
    add_tag => "BOUNCED" 
    named_captures_only => true 
} 

fichiers modèles J'utilise c'est https://gist.github.com/4691822

Je n'ai pas réussi à marquer ces lignes de journal comme BOUNCED ... Qu'est-ce que je manque?

Répondre

1

J'ai changé le modèle que:

%{TIMESTAMP_ISO8601} %{HOST} %{SYSLOGPROG}: %{QUEUEID}: to=<%{EMAILADDRESS:to}>, relay=%{RELAY}, delay=%{POSREAL:delay}, delays=%{DELAYS}, dsn=%{DSN}, status=%{STATUS} %{GREEDYDATA:reason} 

Maintenant, je peux grok;)

+1

BTW, semble que vous obtenez toutes les valeurs 'a = b' en utilisant groks. Ce n'est pas nécessaire, il suffit d'utiliser le filtre kv. :) –

Questions connexes