Переопределение сервиса группы узлов Nagios с сервисом хоста

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

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

Так, например, я хотел бы иметь хост в linux-server группа узлов, которая наследовала несколько сервисов (SSH, Диск, 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 регистрируется I, видьте:

16 июля 19:12:27 localhost nagios: Предупреждение: Дублирующееся определение нашло для сервиса 'PING' на хост 'сервер 01'

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

  • Мое понимание, однако, то, что изменение было внесено вокруг версии 3.2.0 позволить сервисам уровня хоста иметь приоритет по сервисам уровня группы узлов. Я в настоящее время работаю 3.4.1, таким образом, я думал бы, что это должно работать.

  • Некоторые ссылки, которые приводят меня верить этой функции, должны уже быть реализованы:

  • Кроме того, я проверил свою копию xdata/xodtemplate.c файл от 3.4.1 исходных кодов, и сразу действительно кажется, что в "пропуске перечисляют", что проверки уровня хоста предназначены для имения приоритет по проверкам группы узлов. Хотя по общему признанию, мой анализ примитивен.

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

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

В сервисе определение добавляют строку под "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%
}
5
задан 16 July 2014 в 13:22
2 ответа

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

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

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

.

3
ответ дан 3 December 2019 в 01:24

Я знаю, что это старый пост, но я наткнулся на этот вопрос, когда искал что-то еще. Я не особо разбираюсь в 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% для всех хостов в группе хостов, за исключением хоста, для которого вы добавили проверку, со значениями изменений в нем.

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

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

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

4
ответ дан 3 December 2019 в 01:24

Теги

Похожие вопросы