Как сделать так, чтобы проверка Sensu Go отображалась на панели состояния в Grafana?

Как описано в документации Sensu, я написал собственный сценарий проверки, который возвращает 0 для OK, 1 для предупреждения, 2 для критического состояния и распечатывает описание состояния. Он отображается, как и ожидалось, во встроенном веб-интерфейсе Sensu, но я не знаю, как сделать так, чтобы он отображался в Grafana. У меня есть несколько готовых метрик, которые работают через InfluxDB, но это всего лишь проверка статуса, а не метрика.

Я понимаю, что мне нужен какой-то обработчик на стороне Sensu и/или какой-то источник данных на стороне Grafana, который общается с API Sensu, но тот, что для Sensu Core (1.x), похоже, не работает с более новый Sensu Go (5.x). Я тоже:

  1. Переписать проверку для вывода graphite_plaintext и использовать обработчик influxdb?
  2. Написать собственный источник данных Grafana и/или обработчик Sensu?
  3. Вернуться к Sensu Core?

Похоже, что Sensu Go был переориентирован на метрики, поэтому из документации неясно, как работать с простыми проверками.


person user13803    schedule 14.02.2019    source источник


Ответы (1)


Вероятно, это ужасно неэффективно, но пока я просто выбрал вариант 1, чтобы переписать проверку для использования обработчика influxdb.

Все, что мне нужно было сделать для этого, это распечатать мой вывод в форме:

metric_path value timestamp\n

Где metric_path — это что-то вроде computer_name.topic.status, value — это просто целочисленный статус, а затем timestamp — это текущее время unix в виде целого числа. Этот последний бит занял неприлично много времени, чтобы выяснить ... ничего не появлялось в базе данных InfluxDB (и, следовательно, в Grafana), потому что sensu-influxdb-handler ошибки выдаются, если временная метка не является целым числом.

Затем, на стороне Grafana, я установил плагин Status Panel, разработанный Vonage, здесь:

https://grafana.com/plugins/vonage-status-panel

Как только данные наконец появились в InfluxDB, я смог выбрать их из Grafana. Я установил пороги для предупреждения и критичности на 1 и 2 соответственно, и теперь все работает так, как я хотел. Тем не менее, если у кого-то есть более эффективный способ справиться с этим, я хотел бы знать об этом, потому что мне нужно отслеживать состояние большого количества вещей, и я хочу сделать это правильно.

person user13803    schedule 19.02.2019