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:


#/usr/local/nagios/etc/

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:

  1. Dodanie deklaracji hosta
  2. Utworzenie grupy serwisowej
  3. Zdefiniowanie wzorca dla serwisów
  4. Zdefiniowanie serwisów odpytujących urządzenie
  5. Sprawdzenie poprawności konfiguracji
  6. Restart serwisów w celu wczytania nowej konfiguracji przez Nagios

opcjonalnie:

  1. Zdefiniowanie wzorcowej komendy na potrzeby tworzonych serwisów
  2. Wskazanie lokalizacji nowo utworzonego pliku konfiguracyjnego w pliku nagios.cfg

Wprowadzenie poniższej konfiguracji powinno utworzyć widok w Nagiosie Core:

Monitoring SonicWALL NSA 2400

Krok 1 - Dodanie deklaracji hosta

Tworzymy nowy plik CFG np.


#/usr/local/nagios/etc/object/host.cfg

Dodajemy poniższy kod do pliku


# 00soncwall - SonicWALL NSA 2600

define host {
  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".


define hostgroup {
  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


#/usr/local/nagios/etc/object/sonicwall.cfg

Dodajemy poniższy kod do pliku


# SonicWall - SERVICE GROUP

define servicegroup {
  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


# SonicWall - SERVICE TEMPLATES

define service {
  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


# SonicWall - SERVICE TEMPLATES

define service {
  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:


define command {
  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ć:


#./check_snmp -H 192.168.0.1 -C public -o sysUpTime.0

Z poziomu Nagios:


check_snmp! -C public -o sysUpTime.0

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


# SonicWall - SNMP command

define command {
  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


check_snmp_com! -o sysUpTime.0

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

# Odpytanie w celu uzyskania informacji o systemie i nr seryjnym urządzenia

define service{
  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: "
  }

# Odpytanie w celu uzyskania informacji - lokalizacji

define service{
  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 " "
  }

# Odpytanie w celu uzyskania informacji - sprzęt i rom

define service{
  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."
  }

# Odpytanie w celu uzyskania informacji - UpTime

define service{
  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 " "
  }

# Odpytanie w celu uzyskania informacji o zajętości procesora

define service{
  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 "%"
  }

# Odpytanie w celu uzyskania informacji o zajętości pamięci

define service{
  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 "%"
  }

# Odpytanie w celu uzyskania informacji o statusie linku do HA

define service{
  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.


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

Krok 6 - Restart serwisów w celu wczytania nowej kofiguracji przez Nagios

# systemctl restart 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/host.cfg
cfg_file=/usr/local/nagios/etc/objects/sonicwall.cfg

  • wskazanie całego katalogu
cfg_dir=/usr/local/nagios/etc/objects

Spis treści

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

Copyright ©2021 Tomasz Blauth