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

Переопределение службы группы хостов Nagios службой хоста

В настоящее время я экспериментирую с определением набора служб для всех хостов в группе хостов, это работает нормально.

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

Так, например, я хотел бы иметь хост в linux-server группа хостов, которая наследует несколько сервисов (SSH, Disk, PING и т. д.), но для определенных сервисов я хочу переопределить их собственными уникальными значениями, определить сервис, специфичный для этого хоста, с пользовательскими значениями.

Например. Определите хост в linux-server с обычай PING определение услуги:

define host {
    use             n1-host
    host_name       server-01
    hostgroups      linux-server
    alias           Test Linux Server
    parents         my-gateway,upstream-gateway
    address         server01.test.com
}

define service {
    use                     generic-service
    host_name               server-01
    service_description     PING
    check_command           check_ping!100.0,5%!400.0,15%
}

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

Кажется, идет регистрация на каком-то уровне как и в моих журналах Nagios, я вижу:

16 июля, 19:12:27 localhost nagios: Предупреждение: обнаружено повторяющееся определение для службы «PING» на хосте «server-01»

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

В определении службы добавьте строку под "hostgroup_name": "host_name! Zlinux_hostname"

Это исключит хост zlinux из проверки службы.

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

Если у кого-то есть какие-либо советы по поводу того, как заставить это работать, я был бы очень признателен!

Дополнительные биты

В настоящее время я определяю свою службу PING на уровне группы следующим образом:

define hostgroup {
   hostgroup_name          linux-server
   name                    Linux Servers
}

define service {
    use                     generic-service
    hostgroup_name          linux-server
    service_description     PING
    check_command           check_ping!100.0,2%!400.0,10%
}

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

Любая проверка, которую вы помещаете в группу хостов, будет применяться к любому хосту в этой группе хостов (о которой вы уже знали). Если вы создадите такую ​​же проверку в хосте cfg, тогда он переопределит проверку группы хостов.

Во всяком случае, я делаю это так:

1. Создайте cfg-файл группы хостов с проверками в нем. Вот моя основная проверка места на диске C :.

define service{
    use         generic-service
    hostgroup_name      windows-servers
    service_description C: Drive Space
    notification_period     workhours
    check_command       check_nt!USEDDISKSPACE!-l c -w 80 -c 90
    }

2. Однако один сервер работает с гораздо меньшим объемом свободного места, чем обычно. Итак, в host cfg у меня есть:

define service{
    use         generic-service
    host_name       ServerName
    service_description C: Drive Space
    check_command       check_nt!USEDDISKSPACE!-l c -w 95 -c 99
    notification_period     workhours
    }

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

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

Я не уверен, общепринято это или нет, но Эта статья поразил меня, когда дело дошло до настройки файлов конфигурации. Я уже устал редактировать эти огромные текстовые файлы, и это упростило задачу.

В любом случае, я надеюсь, что это поможет.

Вы можете использовать «Макросы пользовательских переменных» (http://nagios.sourceforge.net/docs/3_0/macros.html)

В определении службы ping используйте, например:

check_command  check_ping!200.0,20%!$_HOSTVAR_SERVICE_PING_CRITICAL_RTA$,40%

В вашем шаблоне хоста установите значение по умолчанию:

_VAR_SERVICE_PING_CRITICAL_RTA  500

В определении хоста, который должен использовать набор значений разницы, например

_VAR_SERVICE_PING_CRITICAL_RTA  1500

явно.