Автоматизировать расписание и отменить время простоя в Nagios

Я пытаюсь запланировать и отменить время простоя в Nagios Core 4.x.

Я мог бы запланировать время простоя для хоста, используя следующий cmd:

curl --silent --show-error  --data cmd_typ=55 --data cmd_mod=2 --data host=automichost1  --data "com_data=Updating+application" --data trigger=0 --data "start_time=05-15-2016 19:00:00" --data "end_time=05-15-2016 19:15:00" --data fixed=1 --data btnSubmit=Commit --insecure http://localhost:80/nagios/cgi-bin/cmd.cgi -u "nagiosadmin:XXXXXX"

Этот cmd не возвращает сгенерированный идентификатор простоя и просто возвращает HTML-файл.

но чтобы отменить график простоя мне нужно использовать следующее

curl --silent --show-error  --data cmd_typ=78 --data cmd_mod=2 --data down_id=2  --data "com_data=Updating+application" --data btnSubmit=Commit --insecure http://localhost:80/nagios/cgi-bin/cmd.cgi -u "nagiosadmin:xxxxxxx"

Здесь мне нужно down_id, чтобы отменить время простоя. В сценарии автоматизации нет способа получить этот идентификатор простоя от любой внешней команды nagios. Я также попробовал следующую внешнюю команду, упомянутую на http://docs.icinga.org/latest/en/cgiparams.htmlCMD_DEL_DOWNTIME_BY_HOST_NAME 171.

но это не работает в Nagios и выдает сообщение "Извините, но вы не авторизованы для выполнения указанной команды".

Я застрял сейчас и не могу двигаться вперед. кто-нибудь знает, как этого добиться?

2 ответа

Решение

Поскольку я долго не получал ответ на свой запрос, я публикую, как я его решил.

Я задал тот же вопрос на форуме клиентов nagios и получил ответ. Генератор запросов JSON очень удобен для такого рода вещей (где xxxx - это ваша установка Core):

хххх / Nagios / jsonquery.html

Краткое введение в JSON Query Generator:

labs.nagios.com/2014/06/19/expl... -7-part-1 /

Если вы хотите проверить, запланировано ли на хосте yyyy время простоя, вы можете попробовать следующий запрос (где xxxx - это ваша установка Core):

http://x.x.x.x/nagios/cgi-bin/statusjson.cgi?query=downtimelist&formatoptions=whitespace&hostname=y.y.y.y&downtimeobjecttypes=host&downtimetimefield=starttime

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

Также, если вам нужен графический ответ, удалите json из скрипта, который вы запускаете:

http://x.x.x.x/nagios/cgi-bin/status.cgi?query=downtimelist&formatoptions=whitespace&hostname=y.y.y.y&downtimeobjecttypes=host&downtimetimefield=starttime

Я успешно удалил / отменил "идентификатор простоя" с 251 до 348 на моем сервере Centos с помощью этой команды:

for i in `seq 251 348`; do /bin/printf "[%lu] DEL_SVC_DOWNTIME;$i\n" `date +%s` > /var/spool/nagios/cmd/nagios.cmd; done
Другие вопросы по тегам