Групи господарів та шаблони.
Шаблони дозволяють визначити класи для ваших хостів і служб, наприклад, "звичайний сервіс", "критична служба", "хост з низьким пріоритетом". Вони також служать корисним способом розподілу обов'язків, якщо у вас є декілька команд з різними обов'язками, тому ви можете мати шаблон "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.