Monitoring SNMP w Odoo 19: przekroczona wartość graniczna, zgłoszenie otwarte
Serwery, switche, zasilacze UPS, czujniki temperatury w serwerowni: prawie wszystko, co jest podłączone do sieci, mówi językiem SNMP i może udzielić informacji o swoim stanie. Pytanie tylko, kto słucha – i co się dzieje, gdy jakaś wartość wymyka się spod kontroli.
Dla infrastruktury, którą obsługujemy dla naszych klientów, umieściliśmy teraz cały ten łańcuch w jednym miejscu: nasze Odoo 19 odpytuje urządzenia, porównuje wartości z wartościami granicznymi, a gdy granica zostanie osiągnięta, otwiera zgłoszenie w helpdesku – u klienta, do którego należy urządzenie. Nie oddzielny system monitoringu, który wysyła e-maile do helpdesku, lecz ten sam system, w którym klient, urządzenie i zgłoszenie i tak są ze sobą powiązane.
Moduł opracowaliśmy na potrzeby własnej działalności. Nie jest to publikacja dla społeczności jak nasze moduły do wyciągów bankowych czy e-faktur, lecz część naszej wewnętrznej platformy obsługi – tak jak lokalizacja, o której pisaliśmy ostatnio.
Od wartości pomiaru do zgłoszenia
Przebieg jest celowo prosty:
- Urządzenie jest tworzone z adresem i danymi dostępowymi (SNMP v1, v2c lub v3 z uwierzytelnianiem i szyfrowaniem). Przy zapisie Odoo pobiera opis systemu, nazwę systemu i uptime – najbardziej uczciwe potwierdzenie, że adres i dane dostępowe są prawidłowe.
- Na urządzeniu definiuje się punkty danych: OID, jednostkę, przypisanie do klienta.
- Harmonogram odpytuje wszystkie aktywne punkty danych. Dla każdego urządzenia łączy się raz, a nie dla każdego punktu danych – przy dwudziestu OID na switchu to różnica między jedną a dwudziestoma sesjami.
- Każdy punkt danych może monitorować wartości graniczne: górną granicę, dolną granicę lub obie.
- Jeśli granica zostanie przekroczona, powstaje zgłoszenie w helpdesku.
Jedno zgłoszenie na incydent, nie na pomiar
Najważniejszy punkt w logice alarmowania: liczy się tylko zmiana stanu. Kto tworzy zgłoszenie przy każdym pomiarze, ma po nocy z zacinającym się lub drgającym czujnikiem trzysta zgłoszeń – to nie jest alarmowanie, to zamglenie obrazu.
Moduł zapamiętuje więc dla każdego punktu danych, czy znajduje się on w stanie „Normalny” czy „Alarm”. Przy pierwszym przekroczeniu granicy stan się zmienia, wiadomość trafia do chattera urządzenia i otwierane jest zgłoszenie – z danym klientem jako partnerem, z punktem danych, urządzeniem, zmierzoną wartością i naruszoną granicą w treści. Dopóki wartość pozostaje poza granicą, nic więcej się nie dzieje: zgłoszenie jest otwarte, nasi technicy wiedzą o sprawie.
Gdy wartość wraca do normy, moduł zapisuje w tym samym zgłoszeniu odwołanie alarmu i rozwiązuje powiązanie. Czy zgłoszenie zostanie wtedy zamknięte, nadal decyduje człowiek – wartość, która na krótko spada poniżej granicy, nie oznacza jeszcze, że przyczyna została usunięta.
Wartości graniczne są sprawdzane przy każdym pomiarze, niezależnie od tego, czy wartość jest zapisywana. Stale zbyt wysoka wartość pozostaje alarmem. A alarm nigdy nie może zawieść dlatego, że nie da się utworzyć zgłoszenia – jeśli utworzenie się nie powiedzie, protokół i wiadomość przy urządzeniu mimo to pozostają.
Zapisywać tylko to, co się zmienia
Punkt danych odpytywany co pięć minut daje 105 000 wartości rocznie. Przy stu punktach danych to ponad dziesięć milionów wierszy – dla wartości, które najczęściej w ogóle się nie zmieniły.
Zapisywane jest więc tylko to, co różni się od ostatniej zapisanej wartości o więcej niż ustawiony próg – dla każdego punktu danych jako różnica bezwzględna (np. 0,5 °C), jako odchylenie procentowe lub przy każdej zmianie. Bieżąca wartość i czas ostatniego odpytania są mimo to zawsze dostępne przy punkcie danych; przerzedzany jest tylko przebieg.
Gdzie wartości są zapisywane, również można ustawić: w bazie danych Odoo, w MongoDB lub jako pliki CSV w filestore Odoo. W ten sposób trzymamy wartości pomiarowe poza bazą danych ERP – ta sama zasada co w przypadku danych pozycji lokalizacji. Przebieg można w każdym przypadku wyświetlić jako wykres, przy zagęszczeniu godzinowym jako średnią, nie jako sumę.
Zapełnienie w procentach zamiast w bajtach
Niektóre wielkości nie występują w urządzeniu jako takie. Zapełnienie partycji trzeba obliczyć z zajętej pamięci i rozmiaru całkowitego; czujniki temperatury często zwracają przeskalowane liczby całkowite – 235 dla 23,5 stopnia.
Punkt danych może więc przejąć wartość tak, jak jest zgłaszana, pomnożyć ją przez współczynnik lub obliczyć jako procent drugiego OID. Dla wartości granicznych jest to decydujące: granica 90 % obowiązuje dla każdego rozmiaru dysku. Granicę w gigabajtach trzeba by utrzymywać osobno dla każdego napędu.
Nikt nie musi znać OID na pamięć
W serwerach Windows i Linux HOST-RESOURCES-MIB jest znormalizowana: napędy i pamięć operacyjna znajdują się w znanym miejscu. Wykrywanie urządzeń odczytuje tabelę, przelicza zapełnienie na procenty i tworzy punkty danych wraz z granicą alarmową jednym kliknięciem.
Do wszystkiego innego służy przeglądarka SNMP, która przechodzi po drzewie OID i pokazuje każdy znaleziony OID z jego bieżącą wartością – oraz, jeśli jest znany w katalogu, z nazwą, opisem i jednostką z zaimportowanej MIB producenta. Wystarczy zaznaczyć.
Co nasi klienci z tego mają
Urządzenia i punkty danych są przypisane do klientów. W portalu klienta znajdą Państwo w sekcji Moje wartości SNMP bieżące wartości pomiarowe swoich urządzeń oraz przebieg z ostatnich 24 godzin, 7 dni, 30 dni lub 12 miesięcy w postaci wykresu – te same wartości, które widzimy także my. Widoczne jest wyłącznie to, co jest przypisane do Państwa firmy.
A gdy wartość graniczna zostanie przekroczona, nie muszą Państwo nic robić: zgłoszenie jest już u nas, z urządzeniem, wartością i godziną, zanim Państwo to zauważą.
Czym moduł celowo nie jest
Nie jest zamiennikiem pełnego monitoringu z kontrolami dostępności, łańcuchami eskalacji i drzewami zależności. Nie przyjmuje pułapek SNMP (traps), lecz odpytuje aktywnie. I nie zamyka żadnego zgłoszenia automatycznie – odwołanie alarmu jest wiadomością, a nie zmianą statusu.
Chodzi o dokładnie jeden odcinek: od wartości pomiaru przez granicę do technika, który się tym zajmuje. Ten odcinek jest teraz tak krótki, jak to tylko możliwe.
Jeśli chcą Państwo objąć tym nadzorem swoje serwery, urządzenia sieciowe lub czujniki, prosimy się z nami skontaktować.