MONITORING SIECI - SonicWall NSA 2400 część 2
Dodawanie nowego urządzenia w Nagiosa Core polega na tworzeniu wpisów w istniejących lub nowo utworzonych plikach z rozszerzeniem CFG.
Ścieżka dostępowa do plików konfiguracyjnych:
Struktura katalogu etc:
htpasswd | miejsce przechowywania uwierzytelnień do systemu Nagios |
---|---|
nagios.cfg | plik konfiguracyjny systemu Nagios |
resource.cfg | zdefiniowane zasoby z których korzysta Nagios |
object | katalog z plikami konfiguracyjnymi monitoringu |
object/templates.cfg | predefiniowane ustawienia dla hostów i serwisów |
object/contacts.cfg | miejsce do zdefiniowania wysyłanych powiadomień |
object/commands.cfg | zdefiniowane komendy |
object/timeperiods.cfg | predefiniowane ustawienia związane z czasem |
Dodanie urządzenia do monitoringu polega wykonaniu następujących kroków:
- Dodanie deklaracji hosta
- Utworzenie grupy serwisowej
- Zdefiniowanie wzorca dla serwisów
- Zdefiniowanie serwisów odpytujących urządzenie
- Sprawdzenie poprawności konfiguracji
- Restart serwisów w celu wczytania nowej konfiguracji przez Nagios
opcjonalnie:
- Zdefiniowanie wzorcowej komendy na potrzeby tworzonych serwisów
- Wskazanie lokalizacji nowo utworzonego pliku konfiguracyjnego w pliku nagios.cfg
Wprowadzenie poniższej konfiguracji powinno utworzyć widok w Nagiosie Core:
Krok 1 - Dodanie deklaracji hosta
Tworzymy nowy plik CFG np.
Dodajemy poniższy kod do pliku
use | generic-host | ; predefiniowane ustawienia | |
host_name | 00soncwall | ; po tej nazwie Nagios będzie identyfikował urzadzenie | |
alias | 00soncwall | ; opis urządzenia | |
display_name | 00soncwall | ; wyświetlana nazwa hosta w Nagiosie | |
parents | 00stack | ; do jakiego urządzenia jest bezpośrednio podłaczone | |
address | 192.168.0.1 | ; adres IP pod jakim jest dostępne urządzenie | |
register | 1 | ; zarejestrowanie urządzenia | |
} |
Parametr "parents" wskazuje do jakiego urządzenia jest bezpośrednio podłączony wprowadzony host, należy wpisać nazwę hosta zadeklarowaną w Nagiosie. Na podstawie tego parametru tworzona jest mapa powiązań.
Warto wcześniej zastanowić się nad nazywnictwem wprowadzonych urządzeń. Nagios ma wbudowany mechanizm automatycznego przypisania urządzeń do zadeklarowanych grup na podstawie pierwszych znaków zadeklarowanych nazw urządzeń.
Jeżeli utworzymy grupę jak poniżej, to wszystkie urządzenia, których zadeklarowana nazwa zaczyna się od ciągu znaków "00" będą przypisane do jednej grupy, w tym przypadku nazwanej - "centrala".
hostgroup_name | centrala | ; nazwa grupy, wg niej jest wyświetlana kolejność w oknie Host Groups | |
alias | 00 - Kolokacja | ; Długa nazwa grupy | |
members | 00*, | ; wszystkie urządzenia których nazwa zaczyna się od ciągu znaków "00" | |
} |
Krok 2 - Utworzenie grupy serwisowej
Tworzymy nowy plik CFG np
Dodajemy poniższy kod do pliku
servicegroup_name | sonicwall | ; nazwa grupy, wg niej jest wyświetlana kolejność w oknie Service Groups | |
alias | Sonic Wall | ||
} |
Powyżej utworzona grupa serwisowa ma na celu zebranie wszystkich hostów, które będą odpytywane w ten sam sposób - np. switche.
Krok 3 - Zdefiniowanie wzorca dla serwisów
Do utworzonego wcześniej pliku sonicwall.cfg dodajemy poniższy kod
name | sonic-service | ; deklarowana nazwa wzorcowej formatki do której będą się odwoływały utworzone serwisy | |
use | generic-service | ; predefiniowane ustawienia w pliku templates.cfg | |
max_check_attempts | 4 | ; wykona max 4 nieudane odpytania | |
check_interval | 60 | ; sprawdza serwis co .. minut | |
retry_interval | 1 | ; sprawdza serwis raz na minutę po serii nieudanych odpytaniach | |
register | 0 | ; wzorce nie należy rejestrować | |
servicegroups | sonicwall | ; wszystkie serwisy utworzone na podstawie tego wzorca będą widziane w tej grupie serwisowej | |
host_name | 00_sonicwall | ; wszystkie urządzenia zadeklarowane w tym miejscu będą korzystały z tego wzorca oraz powiązanych serwisów. | |
} |
Utworzyliśmy część wspólną dla wszystkich przyszłych serwisów na potrzeby monitorowania SonicWall.
Od tej pory, jeżeli będziemy chcieli dodać sprzęt, który będzie korzystać z tego wzorca i powiązanych serwisów wystarczy:
- Powielić krok 1 - utworzyć deklaracje dla nowego hosta
- Dodać zadeklarowaną wartość "host_name" w kroku 1 do analogicznego parametru w istniejącej definicji wzorca serwisów.
- Powielić krok 5 - sprawdzenie konfiguracji.
- Powielić krok 6 - restart serwisów
Załóżmy, że utworzyliśmy host o nazwie "01_sonicwall", to we wzorcu serwisu należy zmodyfikowany wpis jak poniżej
name | sonic-service | ; deklarowana nazwa wzorcowej formatki | |
use | generic-service | ; predefiniowane ustawienia | |
max_check_attempts | 4 | ; wykona max 4 nieudane odpytania | |
check_interval | 60 | ; sprawdza serwis co .. minut | |
retry_interval | 1 | ; sprawdza serwis raz na minutę po serii nieudanych odpytaniach | |
register | 0 | ; wzorce nie należy rejestrować | |
servicegroups | sonicwall | ; dodanie do grupy serwisowej utworzonej w poprzednim kroku | |
host_name | 00_sonicwall, 01_sonicwall | ||
} |
OPCJA - Zdefiniowanie wzorcowej komendy na potrzeby tworzonych serwisów
Nagios daje możliwość tworzenia nowych poleceń lub modyfikowanie istniejących - można je znaleźć w pliku commands.cfg
Podstawowym komendą zapytań SNMP jest plugin check_snmp, który ma definicje:
command_name | check_snmp | ||
command_line | $USER1$/check_snmp -H $HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $ARG4$ | ||
} |
gdzie:
$HOSTADDRESS$ to adres IPv4 lub nazwa DNS. Wykorzystuje wartość parametru "address" zdefiniowanego hosta.
$ARG1$ przyjmuje argumenty zadeklarowane przez użytkownika
Powyższa komenda odwołuje się do pluginu check_snmp w lokalizacji zadeklarowanej w pliku resource.cfg
Komenda z wiersza poleceń będzie miało postać:
Z poziomu Nagios:
Wykorzystaliśmy wszystkie argumenty zadeklarowane we wzorcu i za pomocą tej definicji nie jesteśmy w stanie uzyskać nic więcej.
Aby to obejść możemy stworzyć własną definicje komendy w oparciu check_snmp
command_name | check_snmp_com | ; deklarowana nazwa wzorcowej komendy | |
command_line | $USER1$/check_snmp -H $HOSTADDRESS$ -C public $ARG1$ $ARG2$ $ARG3$ $ARG4$ $ARG5$ $ARG6$ $ARG7$ $ARG8$ $ARG9$ $ARG10$ $ARG11$ $ARG12$ | ||
} |
Od tego momentu możemy w Nagiosie używać polecenia
i mamy do dyspozycji jeszcze 10 argumentów co umożliwia w jednej komendzie odczytanie np. kilku OID, wstawienie etykiety, ustawienie znaczników itd.
Krok 4 - Zdefiniowanie serwisów odpytujących urządenie
Do utworzonego wcześniej pliku sonicwall.cfg dodajemy poniższy kod
use | sonic-service | ; deklarowanie z jakiego wzorca ma korzystać | |
display_name | 01 System name | ; deklarowanie etykiety serwisu widzianej w Nagiosie | |
service_description | 01 System name | ; opis serwisu | |
register | 1 | ; zarejestrój serwis | |
check_command | check_snmp_com! -o sysDescr.0 -l " " -o snwlSysSerialNumber.0 -l "SN: " | ||
} |
use | sonic-service | ; deklarowanie z jakiego wzorca ma korzystać | |
display_name | 02 Location | ; deklarowanie etykiety serwisu widzianej w Nagiosie | |
service_description | 02 Location | ; opis serwisu | |
register | 1 | ; zarejestrój serwis | |
check_command | check_snmp_com! -o sysLocation.0 -l " " | ||
} |
use | sonic-service | ; deklarowanie z jakiego wzorca ma korzystać | |
display_name | 03 Hardware firmware and rom | ; deklarowanie etykiety serwisu widzianej w Nagiosie | |
service_description | 03 Hardware firmware and rom | ; opis serwisu | |
register | 1 | ; zarejestrój serwis | |
check_command | check_snmp_com! -o sysDescr.0 -l " " -o snwlSysROMVersion.0 -l "Rom ver." | ||
} |
use | sonic-service | ; deklarowanie z jakiego wzorca ma korzystać | |
display_name | 05 Up Time | ; deklarowanie etykiety serwisu widzianej w Nagiosie | |
service_description | 05 Up Time | ; opis serwisu | |
register | 1 | ; zarejestrój serwis | |
check_command | check_snmp_com! -o sysUpTime.0 -l " " | ||
} |
use | sonic-service | ; deklarowanie z jakiego wzorca ma korzystać | |
display_name | 06 CPU utilication | ; deklarowanie etykiety serwisu widzianej w Nagiosie | |
service_description | 06 CPU utilication | ; opis serwisu | |
register | 1 | ; zarejestrój serwis | |
check_command | check_snmp_com! -o sonicCurrentCPUUtil.0 -l "CPU utilication:" -u "%" | ||
} |
use | sonic-service | ; deklarowanie z jakiego wzorca ma korzystać | |
display_name | 07 RAM utilication | ; deklarowanie etykiety serwisu widzianej w Nagiosie | |
service_description | 07 RAM utilication | ; opis serwisu | |
register | 1 | ; zarejestrój serwis | |
check_command | check_snmp_com! -o sonicCurrentCPUUtil.0 -l "RAM utilication:" -u "%" | ||
} |
use | sonic-service | ; deklarowanie z jakiego wzorca ma korzystać | |
display_name | X5 HA Link status | ; deklarowanie etykiety serwisu widzianej w Nagiosie | |
service_description | X5 HA Link status | ; opis serwisu | |
register | 1 | ; zarejestrój serwis | |
check_command | check_snmp_com! -o ifOperStatus.6 -w 2,3,4,5,6,7 -l "up(1) down(2) => " | ||
} |
Krok 5 - Sprawdzenie poprawności konfiguracji
Poniższa komenda z wiersza poleceń weryfikuje czy wprowadzone zmiany w konfiguracji nie zawierają błędów. W przypadku problemów zostaną wskazane miejsca nie zrozumiałe dla systemu Nagios.
Krok 6 - Restart serwisów w celu wczytania nowej kofiguracji przez Nagios
# systemctl restart httpd
Podsumowanie
Zostały utworzone dwa nowe pliki konfiguracjyne:
- host.cfg zawiera:
- definicje urządzenia - host
- grupę urządzeń - hostgroup - sonicwall.cfg zawiera:
- grupę serwisową - serivcegroup
- wzorcowy serwis - service
- serwisy odpytujące urządzenia - service
Jeżeli urządzenie nie będzie widoczne w monitoringu, należy sprawdzić, czy Nagios ma dostęp do utworzonych plików konfiguracyjnych - zawartość pliku nagios.cfg
Dostęp można przydzielić na dwa sposoby (poprzez dodanie wpisu):
- wskazanie poszczególnych plików
cfg_file=/usr/local/nagios/etc/objects/sonicwall.cfg
- wskazanie całego katalogu
Artykuły powiązane:
MONITORING SIECI | |
---|---|
Nagios | rozwiązanie do monitorowania urządzeń sieciowych |
Protokół SNMP | używany w monitoringu urządzeń |
Plugin check_snmp | najpopularniejsza wtyczka Nagios Core |
Plugin check_vpn.pl | wtyczka do monitorowania stanu kanału VPN w ruterach SonicWall |
Plugin snmpwalk | plugin do odpytywania urządzeń w celu pozyskania OID z urządzenia |
SonicWall NSA 2400 część 1 | przykład odpytywania urządzenia z poziomu wiersza poleceń |
SonicWall NSA 2400 część 2 | dodanie rutera do Nagios Core |
APC UPS Smart | dodanie UPS-a do Nagios Core |