SNMP nadzor u sistemu Odoo 19: granična vrijednost prekoračena, tiket otvoren
Serveri, mrežni preklopnici, UPS uređaji, temperaturni senzori u serverskoj prostoriji: gotovo sve što je povezano na mrežu podržava SNMP i može dati informacije o svom stanju. Pitanje je samo ko ih prati — i šta se dešava kada neka vrijednost izađe iz dozvoljenih okvira.
Za infrastrukturu koju održavamo za svoje klijente sada smo cijeli taj proces objedinili na jednom mjestu: naš Odoo 19 očitava podatke s uređaja, poredi ih s graničnim vrijednostima i, kada se dostigne granica, otvara tiket u službi podrške — za klijenta kojem uređaj pripada. Ne koristimo zaseban sistem za nadzor koji šalje e-poruke službi podrške, nego isti sistem u kojem su klijent, uređaj i tiket već povezani.
Modul smo razvili za vlastite potrebe. Nije objavljen za zajednicu poput naših modula za bankovne izvode ili e-račune, nego je dio naše interne platforme za podršku — kao i praćenje, o kojem smo nedavno pisali.
Od izmjerene vrijednosti do tiketa
Postupak je namjerno jednostavan:
- Uređaj se kreira s adresom i pristupnim podacima (SNMP v1, v2c ili v3 s autentifikacijom i šifriranjem). Pri spremanju Odoo preuzima opis sistema, naziv sistema i uptime – najiskrenija potvrda da su adresa i pristupni podaci ispravni.
- Za uređaj se definiraju mjerne tačke: OID, mjerna jedinica i pripadnost klijentu.
- Prema rasporedu se očitavaju sve aktivne mjerne tačke. Veza se uspostavlja jednom po uređaju, a ne za svaku mjernu tačku — kod dvadeset OID-ova na jednom mrežnom preklopniku to je razlika između jedne i dvadeset sesija.
- Za svaku mjernu tačku mogu se pratiti granične vrijednosti: gornja granica, donja granica ili obje.
- Kada vrijednost izađe izvan granice, kreira se tiket u službi podrške.
Jedan tiket po incidentu, a ne po mjerenju
Najvažnija tačka u logici alarma: Računa se samo promjena stanja. Ko kod svakog mjerenja stvara tiket, nakon noći s zaglavljenim ili treperavim senzorom ima tri stotine tiketa – to nije alarmiranje, to je zamagljivanje.
Modul zato za svaku tačku podataka pamti nalazi li se u stanju „Normalno“ ili „Alarm“. Pri prvom prekoračenju granice stanje se mijenja, poruka završava u chatteru uređaja i otvara se tiket – s pogođenim kupcem kao partnerom, s tačkom podataka, uređajem, izmjerenom vrijednošću i prekršenom granicom u tekstu. Dok vrijednost ostaje izvan granice, ne događa se ništa dalje: tiket je otvoren, naši tehničari znaju.
Kada se vrijednost vrati u normalan raspon, modul u isti tiket upisuje obavijest o prestanku alarma i uklanja vezu s njim. O tome hoće li se tiket zatvoriti i dalje odlučuje čovjek — kratkotrajan pad vrijednosti ispod granice još ne znači da je uzrok otklonjen.
Granične vrijednosti provjeravaju se pri svakom mjerenju, bez obzira na to pohranjuje li se vrijednost. Stalno previsoka vrijednost i dalje znači alarm. A alarm nikada ne smije izostati zato što se tiket ne može kreirati — ako kreiranje ne uspije, zapis u dnevniku i poruka ipak ostaju uz uređaj.
Pohranjivati samo ono što se mijenja
Mjerna tačka koja se očitava svakih pet minuta daje 105.000 vrijednosti godišnje. Kod stotinu mjernih tačaka to je više od deset miliona redova — za vrijednosti koje se uglavnom uopće nisu promijenile.
Zato se pohranjuju samo vrijednosti koje se od posljednje pohranjene razlikuju za više od podešenog praga — za svaku mjernu tačku kao apsolutna razlika (naprimjer 0,5 °C), kao postotno odstupanje ili pri svakoj promjeni. Trenutna vrijednost i vrijeme posljednjeg očitavanja ipak su uvijek dostupni na mjernoj tački; smanjuje se samo broj zapisa u historiji.
Može se podesiti i gdje se vrijednosti pohranjuju: u Odoo bazu podataka, u MongoDB ili kao CSV datoteke u Odoo spremište datoteka. Time mjerne vrijednosti držimo izvan ERP baze podataka — prema istom principu kao i podatke o pozicijama u sistemu za praćenje. Historija se u svakom slučaju može prikazati dijagramom, a pri objedinjavanju po satima prikazuje se prosjek, ne zbir.
Zauzetost u postocima umjesto u bajtovima
Neke veličine nisu direktno dostupne na uređaju. Zauzetost particije mora se izračunati iz zauzetog prostora i ukupnog kapaciteta; temperaturni senzori često daju skalirane cijele brojeve — 235 za 23,5 stepeni.
Zato mjerna tačka može preuzeti vrijednost onako kako je uređaj šalje, pomnožiti je faktorom ili izračunati kao postotak vrijednosti drugog OID-a. To je presudno za granične vrijednosti: granica od 90 % vrijedi za svaki kapacitet diska. Granica u gigabajtima morala bi se zasebno ažurirati za svaki disk.
Niko ne mora znati OID-ove napamet
Na Windows i Linux serverima HOST-RESOURCES-MIB je standardiziran: diskovi i radna memorija nalaze se na poznatom mjestu. Funkcija prepoznavanja uređaja čita tabelu, preračunava zauzetost u postotke i jednim klikom kreira mjerne tačke zajedno s pragom alarma.
Za sve ostalo postoji SNMP preglednik koji prolazi kroz OID stablo i prikazuje svaki pronađeni OID s trenutnom vrijednošću — te, ako je poznat u katalogu, s nazivom, opisom i mjernom jedinicom iz uvezenog MIB-a proizvođača. Dovoljno je označiti željene stavke.
Šta naši klijenti time dobijaju
Uređaji i mjerne tačke povezani su s klijentima. Na korisničkom portalu pod Moje SNMP vrijednosti možete pronaći trenutne mjerne vrijednosti svojih uređaja i dijagram historije za posljednja 24 sata, 7 dana, 30 dana ili 12 mjeseci — iste vrijednosti koje vidimo i mi. Vidljivo je isključivo ono što je povezano s vašom firmom.
A kada se prekorači granična vrijednost, ne morate ništa poduzimati: tiket je već kod nas, s uređajem, vrijednošću i vremenom, prije nego što to i primijetite.
Šta modul namjerno ne obuhvata
Modul nije zamjena za potpuni sistem nadzora s provjerama dostupnosti, lancima eskalacije i stablima zavisnosti. Ne prima SNMP trap obavijesti, nego aktivno očitava podatke. I nijedan tiket ne zatvara automatski — obavijest o prestanku alarma je poruka, a ne promjena statusa.
Riječ je o jednom jedinom putu: od izmjerene vrijednosti, preko prekoračenja granice, do tehničara koji će reagirati. Taj je put sada najkraći mogući.
Ako želite uključiti svoje servere, mrežne uređaje ili senzore u ovaj nadzor, javite nam se.