Групи господарів та шаблони.
Шаблони дозволяють визначити класи для ваших хостів і служб, наприклад, "звичайний сервіс", "критична служба", "хост з низьким пріоритетом". Вони також служать корисним способом розподілу обов'язків, якщо у вас є декілька команд з різними обов'язками, тому ви можете мати шаблон "Linux Linux" та шаблон "host host", кожен з яких визначає відповідну контактну інформацію.
Ви можете використовувати декілька шаблонів на одному ресурсі, так що ви можете скласти відповідні ортогональні шаблони. Наприклад, можна мати
host foo {
use windows-host,normal-priority-host
...
}
що дозволить отримати контактну інформацію (та ескалацію) для команди Windows, а також показники та пороги опитування для "нормального" хоста.
Хост-групи дозволяють згрупувати всі чеки для підмножини хостів. sshНа кожному хості, який ви спостерігаєте, повинні бути такі речі, як "baseline-linux-hosts", які перевіряють навантаження, дисковий простір, здатність та будь-які інші речі. Додайте такі групи, як "https-сервери", з чеками на підключення HTTP, підключення HTTPS та дати закінчення терміну дії сертифіката SSL; "сервери файлів" з перевіркою доступності NFS та SMB і, можливо, більш агресивними дисками; або "віртуальні машини" з перевіркою на правильність роботи інструментів доступності VM.
Помістіть кожен хост і групу хостів у свій власний файл. Цей файл повинен містити спочатку визначення хосту або групи хостів, а потім визначення служб, що застосовуються до нього.
Якщо ви використовуєте cfg_dirдирективу у своєму nagios.cfgфайлі, Nagios здійснюватиме рекурсивний пошук через цей каталог. Скористайтеся цим. Для налаштування cfg_dir=/etc/nagios/conf.d, ви можете мати дерево каталогів на зразок наступного:
- /etc/nagios/conf.d/
- commandds.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, тому є одна директорія для керованих маріонетками хостів і окрема для хостів, що керуються рукою.
Зауважте, що вищезазначене також розбиває команди на кілька файлів, як правило, за протоколом. Таким чином, 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.