Mocą Zabbixa była możliwość zarządzania hostami przez dość mocno skomplikowany system template’ów.
Template, inaczej szablon, służy do określania standardowego zestawu takich samych rzeczy, które mają być wykonane zawsze w przypadku hosta z danej grupy. Natomiast jak się ostatnio dowiedziałem z lektury manuala, Nagios potrafi to robić nie gorzej.
Do czego przydaje się template? Jeżeli mamy 200 hostów, w których monitorujemy np. SSH na porcie 22, a nagle z powodu nadmiaru skanów potrzebujemy przestawić sshd na port 2223, to warto by też przepiąć monitoring. Jeżeli nie mamy szablonów ze standardowymi usługami, a serwisy definiowane dla każdego hosta z osobna, musimy zmienić 200 wpisów. Jeżeli ktoś jest pracowity – do boju do boju do boju wks. Ja jestem przykładem skrajnego lenia i wolę sobie raczej życie ułatwiać, niż utrudniać.
Więc definiujemy sobie szablon, w obcym jezyku: template. Szablon może dotyczyć hosta oraz serwisu. Host, to wiadomo co to jest. Serwis (service) to np. sprawdzanie SSH albo pinga. W Nagiosie robi się to tak:
define host{
name generic-host
notifications_enabled 1
event_handler_enabled 1
flap_detection_enabled 1
failure_prediction_enabled 1
process_perf_data 1
retain_status_information 1
retain_nonstatus_information 1
check_command check-host-alive
max_check_attempts 10
notification_interval 0
notification_period 24x7
notification_options d,u,r
contact_groups admins
register 0
}
Interesuje nas name oraz
register 0
. To pierwsze wiadomo, trzeba się jakoś do templatki odwołać. To drugie oznacza, że ta definicja tak na prawdę nie jest hostem, i nie należy tego sprawdzać. Za to należy po tym obiekcie dziedziczyć różne rzeczy. Np. powiadomienia. Albo komendy sprawdzające (check_commands). Zresztą nawet wielkie ostrzeżenie w obcym języku tłumaczy opcję register (DONT REGISTER THIS DEFINITION – ITS NOT A REAL HOST, JUST A TEMPLATE!) .
Takich szablonów można stworzyć wiele, i wcale nie muszą być aż tak rozbudowane jak ten z domyślnego przykładu.
Nagios pozwala podłaczać wiele szablonów do jednego hosta. A robi się to np. tak:
define host{
use generic-host,specific-host,mroczny-host
host_name hostek.domena.com
alias hostek
address 1.2.3.3
parents badbadparent
contact_groups plumk
}
Kluczem jest tutaj linijka z use. Po przecinku listujemy templatki, które mają być zastosowane do hosta. Niestety jeszcze nie doczytałem, która ma pierwszeństwo w przypadku nachodzenia się poniektórych opcji, ale zaktualizuję wpis, jak się dowiem.
Ten sam mechanizm działa także dla serwisów.
Za to w Zabbixie, stackowanie templatek (mądre słowo, oznacza dodawanie wielu szablonów do jednego hosta), zostało wprowadzone dopiero od wersji 1.4.x, i generalnie używanie tego jest mroczne jak używanie samego Zabbixa.