Integracja z systemem Nagios

Transkrypt

Integracja z systemem Nagios
Integracja z systemem Nagios
1. WSTĘP
Nagios jest programem do monitorowania sieci, urządzeń sieciowych, aplikacji oraz
serwerów działający w systemach Linux i Unix rozpowszechniany na podstawie licencji
GPL. Może monitorować hosty oraz usługi według określonych ustawień, dzięki czemu
jest możliwe dostosowanie go do swoich potrzeb. W razie wykrycia problemu Nagios
może wysłać powiadomienie e–mail lub SMS do administratora systemu z informacją
o problemie.
Nagios posiada budowę modułową, czyli bazuje na tzw. wtyczkach. Niektóre funkcje:
§ monitorowanie usług sieciowych (SMTP, POP3, HTTP, NNTP, ICMP, SNMP, FTP,
SSH);
§ monitorowanie użycia zasobów systemowych (procesor, dysk twardy, logi
systemowe) w większości systemów operacyjnych, w tym Microsoft Windows;
§ pozwala na definiowanie hierarchii sieci, oraz rozróżnia które hosty są wyłączone,
a które nieosiągalne;
§ umożliwia proste projektowanie wtyczek w razie potrzeby monitorowania
własnych usług, przy użyciu jednego z wielu języków programowania;
§ powiadamianie w razie wykrycia problemów za pomocą e–maila, pagera, SMS lub
innych zdefiniowanych metod powiadamiania we wtyczkach.
2. INSTALACJA PLUGINU
Plugin został przygotowany do realizacji monitorowania aktywnego, jak i do realizacji
monitorowania pasywnego. Archiwum pluginu zawiera następujące pliki:
§ check_itsupervisor – skrypt Bash realizujący odczyt i parsowanie danych
z kontrolerów dla monitorowania aktywnego;
§ passive_itsupervisor – skrypt Bash realizujący parsowanie odebranych
komunikatów trap i przekazywania ich za pomocą mechanizmu NSCA dla
monitorowania pasywnego;
§ cmd_itsupervisor.cfg – definicja komend odczytu danych z kontrolera, które
używane są w definicji usług dla monitorowania aktywnego;
§ snmptrapd.conf – definicja odbieranych komunikatów trap i akcji dla deamona
snmptrapd dla monitorowania pasywnego;
§ itsupervisor.cfg – definicja monitorowanego hosta oraz jego usług.
W kolejnych rozdziałach opisano szczegółowo konfigurację osobno dla monitorowania
aktywnego i dla monitorowania pasywnego. Konfiguracja dotyczy środowiska Debian
Wheezy i systemu Nagios w wersji 3.4. Inne dystrybucje systemu Linux mogą
zawierać inne lokalizacje komponentów oraz inne nazwy instalowanych pakietów.
Jednakże schemat działania jest identyczny. W ostatnim rozdziale opisano
konfigurację kontrolera ITSupervisor do współpracy z systemem Nagios.
Electronic Power And Market Sp. z o.o. ul. Junacka 7 78–400 Szczecinek tel. 94 37 236 00 fax. 94 37 249 13
www.epm.com.pl e–mail: [email protected]
Wersja 1.0
3. MONITOROWANIE AKTYWNE
Monitorowanie aktywne polega na synchronicznym, planowanym wykonywaniu przez
system Nagios testów sprawdzających dostępność i stan usług z zewnątrz na
monitorowanych hostach. Standardowo Nagios wywołuje wtyczkę (dokonuje testu
usługi) co 5 min, jeżeli nastąpił problem z połączeniem lub wtyczka raportuje alarm,
następne wywołania wykonywane są co 1 min, jeżeli po skonfigurowanej liczbie
wywołań (domyślnie 4) nadal jest alarm, generowany jest komunikat. Interwał
czasowy testów oraz liczbę ponowień można dowolnie zmieniać. W przypadku
kontrolera ITSupervisor monitorowanymi usługami są stany czujników pomiarowych
oraz stany wejść dwustanowych. Na rysunku 1 przedstawiono widok działającego
systemu z przykładową konfiguracją kontrolera zawartą w archiwum pluginu.
Rys. 1. Działający system Nagios z przykładową konfiguracją (4 czujniki, 4 wejścia dwustanowe)
Uruchomienie monitorowania aktywnego sprowadza się do umieszczenia trzech plików
z archiwum w miejsca docelowe systemu Nagios:
§ check_itsupervisor – główna wtyczka – w miejsce przechowywania pluginów
Nagiosa (/usr/lib/nagios/plugins);
§ cmd_itsupervisor.cfg – definicja komend – w miejsce przechowywania plików
konfiguracyjnych Nagiosa (/etc/nagios3/conf.d);
§ itsupervisor.cfg – definicja monitorowanego hosta oraz jego usług – w miejsce
przechowywania plików konfiguracyjnych Nagiosa (/etc/nagios3.conf.d).
Electronic Power And Market Sp. z o.o. ul. Junacka 7 78–400 Szczecinek tel. 94 37 236 00 fax. 94 37 249 13
www.epm.com.pl e–mail: [email protected]
Wersja 1.0
Możliwa jest inna lokalizacja plików, w takim przypadku należy również zmienić
ścieżki w samych plikach konfiguracyjnych (np. w pliku cmd_itsupervisor.cfg gdzie
zawarta jest ścieżka bezwzględna dla właściwej wtyczki), jak również w głównym
pliku nagios.cfg gdzie zdefiniowane są ścieżki do katalogów z plikami
konfiguracyjnymi.
Właściwym plikiem z konfiguracją hosta i jego usług jest plik itsupervisor.cfg. Jego
strukturę z konfiguracją jednego hosta i dwóch usług (czujnik i wejście dwustanowe)
przedstawiono poniżej:
# ***************************************************************
# ******************** Controller definition ********************
# ***************************************************************
define host {
use
generic-host
# use sysName from SNMP agent
host_name
ITSupervisor
# set correct controller ip address
address
192.168.1.148
}
# ***************************************************************
# ************** Service definition - SENSOR NO 1 ***************
# ***************************************************************
define service {
use
generic-service
host_name
ITSupervisor
# use sensName from SNMP agent
service_description
Room temperature
# set correct agent port, community and sensor number
# for example below agent port is 161, community is public, sensor no is 1
check_command
check_its_sensor!161!public!1
}
# ***************************************************************
# *************** Service definition - INPUT NO 1 ***************
# ***************************************************************
define service {
use
generic-service
host_name
ITSupervisor
service_description
Leak detector
# set correct agent port, community and input number
# for example below agent port is 161, community is public, input no is 1
check_command
check_its_input!161!public!1
}
Elementy koloru czerwonego należy ustawić według indywidualnej konfiguracji.
Należy zwrócić uwagę na ustawienie poprawnego adresu IP kontrolera, oraz
parametrów protokołu SNMP (port agenta, community). Aby dodać kolejne usługi
(kolejne czujniki lub wejścia dwustanowe) należy powielić odpowiednią sekcję define
service, pamiętając o prawidłowej zmianie numeru czujnika lub wejścia (trzeci
parametr komendy check_its_sensor lub check_its_input) oraz nazwie usługi
(service_description). Kolejne hosty (kontrolery) można dodać powielając plik
itsupervisor.cfg, zmieniając jedynie jego indywidualne parametry.
Przed uruchomieniem systemu Nagios należy upewnić się, że w systemie dostępne
jest narzędzie snmpget z pakietu snmp lub snmp-utils, ponieważ jest ono
wymagane przez wtyczkę check_itsupervisor.
Electronic Power And Market Sp. z o.o. ul. Junacka 7 78–400 Szczecinek tel. 94 37 236 00 fax. 94 37 249 13
www.epm.com.pl e–mail: [email protected]
Wersja 1.0
4. MONITOROWANIE PASYWNE
Monitorowanie pasywne działa asynchronicznie, komunikaty o zmianie stanu usług
zgłaszane są przez hosta za pomocą interfejsu i przetwarzane tak samo jak aktywne.
Dzięki dodatkowemu monitorowaniu pasywnemu, system Nagios otrzymuje
informację o zmianie stanu usługi niezwłocznie. W przypadku braku dodatkowego
monitorowania pasywnego, zmiana stanu usługi będzie zauważona przez Nagiosa
dopiero przy kolejnym zaplanowanym teście.
Uruchomienie monitorowania pasywnego wymaga zainstalowania usługi snmptrapd
(najczęściej występuje wraz z usługą snmpd) oraz usługi nsca (umożliwiającej
przekazywanie informacji w bezpieczny sposób) do jądra systemu Nagios.
Konfiguracja usługi nsca wymaga określenia hasła oraz algorytmu szyfrowania
(zarówno w pliku konfiguracyjnym samej usługi /etc/nsca.cfg jak również w pliku
/etc/send_nsca.cfg z którego korzysta skrypt passive_itsupervisor).
Konfiguracja usługi snmptrapd wymaga zmiany w domyślnym pliku konfiguracyjnym
/etc/default/snmpd parametru, który uruchamia deamona snmptrapd wraz
z usługą snmpd oraz dodaje dodatkowy parametr –On do linii poleceń uruchomienia
usługi snmptrapd. Poniżej przedstawiono prawidłową zmianę tych parametrów:
# snmptrapd control (yes means start daemon). As of net-snmp version
# 5.0, master agentx support must be enabled in snmpd before snmptrapd
# can be run. See snmpd.conf(5) for how to do this.
TRAPDRUN=yes
# snmptrapd options (use syslog).
TRAPDOPTS='-Lsd -On -p /var/run/snmptrapd.pid'
Dodatkowo należy umieścić z archiwum plik konfiguracyjny snmptrapd.conf
w katalogu konfiguracji usługi snmpd (/etc/snmp). Plik ten zawiera listę
zdefiniowanych komunikatów trap, które będą podlegały przetwarzaniu przez skrypt
passive_itsupervisor. Widok pliku snmptrapd.conf przedstawiono poniżej:
###############################################################################
#
# EXAMPLE-trap.conf:
#
An example configuration file for configuring the Net-SNMP snmptrapd agent.
#
###############################################################################
#
# This file is intended to only be an example. If, however, you want
# to use it, it should be placed in /etc/snmp/snmptrapd.conf.
# When the snmptrapd agent starts up, this is where it will look for it.
#
# All lines beginning with a '#' are comments and are intended for you
# to read. All other lines are configuration commands for the agent.
#
# PLEASE: read the snmptrapd.conf(5) manual page as well!
#
authCommunity execute trap
# Sensor state changed - High warning start
traphandle .1.3.6.1.4.1.32307.1.0.1 /etc/snmp/passive_itsupervisor
# Sensor state changed - High alarm start
traphandle .1.3.6.1.4.1.32307.1.0.2 /etc/snmp/passive_itsupervisor
Electronic Power And Market Sp. z o.o. ul. Junacka 7 78–400 Szczecinek tel. 94 37 236 00 fax. 94 37 249 13
www.epm.com.pl e–mail: [email protected]
Wersja 1.0
# Sensor state changed - High alarm end
traphandle .1.3.6.1.4.1.32307.1.0.3 /etc/snmp/passive_itsupervisor
# Sensor state changed - High warning end
traphandle .1.3.6.1.4.1.32307.1.0.4 /etc/snmp/passive_itsupervisor
# Sensor state changed - Low warning start
traphandle .1.3.6.1.4.1.32307.1.0.5 /etc/snmp/passive_itsupervisor
# Sensor state changed - Low alarm start
traphandle .1.3.6.1.4.1.32307.1.0.6 /etc/snmp/passive_itsupervisor
# Sensor state changed - Low alarm end
traphandle .1.3.6.1.4.1.32307.1.0.7 /etc/snmp/passive_itsupervisor
# Sensor state changed - Low warning end
traphandle .1.3.6.1.4.1.32307.1.0.8 /etc/snmp/passive_itsupervisor
# Sensor state changed - communication loss
traphandle .1.3.6.1.4.1.32307.1.0.9 /etc/snmp/passive_itsupervisor
# Sensor state changed - communication pass
traphandle .1.3.6.1.4.1.32307.1.0.10 /etc/snmp/passive_itsupervisor
# Input state changed - Active start
traphandle .1.3.6.1.4.1.32307.1.0.20 /etc/snmp/passive_itsupervisor
# Input state changed - Active end
traphandle .1.3.6.1.4.1.32307.1.0.21 /etc/snmp/passive_itsupervisor
Należy pamiętać również aby w pliku snmptrapd.conf ustawić community identyczne
jak w kontrolerze dla komunikatów trap (element koloru czerwonego).
Skrypt passive_itsupervisor należy umieścić w katalogu /etc/snmp. Jeśli
konieczna jest inna lokalizacja, należy również pamiętać o zmianie ścieżki w pliku
snmptrapd.conf. Skrypt passive_itsupervisor po przetworzeniu komunikatu trap,
wysyła dane do Nagiosa za pomocą narzędzia send_nsca z parametrem ścieżki do
pliku konfiguracyjnego send_nsca.cfg, który powinien znajdować się w katalogu
/etc. Jeśli jego lokalizacja jest inna należy również odpowiednio zmienić ścieżkę
bezpośrednio w skrypcie passive_itupervisor.
Ponieważ identyfikacja hostów i usług w monitorowaniu pasywnym opiera się na ich
nazwach, ważne aby konfiguracja nazw była identyczna w kontrolerze jak i w plikach
konfiguracyjnych Nagiosa. Jako nazwę hosta (pole host_name w sekcji define host
w pliku itsupervisor.cfg) należy przyjąć nazwę parametru MIB SysName,
konfigurowalną w zakładce SCADA / NMS kontrolera. Natomiast jako nazwy usług
(pola service_description w sekcji define service w pliku itsupervisor.cfg) należy
przyjąć nazwy czujników / wejść dwustanowych konfigurowalnych w zakładkach
Sensors i Inputs kontrolera.
Electronic Power And Market Sp. z o.o. ul. Junacka 7 78–400 Szczecinek tel. 94 37 236 00 fax. 94 37 249 13
www.epm.com.pl e–mail: [email protected]
Wersja 1.0
5. KONFIGURACJA KONTROLERA DO WSPÓŁPRACY Z NAGIOSEM
Do prawidłowej współpracy kontrolera ITSupervisor z systemem Nagios, konieczna
jest również odpowiednia konfiguracja parametrów kontrolera. Na rysunkach 2, 3 i 4
przedstawiono istotne parametry konfiguracyjne wraz z komentarzem.
Agent SNMP musi być włączony
Port agenta SNMP, pierwszy parametr
komendy check_command w definicji
usługi
Port na którym nasłuchuje deamon
snmptrapd, na ten port kontroler
wysyła komunikaty trap
Community do odczytu danych
z kontrolera, drugi parametr komendy
check_command w definicji usług
Community dla komunikatów trap,
występuje w pliku snmptrapd.conf
przy monitorowaniu pasywnym
Adres IP serwera gdzie działa deamon
snmptrapd (Nagios), tam kierowane są
komunikaty trap
Przy monitorowaniu pasywnym należy
ustawić identyczną nazwę hosta
w sekcji define host plik itsupervisor.cfg
Rys. 2. Konfiguracja parametrów protokołu SNMP do współpracy z systemem Nagios
Przy monitorowaniu pasywnym muszą być
aktywne powiadomienia Trap
Przy monitorowaniu pasywnym należy
ustawić identyczne nazwy usług w sekcji
define service w pliku itsupervisor.cfg
Rys. 3. Konfiguracja parametrów czujników do współpracy z systemem Nagios
Przy monitorowaniu pasywnym muszą być
aktywne powiadomienia Trap
Przy monitorowaniu pasywnym należy
ustawić identyczne nazwy usług w sekcji
define service w pliku itsupervisor.cfg
Rys. 4. Konfiguracja wejść dwustanowych do współpracy z systemem Nagios
Electronic Power And Market Sp. z o.o. ul. Junacka 7 78–400 Szczecinek tel. 94 37 236 00 fax. 94 37 249 13
www.epm.com.pl e–mail: [email protected]
Wersja 1.0

Podobne dokumenty