2017-03-20 2 views
0

mon format de journal est:comment écrire la config de sortie logstash pour obtenir ABC, AD_EF, 123?

XXX: 03-20 17:52:28: XXX. * 0 XXX [XXX] [X XX: X]:XXX\tABC:AD_EF:123\t0\tXXXXXXXXXXXXXXXX\tXXXXXXXXXXXXXXXXXXX 

comment écrire la configuration de sortie logstash pour obtenir ABC, AD_EF, 123?

exemple de sortie: bon, ABC, DEF, 123

output { 
    file { 
     path => "/xxx/xxx/xxx/output.txt" 
     codec => plain { 
      format => "good,ABC,DEF,123" # how to write this regular expression???? 
     } 
     flush_interval => 0 
    } 
} 

Répondre

0

Merci pour tout l'aide, mais peut-être que j'ai fait une erreur. Et enfin, j'obtiens la réponse à ma quête:

filter { 
grok { 
    match => { 
     "message" => "XXX\t(?<field1>\w+?):(?<field2>\w+?):(?<field3>\d+?)\t" 
    } 
}} 
0

Votre sortie du journal semble avoir des onglets intégrés dans, et les onglets bracket vos données. C'est bon, car cela signifie the csv filter peut tirer cela pour vous.

filter { 
    csv { 
    separator => "  " 
    columns => [ 'garbage1', 'good', 'garbage2', 'garbage3', 'garbage4' ] 
    source => "message" 
    } 
} 

Note, that is the actual tab character in there, qui est difficile à représenter ici.

Vous devez ensuite envoyer le contenu du champ good à votre fichier.