Я создал систему, которая выполняет различные типы анализа временных рядов, и теперь я хотел бы передать ей данные из инструмента мониторинга. Поскольку у меня уже установлен Nagios в моей тестовой среде, я предпочитаю получать его оттуда. Но в качестве второго варианта я мог бы получить доступ к тестовой версии Zenoss, а также был бы признателен за ответы для Zenoss.
Что я хочу
Мне нужны временные ряды для нескольких KPI на нескольких устройствах.
В идеале я мог бы указать формат данных, но если он содержит нужную мне информацию, я буду рад преобразовать ее по получении. Информация, которая мне нужна, просто
Наконец, я хотел бы отправить данные по HTTP (сейчас, позже по HTTPS).
Я уже могу сделать это в случае предупреждения - например, когда порог нарушен, я знаю, как настроить Nagios для вызова моего простого скрипта с IP-адресом устройства и т. Д. В качестве параметров - и мой скрипт выполняет HTTP-запрос. Но я не видел, как это можно настроить, чтобы поджечь каждый голосование.
Что я не хочу
Мне не нужны данные предупреждений, мне нужны необработанные временные ряды.
Я не хочу опрашивать Nagios, чтобы получить эти данные - интервалы опроса могут быть разными, и я хотел бы избежать ненужного сетевого трафика.
Я проверил этот вопрос но это, похоже, отправляло данные с подчиненных узлов Nagios на главный Nagios узел.
В nagios.cfg
мы добавили
obsess_over_services=1
ocsp_command=OUR_COMMAND_NAME
Затем мы определили новую команду в commands.cfg
:
command_name OUR_COMMAND_NAME
command_line /path/to/our/script
Скрипт получает следующие параметры:
Что касается моего вопроса: устройство, которое я хотел, - это имя хоста, а компонент и KPI могут быть извлечены из описания службы и сообщения плагина.
Однако мне нужно проделать небольшую работу по синтаксическому анализу, чтобы получить эти значения, поскольку сообщение плагина написано больше для людей, чем для машин, например.
OK - 1.05 GB used (1.05 GB RAM + 0.00 GB SWAP, this is 32.4% of 3.24 GB RAM)
но, по крайней мере, формат согласован, поэтому я не жалуюсь.
Вы можете сделать это с помощью частей, предназначенных для распределенного мониторинга.
Например, используйте команда ocsp отправить все результаты проверки в другое место. Команда def может указывать на скрипт, который отправляет perfdata через curl или подобное.