2016-10-11 12 views
0

У меня есть экземпляр Amazon EC2, и я пытаюсь настроить StatD + InfluxDB + Grafana. InfluxDB и Grafana работают хорошо (и Grafana видит данные из InfluxDB), но я не могу получить данные от StatD до InfluxDB.InfluxDB не получает пакеты от StatsD

У меня зарегистрирован домен, на который указывает мой экземпляр EC2 с Elastic IP.

Что я могу видеть, что: - я могу отлично взаимодействовать с базой данных InfluxDB (включая вставки значения), когда я не использую StatsD - StatsD, кажется, получает данные, которые я случайно генерировать из Python (я могу см. его в своих журналах). Он отправляется через порт 8125 в StatD. - UTC-пакеты, отправленные из StatD в InfluxDB через порт 8086, похоже, не попадают в InfluxDB (или не отправляют ....?) - Порт 8086 открыт на моих настройках безопасности AWS для TCP и UDP - Порт 8125 является открыть мои настройки безопасности АМС для UDP

Я задаюсь вопросом, являются ли некоторые мои настройки неверны, но я не знаю, что еще попробовать:

файл конфигурации InfluxDB содержит:

# 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 

Конфигурационный файл My StatsD содержит (помимо прочего) следующие строки :

{ 
    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 
} 

Насколько я понимаю, этот процесс: Python -> Port 8125 -> StatsD -> Port 8086 -> InfluxDB

Есть ли необходимость использовать что-то вроде Telegraf или statsd-infuxdb-backend для подключения StatsD и InfluxDB?

Я бы по достоинству оценил любую помощь, потому что я пытался настроить ее на несколько часов, и я не вижу, что может быть неправильным.

Спасибо!

ответ

1

Часть стека, на которой я не уверен, является вашим сервером StatsD. Вероятно, проблема связана с отправкой данных в InfluxDB. Если вы используете Telegraf вместо этого, он должен «просто работать». Telegraf может выступать в качестве сервера статистики (среди многих других) и отправлять данные в InfluxDB через UDP или обычный HTTP-протокол.

+0

Если я вас хорошо понимаю, вы предлагаете использовать Telegraf для передачи статистики с InfluxDB, правильно? Как я понимаю, новая схема будет выглядеть так: Python -> Port 8125 -> StatsD -> Telegraf -> InfluxDB – user2348684

+0

Я думаю, что он предлагает использовать плагин [statsd] (https://github.com)/infuxdata/telegraf/tree/master/plugins/entries/statsd), который поставляется вместе с Telegraf вместо statsd. –