Nagios je jedním z nejlepších dostupných řešení pro monitorování serverů a sítě s otevřeným zdrojovým kódem. Pomocí flexibilního rámce nagios můžete monitorovat téměř cokoli (včetně databáze a vlastní aplikace). Tento článek pomocí 4 jednoduchých kroků vysvětluje, jak nastavit definice kontaktů, které obdrží upozornění, když má hostitel nebo služba nějaké problémy.
Dříve jsme také diskutovali o tom, jak nastavit Nagios a monitorovat Windows server, monitorovat Linux Server, monitorovat VPN relace a monitorovat síťový přepínač.
1. Definujte Obecnou šablonu kontaktu v templates.cfg
Instalace Nagios poskytuje výchozí obecnou šablonu kontaktu, kterou lze použít jako referenci pro vytváření vašich kontaktů. Vezměte prosím na vědomí, že všechny směrnice uvedené v níže uvedené šabloně obecného kontaktu jsou povinné. Pokud jste se tedy rozhodli nepoužívat ve svých kontaktech definici obecné šablony kontaktu, měli byste si všechny tyto povinné definice definovat ve svých kontaktech sami.
Následující obecný-kontakt je již dostupný v /usr/local/nagios/etc/objects/templates.cfg. Také templates.cfg je standardně součástí nagios.cfg, jak je uvedeno níže.
Upozorňujeme, že kteroukoli z těchto direktiv uvedených v souboru templates.cfg lze přepsat, když definujete skutečný kontakt pomocí této obecné šablony.
# grep templates /usr/local/nagios/etc/nagios.cfg cfg_file=/usr/local/nagios/etc/objects/templates.cfg Note: generic-contact is available under /usr/local/nagios/etc/objects/templates.cfg define contact{ name generic-contact service_notification_period 24x7 host_notification_period 24x7 service_notification_options w,u,c,r,f,s host_notification_options d,u,r,f,s service_notification_commands notify-service-by-email host_notification_commands notify-host-by-email register 0 }
- Jméno – Toto definuje název šablony kontaktu (generic-contact).
- service_notification_period – Definuje, kdy může nagios posílat upozornění na problémy se službami (například výpadek Apache). Ve výchozím nastavení je to 24×7 časové období, které je definováno v /usr/local/nagios/etc/objects/timeperiods.cfg
- host_notification_period – Definuje, kdy může nagios posílat upozornění na problémy s hostitelem (například selhání serveru). Ve výchozím nastavení je toto časové období 24×7.
- service_notification_options – Definuje typ servisního upozornění, které lze odeslat. Ve výchozím nastavení to definuje všechny možné stavy služby včetně flappingových událostí. To také zahrnuje činnosti plánovaného odstávky služby.
- host_notification_options – Definuje typ oznámení hostitele, která lze odesílat. Ve výchozím nastavení to definuje všechny možné stavy hostitele včetně událostí flapping. To také zahrnuje plánované činnosti prostoje hostitele.
- service_notification_commands – Ve výchozím nastavení toto definuje, že kontakt by měl dostávat upozornění na problémy se službou (například výpadek databáze) prostřednictvím e-mailu. Můžete také definovat další příkazy a přidat je k této direktivě. Můžete například definovat svůj vlastní příkaz notify-service-by-sms.
- host_notification_commands – Ve výchozím nastavení toto definuje, že kontakt by měl dostávat upozornění na problémy s hostitelem (například výpadek hostitele) prostřednictvím e-mailu. Můžete také definovat další příkazy a přidat je k této direktivě. Můžete například definovat svůj vlastní příkaz notify-host-by-sms.
2. Definujte jednotlivé kontakty v contacts.cfg
Jakmile potvrdíte, že jsou šablony obecných kontaktů definovány správně, můžete začít definovat definici jednotlivých kontaktů pro všechny lidi ve vaší organizaci, kteří by kdy dostávali oznámení z nagios. Upozorňujeme, že pouhé definování kontaktu neznamená, že obdrží upozornění. Později budete muset tento kontakt přiřadit buď k definici služby nebo hostitele, jak je uvedeno v dalších částech níže. Takže zde klidně definujte všechny možné kontakty. (například vývojáři, správci databází, správci systému, IT-manažeři, manažer zákaznických služeb, top management atd.)
Note: Define these contacts in /usr/local/nagios/etc/objects/contacts.cfg define contact{ contact_name sgupta use generic-contact alias Sanjay Gupta (Developer) email [email protected] pager [email protected] } define contact{ contact_name jbourne use generic-contact alias Jason Bourne (Sysadmin) email [email protected] }
3. Definujte skupiny kontaktů s více kontakty v contact.cfg
Jakmile definujete jednotlivé kontakty, můžete je také seskupit a odeslat příslušná upozornění. Například pouze správci databází potřebují být informováni o definici služby výpadku databáze. Takže může být vyžadována skupina db-admins. Také může být pouze správci unixového systému, kteří musí být upozorněni, když Apache selže. Takže může být vyžadována skupina unix-admins. Neváhejte definovat tolik skupin, kolik si myslíte, že je potřeba. Později můžete tyto skupiny použít v definicích jednotlivých služeb a hostitelů.
Note: Define contact groups in /usr/local/nagios/etc/objects/contacts.cfg define contactgroup{ contactgroup_name db-admins alias Database Administrators members jsmith, jdoe, mraj } define contactgroup{ contactgroup_name unix-admins alias Linux System Administrator members jbourne, dpatel, mshankar }
4. Připojte skupiny kontaktů nebo jednotlivé kontakty k definicím služby a hostitele
Jakmile definujete jednotlivé kontakty a skupiny kontaktů, je čas začít je připojovat ke konkrétní definici hostitele nebo služby, jak je uvedeno níže.
Note: Following host is defined under /usr/local/nagios/etc/objects/servers/email-server.cfg. This can be any host definition file. define host{ use linux-server host_name email-server alias Corporate Email Server address 192.168.1.14 contact_groups unix-admins } Note: Following is defined under /usr/local/nagios/etc/objects/servers/db-server.cfg. This can be any host definition file. define service{ use generic-service host_name prod-db service_description CPU Load contact_groups unix-admins check_command check_nrpe!check_load } define service{ use generic-service host_name prod-db service_description MySQL Database Status contact_groups db-admins check_command check_mysql_db }