2016-05-15 6 views
1

Wie man Übersetzungswörterbuch dynamisch in logstash basierend auf Feldwert tut? Zum Beispiel meine aktuelle Konfiguration ist:Wie man Übersetzungswörterbuch dynamisch in logstash basierend auf Feldwert tut?

if [host] == "1.1.1.1" { 
    translate { 
     field => "[netflow][input_snmp]" 
     destination => "[netflow][interface_in]" 
     dictionary_path => "/etc/logstash/yaml/1.1.1.1.yml" 
    } 
} 
if [host] == "2.2.2.2" { 
      translate { 
        field => "[netflow][input_snmp]" 
        destination => "[netflow][interface_in]" 
        dictionary_path => "/etc/logstash/yaml/2.2.2.2.yml" 
      } 
} 

Gibt es eine generische Art und Weise, dies zu erreichen? Logstash Version 2.2.4

Dank

Antwort

1

Ich denke, man es als verwenden können:

translate { 
    field => "[netflow][input_snmp]" 
    destination => "[netflow][interface_in]" 
    dictionary_path => "/etc/logstash/yaml/%{host}.yml" 
} 

Überprüfen Sie, ob: https://www.elastic.co/guide/en/logstash/current/event-dependent-configuration.html#sprintf

+1

Es scheint, dass ich es nicht so verwenden können: übersetzen { # Diese Einstellung muss ein Pfad sein # Datei existiert nicht oder kann nicht geöffnet werden /etc/logstash/yaml/%{host}.yml dictionary_path => "/etc/logstash/yaml/%{host}.yml" – eladelad

+0

Auch hier scheinen Feldplatzhalter nicht in dictionary_path zu arbeiten. @alpert Irgendwelche anderen Ideen? – sermolaev

+0

Haben Sie versucht, "/etc/logstash/yaml/%{[host]}.yml" @sermolaev zu verwenden – alpert

Verwandte Themen