Konfiguracja Nagios

Konfiguracja Nagios
To właśnie w pliku nagios.cfg znajdują się wszystkie ważniejsze ścieżki do poszczególnych plików z konfiguracją hostów w sieci. Można powiedzieć, że jest to serce programu Nagios. W pliku nagios.cfg są ścieżki do plików konfiguracyjnych, wśród których wyróżniamy:
a) Katalog z plikami cfg, które reprezentują hosty w sieci. Przykład dla localhost.cfg o nazwie zie-srv-nagios znajduje się poniżej. Najpierw zdefiniowany jest host, który używa template o nazwie linux-server, a następnie zdefiniowane są określone usługi, które także mają swoje templete o nazwie generic-service oraz local-service.

define host{
use linux-server
host_name zie-srv-nagios
alias Nagios 3.0.6
address 127.0.0.1
}
define service {
use generic-service
service_description Memory
host_name zie-srv-nagios
check_command check_linux_free_memory.pl!20!10
}

define service{
use local-service
host_name zie-srv-nagios
service_description PING
check_command check_ping!100.0,20%!500.0,60%
}
define service{
use generic-service
host_name zie-srv-nagios
service_description Total Processes
check_command check_procs!250!400
}


b) commands.cfg – do tego pliku odwołuje się każdy plik (w naszym przypadku localhost.cfg) w którym jest użyta komenda „check_command”. To właśnie tu następuje zdefiniowanie komendy. Oprócz podania nazwy komendy trzeba podać ścieżkę w której dany plugin się znajduje ($USER1$ jest częścią ścieżki, która jest zdefiniowana w pliku resource.cfg; przeważnie jest to /usr/local/nagios/libexec)

define command{
command_name check_linux_free_memory.pl
command_line /usr/bin/perl $USER1$/check_linux_free_memory.pl -w $ARG1$ c $ARG2$
}
define command{
command_name check_procs
command_line $USER1$/check_procs.sh -w $ARG1$ -c $ARG2$
}

define command{
command_name check_ping
command_line $USER1$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p 5
}


c) templates.cfg – zdefiniowane templete dla hosta i usług (o nazwach generic-host, linux-server, generic-service i local-service)

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
notification_period 24×7
register 0
}
define host{
name linux-server
use generic-host
check_period 24×7
check_interval 5
retry_interval 1
max_check_attempts 10
check_command check-host-alive
notification_period workhours
notification_interval 120
notification_options d,u,r
contact_groups admins
register 0
}

define service{
name generic-service
active_checks_enabled 1
passive_checks_enabled 1
parallelize_check 1
obsess_over_service 1
check_freshness 0
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
is_volatile 0
check_period 24×7
max_check_attempts 3
normal_check_interval 10
retry_check_interval 2
contact_groups admins
notification_options w,u,c,r
notification_interval 60
notification_period 24×7
register 0
}

define service{
name local-service
use generic-service
max_check_attempts 4
normal_check_interval 5
retry_check_interval 1
register 0
}

define contact{
name generic-contact
service_notification_period 24×7
host_notification_period 24×7
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
}

 

d) contacts.cfg – określenie kto ma być informowany o problemach

define contact{
contact_name AdminNagios
use generic-contact
alias Nagios Admin
email nagios@localhost ; email na który mają przychodzić powiadomienia
}
define contactgroup{
contactgroup_name admins
alias Nagios Administrators
members AdminNagios
}


e) timeperiod.cfg – określenie przedziałów czasowych dla których będzie działał Nagios; najlepiej jest użyć pliku przykładowego dostarczonego wraz z instalacją pakietu Nagios.
f) hostgroup.cfg – zdefiniowane grupy, które łatwo można później zlokalizować i przyporządkować w Nagios

define hostgroup{
hostgroup_name linux-servers
alias Linux Servers
members zie-srv-nagios
}
define hostgroup {
hostgroup_name Wszystko
alias Wszystkie Serwery
members *
}

define hostgroup {
hostgroup_name Serwery_PING
alias Serwery pingowane
members zie-srv-nagios
}


Najlepiej po każdej ingerencji w pliki konfiguracyjne uruchomić polecenie:

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg


I zwracać uwagę na wszystkie errory oraz warning, które od razu pokazują plik w którym występuje niejasność lub brak zdefiniowania określonych parametrów do których jest odwołanie.