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

Случайный сервер в сервисе nagios

У меня есть кластер из N узлов, который содержит некоторую распределенную информацию. Запрос, который я хочу отслеживать с помощью nagios имеет смысл выполнять только на одном узле кластера (любом). Но я не хочу перегружать один конкретный узел, поэтому я хочу nagios выбирать каждый раз случайный узел из списка узлов.

Итак, я ожидал увидеть что-то вроде:

define service{
    service_description    Recent document time for the cluster
    hostgroup_name         random
    ...
}

где random hostgroup как-то определяет случайный узел из предопределенного списка узлов кластера.

Можно ли это сделать с помощью nagios3? Какие-либо предложения?

Не могли бы вы настроить DNS для выдачи вам случайного хоста с определенным именем?

Вы также можете написать индивидуальный сервисный чек.

Если вам ДЕЙСТВИТЕЛЬНО нужна эта функция в nagios ...взломать источник

Я не верю, что это возможно сделать изначально через nagios. Но это можно сделать с помощью специального сценария проверки, реализованного на выбранном вами языке. Просто пусть сценарий проверки выбирает случайный (или циклический и т. Д.) Узел при каждом запуске.

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

Вы упомянули, что существует N узлов, я не думаю, что все они находятся за каким-то VIP, который указывает только на один узел и перемещается в другой ящик по мере необходимости?

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

Еще одно решение для этого - запустить проверку на каждом сервере узла и компенсировать время с помощью планировщика задач / cron, а затем получить результаты проверки в центральном месте. Вы можете попросить Nagios проверить результаты в этом файле соответственно.

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

Это не самое чистое решение, но оно может помочь вам с этим справиться.

У меня есть оболочка check_nrpe, которая делает это. Я создаю хост-объект с целью «имя», установленным на что-то вроде «RANDOM-001» (также поддерживает «RNDRBN-001»). Когда оболочка check_nrpe видит это, она использует конечные цифры, чтобы выбрать из списка Perl имена хостов серверов для отправки проверки. Затем просто добавьте это как имя хоста в описание проверки службы. Более поздняя версия оболочки получает имена хостов из файла Nagios hostgroups.cfg.