Marcin Jakubczak

Marcin Jakubczak Administrator
systemów i sieci

Temat: Powiadamianie na maila

Witam

Jestem świeżym użytkownikiem Nagiosa w wersji 3 i mam jak na razie jedno pytanie :). Mamy w firmie skonfigurowane potwierdzanie na maila o błędach krytycznych na urządzeniach sieciowych i serwerach.

I teraz dorzuciłem do monitorowania kolejna bazę serwerów, z których chciałbym aby przychodziły potwierdzenia tylko do jednego użytkownika i tylko z tych serwerów, a nie z całego sprzętu który jest dopisany.

Czy jest taka możliwość aby mail o błędach krytycznych z danego sprzętu przychodził tylko do jednego wybranego przeze mnie użytkownika ?

konto usunięte

Temat: Powiadamianie na maila

oczywiście.

Możesz to zrobić na kilka sposobów. Pierwszym sposobem jest utworzenie grupy jedno osobowej:


define contactgroup {
contactgroup_name nazwa_grupy
alias Pełna nazwa grupy
members jkowalski
}


Gdzie w membersach wpisujesz nazwe użytkownika (contact_name), który ma być powiadamiany. Następnie grupę przypisujesz do danej usługi (grupy usług):

define host {
host_name xyz
....
....
contact_groups nazwa_grupy
}


Możesz na hoście lub w definicji kontaktu określić stany o których ma być powiadamiany. Zamiast definiować "nowej" grupy możesz po prostu bezpośrednio przypisać użytkownika do hosta/grupy hostów (usług/grup usług).

define host {
host_name xyz
...
...
contacts jkowalski
}


Niemniej polecam zawsze utworzyć grupę ;) szybciej można ją rozszerzyć w razie potrzeby.

Innym sposobem jest też użycie eskalacji powiadomień, gdzie o wszystkich stanach będzie powiadamiany jeden użytkownik, dopiero o stanie, np. krytycznym większa liczba

Polecam zerknąć do dokumentacji nagiosa - masz wszystko ładnie opisane z przykładami :).
Marcin Jakubczak

Marcin Jakubczak Administrator
systemów i sieci

Temat: Powiadamianie na maila

Zrobiłem wszystko tak jak opisałeś i podczas reloadu Nagiosa wyskakują mi takie błędy:

Error: Could not find any contact matching 'jkowalski' (config file '/usr/local/etc/nagios/objects/contacts.cfg', starting on line 75)
Error: Could not expand member contacts specified in contactgroup (config file '/usr/local/etc/nagios/objects/contacts.cfg', starting on line 75)

I teraz gdzie mogę zdefiniować tego użytkownika ?

konto usunięte

Temat: Powiadamianie na maila

Ok od początku.

W pliku konfiguracyjnym (głównym) nagiosa - nagios.cfg definiujesz pliki lub katalogi gdzie przechowywane są pliki konfiguracyjne obiektów. Możesz np zrobić tak, że kontakty trzymasz w osobnym pliku, usługi jeszcze w innym itd.


[root@argos nagios]# grep ^cfg nagios.cfg
cfg_file=/etc/nagios/objects/timeperiods.cfg
cfg_file=/etc/nagios/objects/templates.cfg
cfg_file=/etc/nagios/objects/hostextinfo.cfg
cfg_dir=/etc/nagios/objects/printers
cfg_dir=/etc/nagios/objects/hosts
cfg_dir=/etc/nagios/objects/rcp
cfg_dir=/etc/nagios/objects/commands
cfg_dir=/etc/nagios/objects/devices
cfg_dir=/etc/nagios/objects/contacts
[root@argos nagios]#


Mozesz też użyć zmiennej cfg_dir przez która wskazujesz katalog w którym odczytywane będą pliki konfiguracyjne z rozszerzeniem *.cfg.

Czyli przykładowo twoszysz sobie katalog /etc/nagios/objects/hosts a w nim linux.cfg, windows.cfg itd. - tak jak Tobie wygodnie.

W moim przypadku pojawia się katalog contacts w którym trzymam sobie definicję poszczególnych kontaktów.
=====

W Twoim przypadku informacje trzymane są w /usr/local/etc/nagios/objects/contacts.cfg Zapewne w nim masz definicję zarówno grup jaki samych użytkowników.

Teraz wracając do Twojego problemu. Błędy pojawiają się bo przepisałeś po prostu to co ja wpisałem. Pewnie nie masz zdefiniowanego kontaktu "jkowalski" którego podałem za przykład. Skoro dostajesz powiadomienia odnośnie starych hostów to po prostu stwórz grupę jednoosobową ze SWOIM użytkownikiem (odszukaj define contact { }) i wpisz zdefiniowaną nazwę właśnie do tej grupy. Ewentualnie użyj przy definicji hosta, makra "contacts" gdzie podasz bezpośrednio nazwę użytkownika, który ma być o problemie powiadamiany. Wtedy nie ma konieczności tworzenia grupy.

Możesz też zadeklarować grupę hostów i dopiero jej przypisać odpowiedniego użytkownika/grupę użytkowników.Mariusz Derela edytował(a) ten post dnia 31.05.11 o godzinie 09:24
Marcin Jakubczak

Marcin Jakubczak Administrator
systemów i sieci

Temat: Powiadamianie na maila

jkowalski wpisalem w errorze tylko dla tego żeby nie podawać nazwy swojego użytkownika :D tu na pewno podałem dobrego, nom poszukam teraz gdzie może to siedzieć.

Wiem też, że moi poprzednicy dopisywali do grupy kotaktów, grupy z exchanga czyli np. jak stworzyłbym w exchangu grupe 1 osobowa, którą bym chciał zdefiniować do danej grupy hostów to to też powinno zadziałać. Mam nadzieję, że to sie uda.

Teraz jeszcze mam jedno pytanie czy maile osób nie są zdefiniowane w tych plikach mail i mailx ? Bo jak staram się wyedytować te pliki to widze robactwo.

konto usunięte

Temat: Powiadamianie na maila

Wszystko zależy od tego jak zostały powiadomienia zdefiniowane. Popatrz na mój przykład (dodałem kilka komentarzy)

[root@argos ~]# cat /etc/nagios/objects/contacts/mderela.cfg
#Posty kontakt - potrzebny do logowania przez WWW
define contact {
contact_name mderela
use none-contact,email-contact
alias Mariusz Derela
contactgroups mderela
}

# Powiadomienia dla godzin "pracy"
define contact {
use generic-contact,jabber-contact,work-contact
contact_name mderela-work
_JID mariusz@um.jaworzno.pl
contactgroups mderela
}

# W Godzinach "po pracy"
define contact {
use generic-contact,jabber-contact,afterwork-contact
contact_name mderela-afterwork
_JID mariusz.derela@gmail.com
contactgroups mderela
}

# W godzinach nocnych
define contact {
use generic-contact,email-contact,night-contact
contact_name mderela-night
mail mariusz.derela@um.jaworzno.pl
contactgroups mderela
}

# zebranie w calosc :)
define contactgroup {
contactgroup_name mderela
alias Mariusz Derela
}


Jak widać na załączonym schemacie używam dość mocno template. W tym przypadku Używam "generic-conatct","mail-contact","jabber-contact","night-contact","work-contact","afterwork-contact", które wyglądają następująco (troszkę obcięte, ale do formy która powinna zadziałać):


define contact{
name generic-contact
service_notification_options w,u,c,r,f,s
host_notification_options d,u,r,f,s
register 0
}

define contact{
name jabber-contact
service_notification_commands notify-service-by-jabber
host_notification_commands notify-host-by-jabber
register 0
}

define contact{
name sms-contact
service_notification_commands notify-service-by-sms
host_notification_commands notify-host-by-sms
register 0
}


define contact{
name email-contact
service_notification_commands notify-service-by-email
host_notification_commands notify-host-by-email
register 0
}



define contact{
name work-contact
service_notification_period workhours
host_notification_period workhours
register 0
}

define contact{
name afterwork-contact
service_notification_period afterwork
host_notification_period afterwork
register 0
}

define contact{
name night-contact
service_notification_period night
host_notification_period night
register 0
}


define contact{
name none-contact
service_notification_period none
host_notification_period none
register 0
}


Tak więc odpowiadając na Twoje pytanie... maile definiowane są bezpośrednio przy definicji kontaktów. Oczywiście, nagios jest na tyle otwarty, że możemy stworzyć na sztywno skrypt służący do powiadomień i w nim zaszyjemy adresy na które ma być wysyłane powiadomienie (chociaż jest to głupie rozwiązanie).

"Moja" metoda daje kilka fajnych możliwości. Opisujesz jednego użytkownika używając różnych metod powiadomień - zależnych od pory dnia.Mariusz Derela edytował(a) ten post dnia 31.05.11 o godzinie 10:54
Marcin Jakubczak

Marcin Jakubczak Administrator
systemów i sieci

Temat: Powiadamianie na maila

Super dziękuje za pomoc, zerknąłem jeszcze w dokumentacje i się udało.

Teraz mam nowe pytanie :)

Ustawiłem w jednym z configów takie definicje:

define host{
use "nazwa"
host_name "nazwa"
address 0.0.0.0
hostgroups "nazwa"
parents "nazwa"
contact_groups "nazwa"
}

define service{
use "nazwa"
host_name "nazwa"
service_description TCP
check_command check_telnet!27000
}

I teraz po wyłączeniu tego servera przychodzi powiadomienie na maila ale o informacji, że nie dochodzi ping mimo, że w żadnym innym configu nie ma ustawienia żeby sprawdzał po pingu.
Jest taka koemda ustawiona aby sprawdzał mi czy dany port działa, może tu coś jest nie tak.
Czego to może byc przyczyna ?

konto usunięte

Temat: Powiadamianie na maila

Pewnie w definicji template hosta (use "NAZWA" <- w definicji tego poszukaj) masz ustawione domyślne polecenie (check_host_alive). Dodaj do definicji hosta "active_checks_enabled 0" i już to domyślne polecenie nie będzie brane pod uwage.Mariusz Derela edytował(a) ten post dnia 01.06.11 o godzinie 22:23
Marcin Jakubczak

Marcin Jakubczak Administrator
systemów i sieci

Temat: Powiadamianie na maila

Dziękuje bardzo za pomoc pomogło :D

Jak będe miał jakieś nowe zagwostki to od razu się odzywam.

Następna dyskusja:

Powiadamianie o nowym zamow...




Wyślij zaproszenie do