Назад | Перейти на главную страницу

настраиваемый плагин nagios, который может генерировать несколько предупреждений

Я пытаюсь создать плагин (на python) для nagios, который будет извлекать файл json с удаленного сервера, а затем в соответствии с содержимым этого файла генерировать предупреждения.

Конкретный файл на самом деле представляет собой оповещения, генерируемые отдельной системой мониторинга, поэтому моя цель - генерировать уведомления nagios путем опроса оповещений из другой системы.

Предполагая, что файл json может содержать, скажем, три предупреждения, я бы хотел, чтобы мой скрипт генерировал три разных записи предупреждений.

Пока у меня есть цикл в моем скрипте, который проверяет, есть ли в скрипте хотя бы одно предупреждение, и если да, он напечатает имя предупреждения и выйдет с кодом состояния два (2), чтобы он мог указать КРИТИЧЕСКОЕ для nagios.

data = urllib2.urlopen("http://127.0.0.1:880").read()
alerts = json.loads(data)

if len(alerts["data"]) == 0:
    exit(0)
else:
    print "Alerts: "
    for alert in alerts["data"]:
        print "    " + alert["labels"]["alertname"]
    exit(2)

Можно ли с помощью одного скрипта создать несколько предупреждений для nagios?

Я имею в виду, если у вас может быть только один код выхода, как вы могли бы генерировать несколько разных предупреждений?

Проверка службы Nagios будет генерировать только одно предупреждение. Как вы знаете, вы можете контролировать это с помощью кода выхода в дополнение к печатному текстовому сообщению.

Если вы хотите использовать один сценарий для создания нескольких разных предупреждений, вы можете изменить свой сценарий, чтобы он принимал дополнительный параметр, чтобы указать имя / идентификатор предупреждения или любое другое поле, которое вы можете использовать для соответствия вашему предупреждению. Затем вы можете определить несколько служб для использования одного и того же скрипта / команды проверки, но с разными параметрами.

Вы не можете сгенерировать несколько предупреждений / уведомлений с помощью одной активной проверки службы.

Но: вы можете подделать это с помощью пассивной проверки, установленной на изменчивую. Таким образом, каждый отправленный вами результат проверки, не соответствующий требованиям, будет генерировать предупреждение.

Затем вы должны использовать эквивалент NSCA / NRDP /, чтобы ваш скрипт отправлял пассивные результаты по одному.