2017-03-16 5 views
0

Ich habe diese Konfigurationsdatei in logstashnur Strings in influxdb

input { 
 

 
\t \t 
 
    \t redis{ 
 
\t \t host => "localhost" 
 
\t \t data_type => "list" 
 
\t \t key => "vortex" 
 
\t \t threads => 4 
 
\t \t type => "testrecord" 
 
\t \t codec => "plain" 
 

 
\t } 
 
\t } 
 

 
filter { 
 
      kv { 
 
       add_field => { 
 
       "test1" => "yellow" 
 
       "test" => "ife" 
 
       "feild" => "pink" 
 
       } 
 
      } 
 
} 
 

 
output { 
 

 
\t stdout { codec => rubydebug } 
 

 
      influxdb { 
 
\t \t  db => "toast" 
 
      host => "localhost" 
 
      measurement => "myseries" 
 
      allow_time_override => true 
 
      use_event_fields_for_data_points => true 
 
      exclude_fields => ["@version", "@timestamp", "sequence", "message", "type", "host"] 
 
\t \t \t send_as_tags => ["bar", "feild", "test1", "test"] 
 
       
 
\t \t } 
 
     } 
 
\t \t \t 
 
\t \t \t 
 
\t \t

und eine Liste in redis mit den folgenden Daten:

foo = 10.207 bar = 1 sensor2 = 1 Sensor3 = 33,3 Zeit = 1489686662

alles funktioniert gut, aber jedes Feld in Zustrom wird als Zeichenfolge unabhängig von Werten definiert.

weiß jemand, wie man dieses Problem umgehen kann?

Antwort

1

The mutate filter vielleicht, was Sie hier suchen.

filter { 
    mutate { 
    convert => { 
     "value" => "integer" 
     "average" => "float" 
    } 
    } 
} 

Es bedeutet, dass Sie wissen müssen, was Ihre Felder sind, aber es wird sie in den richtigen Datentyp konvertieren.

+0

Vielen Dank, das hat mein Problem gelöst. Ich benutze Filer {kv {} ...} für die Analyse zuerst und danach der Mutator ... funktioniert super! Danke vielmals! –