Настройте Sensu для отправки метрик в Influxdb

Я пытаюсь отправить метрики в infxdb в UDP с помощью sensu.

Я установил свою базу данных Infxdb:

# echo "cpu value=1" | nc -C -w 1 -u localhost 8089
# echo "select * from cpu" | influx -database sensu
name: cpu
time                value
1490898218118704438 1

Я установил плагин из репозитория (https://github.com/sensu-plugins/sensu-plugins-influgins/sensu-plugins-influxdb):

# sensu-install -p influxdb
# cp /opt/sensu/embedded/bin/mutator-influxdb-line-protocol.rb /etc/sensu/extensions/

Настроил обработчик по документации:

{
"handlers": {
  "influxdb": {
    "type": "udp",
    "socket": {
      "host": "localhost",
      "port": 8089
    },
    "mutator": "influxdb_line_protocol"
  }
  }

И настроил проверку для использования этого обработчика:

{
"checks": {
  "cpu-metrics": {
    "command": "/opt/sensu/embedded/bin/metrics-cpu-pcnt-usage.rb",
    "handlers": [
      "influxdb"
    ],
    "interval": 60,
    "subscribers": [
      "production"
    ],
    "type": "metric",
    "standalone": false
  }
}
}

Теперь, когда я перезапускаю свой sensu-server, я вижу загруженное расширение:

{"timestamp": "2017-03-30T19: 53: 05.083622 + 0000", "level": "warn", "message": "загруженное расширение", "type": "mutator", "name": "infxdb_line_protocol "," description ":" возвращает выходные данные проверки, отформатированные для линейного протокола InfluxDB "}

И я вижу метрики, собранные на стороне клиента:

{"timestamp": "2017-03-30T20: 08: 49.940732 + 0000", "level": "info", "message": "полученный запрос проверки", "check": {"command": "/ opt / sensu / embedded / bin / metrics-cpu-pcnt-usage.rb "," handlers ": [" Infxdb "]," type ":" metric "," standalone ": false," name ":" cpu-metrics " , "выдано": 1490904529}} {"отметка времени": "2017-03-30T20: 08: 51.150984 + 0000", "уровень": "информация", "сообщение": "результат проверки публикации", "полезная нагрузка": { "client": "nott", "check": {"command": "/ opt / sensu / embedded / bin / metrics-cpu-pcnt-usage.rb", "handlers": ["metrics"], "type ":" метрика "," автономный ": false," имя ":" показатели процессора "," выдано ": 1490904529," интервал ": 60," подписчики ": [" производство "]," выполнено ": 1490904529, «duration»: 1,21, «output»: «nott.cpu.user 0,25 1490904531 \ nnott.cpu.nice 0,00 1490904531 \ nnott.cpu.system 0,00 1490904531 \ nnott.cpu.idle 99,25 1490904531 \ nnott.cpu.iowait 0,00 1490904531 \ nnott.cpu.irq 0.00 1490904531 \ nnott.cpu.softirq 0.00 1490904531 \ nnott.cpu.steal 0.50 1490904531 \ nnott.cpu.guest 0.00 1490904531 \ n "," status ": 0}}}

Но у меня в базе Influxdb больше ничего нет.

influx -database sensu
Connected to http://localhost:8086 version 1.2.1
InfluxDB shell version: 1.2.1
> show measurements;
name: measurements
name
----
cpu

Есть идеи?

ОБНОВЛЕНИЕ: Как указано в комментарии, вот моя конфигурация UDP для Infxdb:

[[udp]]
  enabled = true
  bind-address = "127.0.0.1:8089"
  database = "sensu"
  retention-policy = ""
  batch-size = 5000
  batch-pending = 10
  batch-timeout = "1s"
  read-buffer = 0

ОБНОВЛЕНИЕ 2: если я добавлю обработчик отладки, я увижу результат проверки метрики в журналах сервера:

{"timestamp": "2017-04-15T13: 05: 46.047354 + 0000", "level": "info", "message": "вывод расширения обработчика", "extension": {"type": "extension", "name": "debug"}, "event": {"id": "1303c9d3-096c-4744-9fdc-9566c831270c"}, "output": "{\" client \ ": {\" name \ ": \ "нотт \", \ "адрес \": \ "127.0.0.1 \", \ "среда \": \ "производство \", \ "подписки \": [\ "сертификаты \", \ "производственные \" , \ "client: nott \"], \ "socket \": {\ "bind \": \ "127.0.0.1 \", \ "port \": 3030}, \ "version \": \ "0.28. 2 \ ", \" timestamp \ ": 1492261543}, \" check \ ": {\" command \ ": \" / opt / sensu / embedded / bin / metrics-cpu-pcnt-usage.rb \ ", \ "обработчики \": [\ "метрики \"], \ "интервал \": 60, \ "подписчики \": [\ "производство \"], \ "тип \": \ "метрика \", \ "автономные \ ": true, \" name \ ": \" cpu-metrics \ ", \" выдано \ ": 1492261544, \" выполнено \ ": 1492261544, \" duration \ ": 1.205, \" output \ ": \ "nott.cpu.user 0,75 1492261546 \ nnott.cpu.nice 0,00 1492261546 \ nnott.cpu.system 0,00 1492261546 \ nnott.cpu.idle 99,00 1492261546 \ nnott.cpu.iowait 0,00 1492261546 \ nott.cpu.iowait 0,00 1492261546 \ n .cpu.softirq 0,00 1492261546 \ nnott.cpu.steal 0,25 1 492261546 \ nnott.cpu.guest 0.00 1492261546 \ n \ ", \" статус \ ": 0, \" история \ ": [\" 0 \ ", \" 0 \ ", \" 0 \ ", \" 0 \ ", \" 0 \ ", \" 0 \ ", \" 0 \ ", \" 0 \ ", \" 0 \ ", \" 0 \ ", \" 0 \ ", \" 0 \ " , \ "0 \", \ "0 \", \ "0 \", \ "0 \", \ "0 \", \ "0 \", \ "0 \", \ "0 \", \ "0 \"], \ "total_state_change \": 0}, \ "instances \": 1, \ "instances_watermark \": 1, \ "action \": \ "create \", \ "timestamp \": 1492261546 , \ "id \": \ "1303c9d3-096c-4744-9fdc-9566c831270c \", \ "last_ok \": 1492261546, \ "silentd \": false, \ "silentd_by \": []} "," status ": 0}

Но ничего не вижу обменов на порр 8089 по шлейфу.


person Plup    schedule 30.03.2017    source источник
comment
Вы включили и настроили раздел UDP в файле конфигурации InfluxDB?   -  person user3356885    schedule 03.04.2017
comment
Я обновил конфигурацию, но когда я делаю это echo "cpu value=1" | nc -C -w 1 -u localhost 8089, я фактически вставляю данные в UDP в базу данных на правом порту. Так что Influxdb работает.   -  person Plup    schedule 15.04.2017


Ответы (1)


У меня такая же проблема. Решилось после добавления строки precision = "s" в блок UDP в influxdb.conf файле.

person teknoboy    schedule 28.02.2019