2016-10-11 3 views
0

Ich habe eine Amazon EC2-Instanz ausgeführt und ich versuche, StatsD + InfluxDB + Grafana einzurichten. InfluxDB und Grafana funktionieren gut (und Grafana sieht die Daten von InfluxDB), aber ich kann keine Daten von StatsD zu InfluxDB bekommen.InfluxDB bekomme keine Pakete von StatsD

Ich habe eine Domain registriert, die auf meine EC2-Instanz mit einer Elastic IP verwiesen wird.

Was kann ich sehen, ist, dass: - ich kann mit der InfluxDB Datenbank (einschließlich Einfügen von Werten) interagieren, wenn ich StatsD nicht - StatsD die Daten zu sein scheint immer ich zufällig aus Python erzeugen (ich kann sehen Sie es in seinen Protokollen). Es wird über den Port 8125 an StatsD gesendet. - UTC-Pakete, die von StatsD über Port 8086 an InfluxDB gesendet werden, scheinen nicht zu InfluxDB zu gelangen (oder senden nicht ....?) - Port 8086 ist in meinen AWS-Sicherheitseinstellungen für TCP und UDP geöffnet - Port 8125 ist öffnen Sie auf meine AWS Sicherheitseinstellungen für UDP

ich frage mich, ob einige meiner Einstellungen falsch sind, aber ich weiß nicht, was anderes zu versuchen:

InfluxDB Konfigurationsdatei enthält:

# hostname = "localhost" 
    hostname = MYDOMAIN.com 
    [[udp]] 
    enabled = true 
    bind-address = ":8086" 
    database = "MY_DATABASE" 
    retention-policy = "" 
    batch-size = 1000 # will flush if this many points get buffered 
    batch-pending = 10 # number of batches that may be pending in memory 
    batch-timeout = "1s" # will flush at least this often even if we haven't hit buffer limit 
    read-buffer = 0 # UDP Read buffer size, 0 means OS default. UDP listener will fail if set above OS max. 
    udp-payload-size = 65536 

Meine StatsD-Konfigurationsdatei enthält (unter anderem) die folgenden Zeilen

{ 
    influxdb: { 
/* 
    host: '127.0.0.1', // InfluxDB host (default 127.0.0.1) 
*/ 
    host: 'MYDOMAIN.com', // InfluxDB host (default 127.0.0.1) 
    port: 8086, // InfluxDB port (default 8086) 
    database: 'MY_DATABASE', // InfluxDB db instance (required) 
    username: 'MY_USERNAME', // InfluxDB db username (required) 
    password: 'MY_PASSWORD', // InfluxDB db password (required) 
    flush: { 
     enable: true // enable regular flush strategy (default true) 
    }, 
    proxy: { 
     enable: false, // enable the proxy strategy (default false) 
     suffix: 'raw', // metric name suffix (default 'raw') 
     flushInterval: 1000 
    } 
    }, 
    port: 8125, // statsD port 
    backends: ['./backends/console'], 
    debug: true, 
    legacyNamespace: false 
} 

Soweit ich verstehen, der Prozess ist: Python -> Port 8125 -> StatsD -> Port 8086 -> InfluxDB

Gibt es eine Notwendigkeit, wie etwas zu verwenden, Telegraf oder statsd-influxdb-backend um StatsD und InfluxDB zu verbinden?

Ich würde wirklich jede Hilfe schätzen, weil ich versucht habe, es für Stunden einzurichten und ich sehe nicht, was falsch sein könnte.

Danke!

Antwort

1

Der Teil des Stapels, über den ich mir nicht sicher bin, ist Ihr StatsD-Server. Es ist wahrscheinlich ein Problem beim Senden der Daten in InfluxDB. Wenn Sie stattdessen Telegraf verwenden, sollte es "einfach funktionieren". Telegraf kann (neben vielen anderen Dingen) als StatsD-Server fungieren und Daten über entweder UDP oder das reguläre HTTP-Protokoll an InfluxDB senden.

+0

Wenn ich Sie gut verstehe, schlagen Sie vor, mit Telegraf StatsD mit InfluxDB zu kommunizieren, habe ich recht? Wie ich verstehe, würde das neue Schema aussehen: Python -> Port 8125 -> StatsD -> Telegraf -> InfluxDB – user2348684

+0

Ich denke, er schlägt vor, mit dem [statsd plugin] (https://github.com/influxdata/telegraf/tree/master/plugins/inputs/statsd) das kommt mit Telegraf statt statsd. –