MONITORING SIECI - APC UPS Smart


Tym razem zajmę się wstawieniem do systemu Nagios Core, zasilacza awaryjnego firmy APC - model Smart 3000 wyposażonego w kartę sieciową i czujnik zewnętrzny temperatury.

Karta sieciowa w UPS jest wymagana do komunikacji. Zewnętrzny czujnik temperatury może nas uchronić od awarii w wyniku uszkodzenia klimatyzacji i przegrzania sprzętu.

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

APC - Nagios Core

Na koniec wyjaśnie jaką rolę pełnią ikony przy nazwie hosta i serwisie "Temp", oraz co można poprawić w tym widoku.

Krok 1 - Dodanie deklaracji hosta

Tworzymy nowy plik CFG lub dodajemy do istniejącego - np.


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

Dodajemy poniższy kod do pliku


# 01cin_ups - APC UPS Smart 3000

define host {
  use generic-host ; predefiniowane ustawienia
  host_name 01cin_ups ; po tej nazwie Nagios będzie identyfikował urzadzenie
  alias 01cin_ups ; opis urządzenia
  display_name 01cin_ups ; wyświetlana nazwa hosta w Nagiosie
  parents 00stack ; do jakiego urządzenia jest bezpośrednio podłaczone
  address 192.168.0.2 ; adres IP pod jakim jest dostępne urządzenie
  register 1 ; zarejestrowanie urządzenia
  }

Krok 2 - Utworzenie grupy serwisowej

Tworzymy nowy plik CFG np.


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

Dodajemy poniższy kod do pliku


# APC - SERVICE GROUP

define servicegroup {
  servicegroup_name apc ; nazwa grupy, wg niej jest wyświetlana kolejność w oknie Service Groups
  alias Zasilacze APC
  }

Krok 3 - Zdefiniowanie wzorca dla serwisów

Do utworzonego wcześniej pliku apc.cfg dodajemy poniższy kod


# APC - SERVICE TEMPLATES

define service {
  name apc-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 apc ; wszystkie serwisy utworzone na podstawie tego wzorca będą widziane w tej grupie serwisowej
  host_name 01cin_ups ; wszystkie urządzenia zadeklarowane w tym miejscu będą korzystały z tego wzorca oraz powiązanych serwisów.
  }

Krok 4 - Zdefiniowanie serwisów odpytujących urządzenie

Do utworzonego wcześniej pliku apc.cfg dodajemy poniższy kod

# Odpytanie w celu uzyskania informacji o temperaturze rejestrowanej z czujnika zewnętrznego

define service{
  use apc-service ; deklarowanie z jakiego wzorca ma korzystać
  display_name Temp ; deklarowanie etykiety serwisu widzianej w Nagiosie
  service_description Temp ; opis serwisu
  register 1 ; zarejestrój serwis
  check_command check_snmp! -w 28 -c 38 -o iemStatusProbeCurrentTemp.1 -l "stopni"
  }

# Odpytanie w celu uzyskania informacji o statusie urządzenia

define service{
  use apc-service ; deklarowanie z jakiego wzorca ma korzystać
  display_name Status ; deklarowanie etykiety serwisu widzianej w Nagiosie
  service_description Status ; opis serwisu
  register 1 ; zarejestrój serwis
  check_command check_snmp! -o mib-2.33.1.1.2.0 -l "" -o mib-2.33.1.1.2.0 -l 'Model:' -o .1.3.6.1.4.1.318.1.1.1.1.2.3.0 -l 'Serial Number:' -o .1.3.6.1.4.1.318.1.1.1.1.2.1.0 -l 'Firmware:' -o .1.3.6.1.4.1.318.1.1.1.2.1.1.0 -w 3 -c 4 -l 'UPS Status:'
  }

# Odpytanie w celu uzyskania informacji o statusie zasilania

define service{
  use apc-service ; deklarowanie z jakiego wzorca ma korzystać
  display_name Power ; deklarowanie etykiety serwisu widzianej w Nagiosie
  service_description Power ; opis serwisu
  register 1 ; zarejestrój serwis
  check_command check_snmp! -o .1.3.6.1.4.1.318.1.1.1.3.2.1.0 -l 'Input Voltage:' -u 'Volts,' -o .1.3.6.1.4.1.318.1.1.1.4.2.1.0 -l 'Output Voltage:' -u 'Volts,' -o .1.3.6.1.4.1.318.1.1.1.4.2.4.0 -l 'Output Current:' -u 'Amperes,' -o .1.3.6.1.4.1.318.1.1.1.2.2.4.0 -l 'Status Batteries:' -u '(1=OK 2=Replace Batteries),' -o .1.3.6.1.4.1.318.1.1.1.2.2.1.0 -l 'Battery Charge:' -u '%'
  }

# Odpytanie w celu uzyskania informacji o Up Time

define service{
  use apc-service ; deklarowanie z jakiego wzorca ma korzystać
  display_name Up Time ; deklarowanie etykiety serwisu widzianej w Nagiosie
  service_description Up Time ; opis serwisu
  register 1 ; zarejestrój serwis
  check_command check_snmp! -o .1.3.6.1.2.1.1.3.0 -l 'UP Time:'
  }

UWAGI

W tym przykładzie chciałem pokazać możliwości łączenia w jednym zapytaniu odpytywania kilku OID. Bardzo przydatna funkcja ale ..

  • najlepiej używać w przypadku pobierania stałych informacji np. nazwa, lokalizacja, model, nr seryjny itp.
  • trzeba sprawdzić czy wzorzec komendy ma zadeklarowaną odpowiednią ilość argumentów - w przypadku potrzeby dodać.
#przed dodaniem

check_snmp -H $HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $ARG4$

#po dodaniu

check_snmp -H $HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $ARG4$ $ARG5$ $ARG6$ $ARG7$ $ARG8$

Ikonki i ich funkcje

Ikonka wykresu przy nazwie "01cin_ups"

Naciśnięcie ikony powodu otworzenie nowej zakładki przeglądarki Internetowej i połączenie z panelem zarządzającym UPS-a. Uzyskuje się to przez dodanie deklaracji "action_url" do hosta.

Ikonka "APC" przy nazwie "01cin_ups"

Naciśnięcie ikony powodu otworzenie okna ze statusem serwisu powiązanego z hostem - domyślnie jest to PING. Ikonę uzyskuje się przez dodanie deklaracji "icon_image". Zgodnie ze sztuką CSS warto jest opisać ikonę przez deklaracje "icon_image_alt".
Wszystko dodajemy do deklaracji hosta. Wstawiamy plik graficzny o rozdzielczości 40x40 pikseli do lokalizacji:

#/usr/local/nagios/share/images/logos/apc.png

Po dodaniu powyższych deklaracji, definicja hosta przyjmuje postać:

# 01cin_ups - APC UPS Smart 3000

define host {
  use generic-host ; predefiniowane ustawienia
  host_name 01cin_ups ; po tej nazwie Nagios będzie identyfikował urzadzenie
  alias 01cin_ups ; opis urządzenia
  display_name 01cin_ups ; wyświetlana nazwa hosta w Nagiosie
  parents 00stack ; do jakiego urządzenia jest bezpośrednio podłaczone
  address 192.168.0.2 ; adres IP pod jakim jest dostępne urządzenie
  action_url https://192.168.0.2 ; panel www zasilacza apc
  icon_image apc.png ; ikona zasilacza apc
  icon_image_alt APC Smart-UPS ; opis ikony zasilacza apc
  register 1 ; zarejestrowanie urządzenia
  }

Ikonka wykresu przy serwisie "Temp"

Naciśnięcie ikony powodu otworzenie nowego okna zakładki przeglądarki Internetowej i wyświetlenie wykresów generowanych na podstawie pobieranych temperatur w funkcji czasu. Uzyskuje się to przez dodanie deklaracji "action_url" do serwisu.

Skorzystanie z tej opcji, wymaga zainstalowania pluginu pnp4nagios


# Odpytanie w celu uzyskania informacji o temperaturze rejestrowanej z czujnika zewnętrznego

define service{
  use apc-service ; deklarowanie z jakiego wzorca ma korzystać
  display_name Temp ; deklarowanie etykiety serwisu widzianej w Nagiosie
  service_description Temp ; opis serwisu
  register 1 ; zarejestrój serwis
  check_command check_snmp! -w 28 -c 38 -o iemStatusProbeCurrentTemp.1 -l "stopni"
  action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=$SERVICEDESC$
  }

APC temperatura - Nagios Core


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