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
}