2014-09-19 15 views
5

Voglio avere un output per Influx DB da Logstash, c'è qualche plugin disponibile?Logstash - è disponibile un output in influx DB?

L'uscita è impostata alla grafite .. Questa è la configurazione di afflusso:

[input_plugins] 

# Configure the graphite api 
[input_plugins.graphite] 
enabled = true 
port = 2003 
database = "AirAnalytics" # store graphite data in this database 
# udp_enabled = true # enable udp interface on the same port as the tcp interface 

Questa è la configurazione logstash:

output { 
    stdout {} 
    graphite { 
      host => "localhost" 
      port => 2003 
    } 
} 

vedo l'output nella console (stdout), ma non altro messaggio e nulla viene messo in afflusso. Ho controllato anche i registri di afflusso, niente.

Ho provato a inviare lo stesso messaggio direttamente tramite http a influx e funziona, quindi non c'è alcun problema con il messaggio o l'installazione in entrata.

risposta

6

risolto. Avevo bisogno di passare la stringa compatibile influx già preparata a affluire tramite logstash.

seguito è il frammento di configurazione logstash che ha fatto il trucco:

output { 
    http { 
      url => "http://localhost:8086/db/<influx db name>/series?u=<user name>&p=<pwd>" 
      format => "message" 
      content_type => "application/json" 
      http_method => "post" 
      message => "%{message}" 
      verify_ssl => false 
    } 
    stdout {} 
} 

Nota: Se si utilizza il formato "json" poi logstash avvolge il corpo intorno a un campo "messaggio", che stava causando un problema.

+0

questo è inefficiente; fa un messaggio per influxdb PER, invece di raggrupparli dove possibile. –

+0

Abbiamo una stringa pronta poiché la nostra applicazione produce GB di tali dati, quindi l'app raccoglie i dati per 5 secondi, quindi combina le righe della stessa tabella che ottimizza le dimensioni del pacchetto e aumenta il throughput di scrittura dell'afflusso. La stringa risultante è anche compressa (gzip, veloce) che viene decompressa tramite logstash da un filtro personalizzato che abbiamo. –

0

Forse questo aiuto:

http://influxdb.com/docs/v0.8/api/reading_and_writing_data.html

un'occhiata alla sezione: La scrittura di dati tramite protocollo Grafite forse è possibile utilizzare l'uscita di grafite di logstash.

Penso che ci proverò questo fine settimana.

+0

Suoni promettenti, buona idea, farò un tentativo e posterò i miei risultati –

+0

Ho iniziato a creare un semplice output di logstash per InfluxDB. È quasi finito Voglio eseguire altri test prima di pubblicarlo su Github. Questa settimana sarà finito e pubblicato. –

+0

Dai un'occhiata al codice su GitHub. [PeterPaulH/logstash-influxdb] (https://github.com/PeterPaulH/logstash-influxdb) –

1

C'è un influxdb output in logstash-contrib, tuttavia, questo è stato aggiunto dopo che 1.4.2 è stato rilasciato.

Con logstash 1.5, è disponibile un nuovo sistema di gestione dei plug-in. Se stai usando 1.5, è possibile installare l'output influxdb con:

# assuming you're in the logstash directory 
$ ./bin/plugin install logstash-output-influxdb 
+0

La versione corrente (22 JUN 2015) del plug-in InfluxDB Output non è compatibile con InfluxDB 0.90. –

0

La risposta accettata, mentre si lavora, non è molto flessibile, perché:

  • Si richiede il carico utile JSON che deve essere effettivamente in %{message} o qualunque variabile di logstash si finisce usando
  • non invia i punti dati in batch dove possibile (ovviamente, a meno che non lo si abbia nel payload JSON ... che ... in tal caso ... perché stai usando il logstash in primo luogo?)

Come notato da Paul e Wilfred, lo è il supporto per influxdb scritto dallo stesso Jordan Sissel, ma è stato rilasciato dopo 1.4.2 ... la cosa buona è che funziona con 1.4.2 (ho provato io stesso) ... tutto quello che devi fare è copiare il file influxdb.rb su /lib/logstash/outputs e configurare di conseguenza il tuo logstash. Per quanto riguarda la documentazione, puoi trovarla here ...mi ci è voluto un po 'più di fatica per trovarlo, perché googling "influxdb logstash" non ha questo link sui risultati della prima pagina.

+0

Hai ragione, non è flessibile, logstash viene utilizzato per altri motivi oltre all'estrazione di dati dal formato raw, avevamo una stringa pronta poiché la nostra applicazione produce GB di tali dati, l'app quindi raccoglie fondamentalmente i dati per 5 secondi quindi combina le righe del stessa tabella che ottimizza le dimensioni del pacchetto e aumenta il throughput di scrittura dell'afflusso. La stringa risultante è anche compressa (gzip, veloce) che viene decompressa tramite logstash da un filtro personalizzato che abbiamo. –