#sockets #amazon-web-services #influxdb #grafana #statsd
#сокеты #amazon-веб-сервисы #influxdb #графана #statsd
Вопрос:
У меня запущен экземпляр Amazon EC2, и я пытаюсь настроить StatsD InfluxDB Grafana. InfluxDB и Grafana работают хорошо (и Grafana видит данные из InfluxDB), но мне не удается получить какие-либо данные из StatsD в InfluxDB.
У меня зарегистрирован домен, который указывает на мой экземпляр EC2 с эластичным IP.
Что я вижу, так это то, что: — Я могу отлично взаимодействовать с базой данных InfluxDB (включая вставку значений), когда я не использую StatsD — StatsD, похоже, получает данные, которые я случайным образом генерирую из Python (я вижу это в его журналах). Он отправляется через порт 8125 в StatsD. — Пакеты UTC, отправленные из StatsD в InfluxDB через порт 8086, похоже, не попадают в InfluxDB (или не отправляются ….?) — Порт 8086 открыт в моих настройках безопасности AWS как для TCP, так и для UDP — Порт 8125 открыт на моемНастройки безопасности AWS для 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
Мой файл конфигурации 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 -> Порт 8125 -> StatsD -> Порт 8086 -> InfluxDB
Есть ли необходимость использовать что-то вроде Telegraf или statsd-influxdb-backend для подключения StatsD и InfluxDB?
Я был бы очень признателен за любую помощь, потому что я пытался настроить его в течение нескольких часов, и я не вижу, что может быть не так.
Спасибо!
Ответ №1:
Часть стека, в которой я не уверен, — это ваш сервер StatsD. Вероятно, возникла проблема с отправкой данных в InfluxDB. Если вместо этого вы используете Telegraf, он должен «просто работать». Telegraf может выступать в качестве сервера StatsD (среди многих других вещей) и отправлять данные в InfluxDB либо по UDP, либо по обычному протоколу HTTP.
Комментарии:
1. Если я вас хорошо понимаю, вы предлагаете использовать Telegraf для связи StatsD с InfluxDB, я прав? Насколько я понимаю, новая схема будет выглядеть следующим образом: Python -> Порт 8125 -> StatsD -> Telegraf -> InfluxDB
2. Я думаю, он предлагает использовать плагин statsd , который поставляется с Telegraf, вместо statsd.