Я пытаюсь отправить метрики в 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 по шлейфу.
echo "cpu value=1" | nc -C -w 1 -u localhost 8089
, я фактически вставляю данные в UDP в базу данных на правом порту. Так что Influxdb работает. - person Plup   schedule 15.04.2017