Группы хостов и шаблоны.
Шаблоны позволяют вам определять классы для ваших хостов и сервисов, например, «обычный сервис», «критический сервис», «хост с низким приоритетом». Они также служат полезным способом разделения обязанностей, если у вас есть несколько команд с разными обязанностями, поэтому вы можете иметь шаблон "хост Linux" и шаблон "хост Windows", каждый из которых определяет соответствующую контактную информацию.
Вы можете использовать несколько шаблонов на одном ресурсе, чтобы вы могли составлять соответственно ортогональные шаблоны. Например, вы можете иметь
host foo {
use windows-host,normal-priority-host
...
}
который будет получать контактную информацию (и сведения об эскалации) для команды Windows, а также частоту и пороги опроса для «нормального» хоста.
Группы хостов позволяют группировать все проверки для подмножества ваших хостов. Есть такие вещи, как «baseline-linux-hosts», которые проверяют нагрузку, дисковое пространство, ssh
возможности и все, что должно быть на каждом хосте, который вы отслеживаете. Добавьте группы, такие как «https-серверы», с проверками HTTP-соединения, HTTPS-соединения и дат истечения срока действия SSL-сертификата; «файловые серверы» с проверками доступности NFS и SMB и, возможно, более агрессивными проверками дисков; или «виртуальные машины» с проверками правильности работы инструментов доступности виртуальных машин.
Поместите каждый хост и группу хостов в отдельный файл. Этот файл должен сначала содержать определение хоста или группы хостов, а затем определения сервисов, которые к нему относятся.
Если вы используете cfg_dir
директиву в своем nagios.cfg
файле, Nagios будет выполнять рекурсивный поиск по этому каталогу. Используйте это. Для настройки у cfg_dir=/etc/nagios/conf.d
вас может быть дерево каталогов, подобное следующему:
- /etc/nagios/conf.d/
- commands.d /
- http.cfg
- nrpe.cfg
- smtp.cfg
- ssh.cfg
- hosts.d /
- host1.cfg
- host2.cfg
- host3.cfg
- hostgroups.d /
- hostgroup1.cfg
- hostgroup2.cfg
Я склонен создавать каталог для каждого типа ресурса (команды, группы контактов, контакты, эскалации, группы хостов, хосты, группы сервисов, периоды времени), за исключением сервисов, которые группируются с хостами или группами хостов, которые их используют.
Точная структура может варьироваться в зависимости от ваших организационных потребностей. На прошлой работе я использовал подкаталоги hosts.d
для каждого отдельного сайта. В моей нынешней работе большинство определений хостов Nagios управляются Puppet, поэтому есть один каталог для хостов, управляемых Puppet, и отдельный каталог для хостов, управляемых вручную.
Обратите внимание, что вышеизложенное также разбивает команды на несколько файлов, как правило, по протоколу. Таким образом, nrpe.cfg
файл будет иметь команды check_nrpe
и check_nrpe_1arg
, в то время как http.cfg
могли бы check_http
, check_http_port
, check_https
, check_https_port
, и check_https_cert
. 1
У меня обычно нет огромного количества шаблонов, поэтому у меня обычно есть hosts.d/templates.cfg
файл и services.d/templates.cfg
файл. Если вы используете их более интенсивно, они могут перейти в соответствующие файлы в templates.d
каталоге.
1 Мне также нравится иметь check_http_blindly
команду, которая в основном check_http -H $HOSTADDRESS$ -I $HOSTADDRESS$ -e HTTP/1.
; он возвращает ОК, даже если он получает код ответа 403.