Grupy hostów i szablony.
Szablony pozwalają definiować klasy dla hostów i usług, np. „Usługa normalna”, „usługa krytyczna”, „host o niskim priorytecie”. Służą również jako przydatny sposób podziału obowiązków, jeśli masz wiele zespołów o różnych obowiązkach, dzięki czemu możesz mieć szablon „hosta Linux” i szablon „hosta systemu Windows”, z których każdy określa odpowiednie dane kontaktowe.
Możesz używać wielu szablonów w jednym zasobie, dzięki czemu możesz tworzyć szablony odpowiednio prostopadłe. Na przykład możesz mieć
host foo {
use windows-host,normal-priority-host
...
}
które pobierałyby dane kontaktowe (i eskalacje) dla zespołu Windows oraz stawki i progi odpytywania dla „normalnego” hosta.
Grupy hostów umożliwiają grupowanie wszystkich kontroli podzbioru hostów. Mają rzeczy takie jak „baseline-hosty Linux”, które sprawdzają obciążenie, miejsce na dysku, ssh
zdolność i inne rzeczy, które powinny znajdować się na każdym monitorowanym hoście. Dodaj grupy, takie jak „serwery https”, sprawdzając łączność HTTP, łączność HTTPS i daty ważności certyfikatu SSL; „serwery plików” z kontrolami dostępności NFS i SMB i być może bardziej agresywnymi kontrolami dysków; lub „maszyny wirtualne” ze sprawdzeniem, czy narzędzia ułatwień dostępu maszyn wirtualnych działają poprawnie.
Umieść każdy host i grupę hostów we własnym pliku. Plik ten powinien zawierać najpierw definicję hosta lub grupy hostów, a następnie definicje usług, które go dotyczą.
Jeśli użyjesz cfg_dir
dyrektywy w swoim nagios.cfg
pliku, Nagios przeszuka rekurencyjnie przez ten katalog. Skorzystaj z tego. Dla ustawienia cfg_dir=/etc/nagios/conf.d
możesz mieć drzewo katalogów podobne do następującego:
- /etc/nagios/conf.d/
- polecenia.d /
- http.cfg
- nrpe.cfg
- smtp.cfg
- ssh.cfg
- hosts.d /
- host1.cfg
- host2.cfg
- host3.cfg
- grupy hosta.d /
- hostgroup1.cfg
- hostgroup2.cfg
Staram się tworzyć katalog dla każdego typu zasobu (polecenia, grupy kontaktów, kontakty, eskalacje, grupy hostów, hosty, grupy serwisowe, przedziały czasowe) z wyjątkiem usług, które są zgrupowane z hostami lub grupami hostów, które ich używają.
Dokładna struktura może się różnić w zależności od potrzeb organizacyjnych. W poprzedniej pracy korzystałem z podkatalogów hosts.d
dla każdej innej witryny. W mojej obecnej pracy większością definicji hostów Nagios zarządza Puppet, więc istnieje jeden katalog dla hostów zarządzanych przez Puppet i osobny dla hostów zarządzanych ręcznie.
Zauważ, że powyższe dzieli również polecenia na wiele plików, na ogół według protokołu. Zatem nrpe.cfg
plik musiałby polecenia check_nrpe
i check_nrpe_1arg
, a http.cfg
może mieć check_http
, check_http_port
, check_https
, check_https_port
, i check_https_cert
. 1
Zwykle nie mam ogromnej liczby szablonów, więc zwykle mam tylko hosts.d/templates.cfg
plik i services.d/templates.cfg
plik. Jeśli użyjesz ich częściej, mogą przechodzić do odpowiednio nazwanych plików w templates.d
katalogu.
1 Lubię też mieć check_http_blindly
polecenie, które jest w zasadzie check_http -H $HOSTADDRESS$ -I $HOSTADDRESS$ -e HTTP/1.
; zwraca OK, nawet jeśli otrzyma kod odpowiedzi 403.