
0. Uvod
Na Habr-u nisam pronašao nijedan članak o NetXMS-u, iako sam jako tražio. Iz tog razloga sam odlučio napisati ovo delo kako bih skrenuo pažnju na ovaj sistem.
Ovo je i vodič, i uputstvo, i površinski pregled mogućnosti sistema.
Ovaj članak sadrži površinsku analizu i opis mogućnosti sistema. Nije išao u dubine zbog nekoliko razloga. A i opisivanje celokupnog funkcionalnosti zahtevalo bi mnogo više od jednog članka.
Budući da sam više-manje radio samo sa Zabbix-om, u članku će se često pominjati upravo ovaj sistem radi poređenja sa predmetom. Takođe, tako se već ustalilo da se sve upoređuje sa nečim opšteprihvaćenim.
1. Što i zašto?
Sistem za nadgledanje, kao što se može videti iz definicije, je sistem koji omogućava da u bilo kojem trenutku dobijete aktuelne informacije o nekom čvoru mreže/mašini/router-u/da upišete što je potrebno.
Zašto je to potrebno – to je takođe očigledno. Kako bi se bili u toku sa dešavanjima.
Često, sistem za nadgledanje može pružiti vrlo iscrpne informacije o stanju kako infrastrukture u celini, tako i njenih pojedinačnih delova. Uz to, ako se postave obaveštenja (a bez njih svaka provala u nadgledanju je bezvredna), na izlazu dobijamo ozbiljan alat koji ne samo da omogućava pravovremeno reagovanje na već nastale vanredne situacije, već u većini slučajeva pruža mogućnost da se te vanredne situacije spreče.
2. Zašto NetXMS?
Malo offtopica za one koji vole puno reči.Kada sam bio mlad i neiskusan… Tako obično počinju sve bajke? Riječima, dok sam bio maksimalist, istraživao sam pitanje praćenja infrastrukture, a rezultat tih „istraživanja“ bio je zaključak da nema ničega boljeg od Zabbixa. U to vreme mi se zaista svidio jer može puno, ima mnogo mogućnosti, a njegovu funkcionalnost možete proširiti vlastitim skriptama, pa se može reći da može sve, pod uvjetom da znate s čim radite. No, Zabbix je prilično složen alat. Da bih se nekako snašao s njim, trebalo mi je gotovo dva tjedna. I to je bila samo faza implementacije. Nakon toga, još nekoliko tjedana za postavljanje praćenja svega što mi je tada bilo potrebno. Kada sam pokušao da skontam kako pomoću njega gledati stanje portova na usmjerivačima, malo sam istražio, prepao se i odlučio da mi to ipak nije baš toliko potrebno... Ne, stvarno je tu zastrašujuće za nekoga tko nije pripremljen odmah nakon fakulteta...
I tako, nakon nekoliko godina, sazrevši i postavši zreliji, odlučio sam da je vrijeme da osvježim znanje o sustavima praćenja. I konačno stvorim normalno, stabilno praćenje mreže, budući da je taj problem postao aktualan s rastom segmenata, povezivanjem podružnice i raznim sitnicama. Sve teče, sve se mijenja. Počeo sam testirati razne alate. Ponekad instaliram jedan sustav, ponekad drugi. I svugdje mi nešto nedostaje, nigdje nisam zadovoljan. Jedan sučelje je neugodno, za drugi je postavljanje previše zamorno, a ima i drugih problema. I tu mi se pružila prilika za NetXMS. Uzmite u obzir: tamo gdje mi je s Zabbixom trebalo dva tjedna da se snađem, s NetXMS-om sve je prošlo u par sati. Možda je to rezultat iskustva s Zabbixom, a možda se radi o samom NetXMS-u... teško je reći.
NetXMS se pokazao kao prilično jednostavan za instalaciju i postavljanje sustav. Ima verzije servera i administratorske konzole kako za Windows, tako i za Linux, može generirati grafikone, ima ugrađeni „preglednik“ koji omogućava povezivanje iz administratorske konzole s istim usmjerivačima putem httphttps protokola, a sučelje je intuitivno razumljivo, kao i agent za bilo koji operativni sustav. Ukratko, ovaj sustav se pokazao jednostavnim i praktičnim. Na prvi pogled.
Dokumentacija im, doduše, zaslužuje ocjenu 8 od 10. Osnovne informacije su navedene, ali da biste razumjeli suptilnosti, morate malo poviriti.
Glavne prednosti navedene od strane programeraDuboko praćenje mreže
Automatsko otkrivanje, vizualizacija i pretraživanje povezanih komponenti na razini 2 i 3
Potpuna podrška za SNMPv3
Aktivno otkrivanje putem skenirajućih "sondi"
Pasivno otkrivanje na temelju informacija iz kontroliranih uređaja — ARP i tablica usmjeravanja, sučelja
Praćenje aplikacija i poslužitelja
Sve glavne metrike koje očekujete: CPU, datotečni sustavi, ulaz-izlaz, memorija, promet
JMX most za praćenje Java aplikacija
Proširenja za specifične aplikacije: Oracle, MySQL, PostgreSQL, MongoDB, DB2, Tuxedo i mnoge druge
API integracije za vlastite aplikacije
Namijenjeno velikim mrežama
Jedan poslužitelj može pratiti stotine metrika na tisućama uređaja
Potpuna podrška za distribuirano praćenje i horizontalno skaliranje
Praćenje preklapajućih IP podmreža
Fleksibilna kontrola pristupa za operatore i klijente
3. Uzimamo dublje
Kako instalirati sustav — postoji cijeli administrator, dostupan na , i nema tu ništa teško, pa se na tome neću zadržavati. Najteže u instalaciji je povezivanje sustava s bazom podataka... Ovdje će razlika biti samo u odabiru DBMS-a i OS-a poslužitelja. Odabrao sam Windows (dalje, unesite podatke, i gotovo) i MSSQL, budući da ga već imam.
3.1. Uključivanje automatskog otkrivanja
Automatsko otkrivanje mrežnih čvorova može se uključiti tijekom instalacije. Ako to nije učinjeno iz nekog razloga, uvijek ga možete uključiti u "Configuration-Network Discovery" ili klikom na ikonu s istim imenom. U radnom prostoru će se pojaviti svojstva otkrivanja. Potrebno ga je uključiti, prebacivanjem u pasivni ili aktivni način, i odrediti druga svojstva, poput ispitivanih podmreža. Također ovdje možete postaviti filtre, a možete i odabrati i dodatno konfigurirati ugrađene u sustav, kao i napisati vlastite skripte. Iskreno ću reći — meni filtri nisu bili potrebni. Ali postavke izgledaju prilično prijateljski i razumljivo.
Također ovdje možete navesti zadanu SNMP zajednicu i njezine vjerodajnice (čitaj autorizacija).
3.2. Dodavanje čvorova
Uz aktivno automatsko otkrivanje, krajnje čvorove (PC, pisače) bit će automatski dodani i raspoređeni po podmrežama. Sa aktivnom mrežnom opremom sve je malo složenije.
Trebate započeti s aktiviranjem SNMP na mrežnoj opremi i podešavanjem zajednice. Ako se u postavkama automatskog otkrivanja mrežnih čvorova nije mijenjala zadana vrijednost za SNMP zajednicu, sustav koristi 'public community', a ovu postavku možete promijeniti za svaki čvor u svojstvima dodane jedinice (node).
Za lakše upravljanje, uređaje možete grupirati prema bilo kojem prikladnom kriteriju, a za to u stablu možete kreirati kontejnere u grani Infrastructure Services i povezivati s njima čvorove iz Entrie Network.
Nakon aktivacije i konfiguracije SNMP na usmjerivačima i dodavanja u popis pratne opreme, sustav će se sam spojiti s njima, provjeriti ih, odrediti o kojim je uređajima riječ, primijeniti predloške, započeti prikupljanje podataka i prikazati prednju ploču za svaki usmjerivač. Samo od sebe. Iz kutije. Kad sam postavljao Zabbix, o tome sam mogao samo sanjati.

Sve svoje mrežne uređaje dodavao sam ručno, jer ih iz nekog razloga nisam mogao sam otkriti. Sve je vrlo jednostavno. Kreiramo kontejner u Infrastructure Services s bilo kojim prikladnim nazivom (npr. switches), i Desni klik - stvoriti - čvor, odrediti prikazano ime čvora, njegovu IP adresu i najbolje je označiti opciju „onemogući korištenje NetXMS agenta“, jer ga ionako nije moguće instalirati na mrežnu opremu, a suvišni paketi nisu potrebni.
Ugrađeni preglednik. Možete jednostavno desnim klikom na odgovarajući usmjerivač otvoriti web sučelje uređaja. Meni se činilo prikladnijim nego svaki put tražiti navedenu IP adresu u svojim zapisima. Ipak, preglednik je prilično loš.
3.3. Izrada mrežne mape
Prvo trebate stvoriti mrežnu mapu kao objekt. Kao obično — u grani Networks Map desnim klikom, stvoriti, odabrati tip mape, postaviti parametre, a sustav će dalje obaviti sve sam.
Tipovi mapa su sljedeći:
- Prilagođeno. To je mapa koja je namijenjena za ručno oblikovanje, prema željama korisnika.
- Topologija 2. sloja. To je mapa koja omogućava automatsko djelovanje umjesto korisnika, oslanjajući se na 2. razinu OSI modela (u suštini, gradi mapu na temelju MAC adresa uređaja).
- IP topologija, poznata i kao 3. sloj. Ista stvar kao i u slučaju 2. sloja, samo što se mapa gradi na temelju 3. razine OSI modela (IP adrese).
Kada birate ručno sastavljanje karte, trebate povući čvorove iz stabla na sloj karte, povezivati ih itd. Obično crtanje.
U druga dva slučaja potrebno je odabrati referentnu točku od koje će sustav početi graditi kartu. Na primjer, čvor bilo kojeg usmjerivača. Sustav čita podatke o povezanim uređajima i portovima na koje su priključeni, nakon čega čita podatke sa sljedećeg usmjerivača, uspoređuje, i tako dalje. Nakon analize svih uređaja, NetXMS će sama nacrtati veze između mrežnih uređaja s naznakom portova na koje je što priključeno. Također možete odabrati da sustav postavi na kartu i krajnje uređaje (printere, PC-e, poslužitelje), jednostavno klikajući na odgovarajuću točku u svojstvima karte.Desni klik — svojstva — svojstva karte). Također u ovoj točki možete odrediti "radijus otkrivanja" ukoliko to želite ili je potrebno.
Mala preporuka. Uključite svojstvo 'Always fit layout to screen', kako svaki put kada ažurirate mrežnu kartu ne biste morali pomicati radni prostor i koristiti zoom.

Kod distribuirane topologije mreže, možete preklopiti objekte na kartu terena. Također možete koristiti, na primjer, fotografiju ormara s opremom u poslužiteljskoj sobi kao pozadinsku podlogu, prekrivajući je potrebnim objektima. Tako možete brzo odrediti status bilo kojeg uređaja u ormaru. Po mom mišljenju, ovo je izuzetno korisna stvar u slučaju da treba prenijeti zadatke nasljedniku ili objasniti situaciju novom kolegi. Jasno, praktično, samoobjašnjavajuće.
3.4. Agenti
Agenti postoje i za Windows i za Linux. Način rada je isti kao i za agente Zabbixa: instalira se na mašinu s koje se trebaju prikupiti metričke podatke i prenosi podatke na poslužitelj za praćenje. Agenta se može instalirati prije nego što se čvor doda u sustav ili nakon njega. Nakon pojave agenta na čvoru, sustav će nakon nekog vremena početi primati podatke od njega, koristeći standardni šablon. Možete dodati praćene parametre za jedan čvor, ili ga povezati s jednim ili više unaprijed definiranih šablona. Naravno, preporučuje se rad s šablonima, jer je ta konfiguracija fleksibilnija.
Lista praćenih parametara za agente je prilično opsežna. Potpuni popis možete vidjeti u
Jednom kada sustav utvrdi da agent funkcioniše na nodu, odmah će vezati ovu nodu za jedan od zadanih šablona — Windows, Linux, HP-UX, Generic UNIX, AIX, ovisno o operativnom sistemu node.
Zadani šablon za Windows hostove:

Dodavanje parametra za praćenje specifičnoj nodu može se izvršiti klikom na „Desni klik - Parametar za prikupljanje podataka«, zatim „Desni klik u radnom prostoru — Novi parametar«, i odabrati potrebno s popisa. Također se mogu postaviti triggere za praćeni parametar.
Važno je napomenuti da agenti, kao i u Zabbix-u, mogu pokretati korisničke skripte.
Kako instalirati?Ovo je offtopic, jer svatko… hmm… kako želi.
Pitanje je — treba li distribuirati agente samo na servere ili na sve mašine u mreži? Ako su to serveri, i nema ih mnogo — najlakše ih je instalirati ručno. Ako ih je mnogo — političke postavke domene, KIX, PoSh. Bilo što. Agenti imaju ključ /SILENT, što omogućava 'nevidljivu' instalaciju za korisnika (ako govorimo o distribuciji na sve mašine u mreži). Preferiram skripte, jer mogu postaviti uvjet i stvoriti neku vrstu zastavice, za razliku od politika, koje bi program instalirale svaki put kada se računalo uključi. Dakle, pišemo skriptu tipa 'provjeriti postoji li datoteka-zastavica, ako ne postoji — pokrenuti instalator s ključem /SILENT i nakon uspješne instalacije stvoriti datoteku-zastavicu'. Profit.
3.5. Triggere
Triggere se mogu postaviti da reaguju na određene događaje u prikupljenim podacima. Na primjer, prekoračenje određenog ping-pong vrijednosti do usmjerivača. Također se postavlja način obavještavanja za svaki trigger (neki zahtijevaju samo ikonu u konzoli, dok drugi odmah šalju obavijesti svuda gdje je moguće). Reakcija na događaj bira se iz unaprijed postavljenih u Konfiguraciji akcija.
Za kreiranje trigera: otvorite Konfiguraciju prikupljanja podataka za nodu ili šablon, dvokliknite na interesantan parametar (ako ne postoji, potrebno ga je prvo stvoriti), i u svojstvima pređite na karticu Pragovi, pritisnite dugme za dodavanje.

«Funkcija» — koje ili koje vrijednosti uzeti za izračunavanje uvjeta. Može prihvatiti sljedeće vrijednosti (broj korištenih za provjeru vrijednosti navodi se u polju Uzorci):
— Posljednja pročitana vrijednost: posljednje/posljednje primljene vrijednosti
— Prosječna vrijednost: srednja vrijednost iz posljednjih
— Srednje odstupanje: srednje odstupanje
— Razlika s prethodnom vrijednošću: razlika s prethodnom vrijednošću
— Greška prikupljanja podataka: greška u dobivanju podataka
— Zbroj vrijednosti: zbroj vrijednosti
— Skripta: vrijednost dobivena rezultatom rada korisničke skripte
«Operacija» — uvjet aktivacije okidača. Može primati vrijednosti (vrijednost se navodi u odgovarajućem polju Value):
— <: manji od: manje od
— <=: manji ili jednak: manje ili jednako
— == jednako: ekvivalentno
— >=: veći ili jednak: veće ili jednako
— >: veće od: veće od
— !=: nije jednako: nije ekvivalentno
— like: približno
— not like: ne približno
Što se tiče posljednja dva parametra, nisam siguran kako oni funkcioniraju. Zato neću ni pretpostavljati koje granice su u njima ugrađene.
Ukratko, sve kao u onom Zabbix-u, samo nije potrebno ručno unositi formule, bojeći se pogreške ili tipfelera. Za vraćanje okidača (deactivation event) sustav će sam napuniti vrijednost. (U Zabbix-u opet treba tipkati i paziti da se ne pogriješi).
3.6. Predlošci
Desni klik—stvoriti predložak, unijeti ime predloška. Desni klik—Konfiguracija prikupljanja podataka.
Malo teorijePrikupljene informacije mogu dolaziti iz više izvora. To može biti agent NetXMS, koji radi na strojnom uređaju, može biti „jednostavni upit“ ili „Internal«, koji šalje sam poslužitelj (na primjer, taj isti ping), „SNMP«, «check point SNMP«, «Push«, «Windows Performance Counters«, «SM-CLP«, ili korisnički „skriptu«. Za svaki tip informacije može se odabrati tip koji sustav očekuje pri primanju. Na primjer, ping će vraćati cijelu brojčanu vrijednost (integer), količina slobodnog prostora na disku u bajtovima također će biti integer, dok će, recimo, temperatura već biti decimalna vrijednost, odnosno real).
Za prikupljanje informacija putem SNMP u NetXMS postoji ogroman popis unaprijed definiranih parametara, tako da nije potrebno unositi konkretni OID, već ga pronaći u MIB stablu, što je zapravo prilično komplicirano... No, na kraju, treba se kopati u dokumentaciju proizvođača i tražiti IOD vrijednosti za svaki uređaj odvojeno. Može se izgubiti puno vremena na postavkama očitavanja informacija s uređaja, nailazeći na poruku sustava „UNSUPPORTED”, a na kraju se ispostavi da taj konkretni uređaj jednostavno ne može pružiti zatražene informacije. Ovdje preostaje samo da se čitaju upute i nadaju.
Na primjer, da biste prikupili informacije o vremenu odgovora čvora (ping), trebate dodati novi parametar (desni klik-novi parametar), u polju Origin odabrati Internal, kliknuti na gumb Select, i odabrati Ping Time. Tamo postoji pretraživanje, o čemu sam u Zabbixu samo sanjao. Također ima smisla promijeniti period ispitivanja čvora (po defaultu je 60 sekundi, što znači da ako usmjerivač prestane odgovarati odmah nakon što je ispitivan od strane sustava za nadzor, proći će skoro cijela minuta prije nego što sustav shvati da nešto nije u redu i alarmira).
Popis Internal podataka koje možete obraditi:

Nakon što su sve potrebne postavke dodane u predložak, trebate kliknuti desni klik-primijeni i odabrati sve čvorove na koje želite primijeniti ovaj predložak (ctrl-lijevi klik). I to je to. Nakon toga, u stablu ispod predloška pojavit će se grana, čijom se otkrivanjem može vidjeti svi čvorovi kojima je taj predložak primijenjen.
Pri odspajanju čvora od predloška, prikupljeni podaci ne prestaju se skupljati; da biste prekinuli njihovo prikupljanje, trebate za svaki čvor ući u Konfiguraciju prikupljanja podataka i sve ručno izbrisati, ili prvo izbrisati parametre iz predloška, a zatim izbrisati čvorove iz njega. Ne znam zašto je to tako postavljeno, ali smatram da je to prilično čudno. No... tu je kako jest.
U predlošku možete odabrati potrebne prikupljene podatke i kopirati ih u drugi predložak. Masovno. I ne trebate kopirati iz jednog predloška u drugi ručno... Već počinjem mrziti Zabbix..
3.7. Nadzorne ploče
Iako to čudno zvučalo, NetXMS Wiki u vezi s tim sadrži samo jednu poveznicu na youtube: , nema čak niti popisa i opisa elemenata koje možete dodati na Nadzornu ploču. Uglavnom, tamo je sve intuitivno jasno. Oznaka — to je jednostavno... pa... Oznaka... Čak ne znam kako to prevesti. Uglavnom, polje s natpisom, koristi se za označavanje i razdvajanje elemenata, budući da sami elementi nemaju nazive. Linijski grafikon — to je linijski graf. Grafikon s trakama — to je dijagram. Viewer alarma — popis upozorenja za odabreni/ih čvor/ove. Uglavnom, nazivi govore sami za sebe.
Sljedeće je potrebno otvoriti svojstva nadzorne ploče i prilagoditi prikaze. Zanimaju nas kartice Elemeti nadzorne ploče. Broj kolona — to je broj kolona, elemenata koji će biti postavljeni horizontalno. Svaki objekt ima svoja svojstva, i preporučio bih da uklonite oznaku s opcije Layout-Grab excessive vertical space, kako biste minimizirali veličinu svakog elementa.

3.8. Konfiguracija akcija
(Konfiguracija-Akcije Konfiguracija)
U suštini, to su radnje koje odgovaraju na aktiviranje okidača.

NetXMS može slati e-mail, sms, xmpp poruku kao odgovor na aktivaciju okidača. Ovdje je sve trivijalno — jednostavno ispunite potrebna polja.
Također možete:
— Proslijediti obavijest na drugi NetXMS poslužitelj
— Izvršiti naredbu na poslužitelju za administraciju NetXMS
— Izvršiti naredbu na čvoru pomoću NetXMS agenta
— Izvršiti NXSL skript (NSXL — to je vlastiti )
Nakon stvaranja akcije možete postaviti vrijeme kašnjenja izvršenja, a također primijeniti makro za izvršenje. Vrijeme kašnjenja potrebno je kako ne bi uzrujavali operatera ako se problem riješi sam od sebe (na primjer, vrijeme odziva na ping zahtjev bilo je veće od zadanog, ali tijekom sljedeće provjere moglo bi se vratiti u normalu, pa zašto uzrujati zbog takvih sitnica?).
3.9. Ograničavanje prava pristupa
Za svaki objekt možete postaviti svoja prava pristupa. Za svaki objekt unutar drugog objekta također možete postaviti prava pristupa. To omogućuje vrlo fleksibilno raspoređivanje odgovornosti i mogućnosti praćenja za različite grupe korisnika. To je sve što sam htio reći.
4. Zaključak
Želio bih opovrgnuti naziv svoje vlastite članka. NetXMS nije za lijene. Samo programeri nisu stavili naglasak na funkcionalnost, kao neki, ali, osim svega, pobrinuli su se i za sučelje.
Dakle, koristio sam Zabbix i NetXMS. Tako da ću jednostavno napisati svoje osjećaje o ova dva sustava.
Dakle.
NetXMS mi se čini izuzetno korisnički orijentiranim sustavom. Pa... za administratore... da, za administratore. Ima ono što zovemo intuitivnim sučeljem, i to je zaista sjajno. Nije potrebno pisati vlastite formule, čitati hrpu prateće dokumentacije da bi se uključila provjera pinga do switcha ili neku sličnu jednostavnu funkciju. No, u Zabbixu ova jednostavna stvar ne razlikuje se mnogo od nečega stvarno složenog, dakle, ako to ovladaš — moći ćeš napraviti i sve ostalo. U NetXMS postoje savjeti, većina parametara može se pronaći u sučelju, odabrati mišem i postaviti. U Zabbixu moraš saznati može li sustav to i to, a ako može — kako se to piše i koji parametri se vraćaju. Zabbix pobjeđuje u zajednici i mnoštvu predložaka za sve prilike... ako u toj hrpi besmislica uspiješ pronaći ono što ti treba... S druge strane, NetXMS također ima puno obožavatelja i dodataka koje su oni stvorili za ovaj sustav. A i sam sustav iz kutije zna pratiti najpopularnije aplikacije, o čemu se piše na glavnoj stranici projekta.
Glavna prednost NetXMS-a u odnosu na Zabbix za mene je mogućnost pokretanja skripte na problematičnoj nodi kao odgovor na aktivaciju okidača. Ako temperatura CPU-a poraste iznad praga — sama će ga isključiti. A onda ćemo se već baviti time — u čemu je problem. Možda, u Zabbixu postoji takva funkcionalnost, ali nisam mogao to pronaći. Kao ni u monitoringu portova na usmjerivačima. A ovdje se to samo... Pa, kako da kažem... treba ovladati skriptnim jezikom, i to je to...
Prava pristupa u NetXMS-u omogućuju vrlo fleksibilno razdvajanje mogućnosti različitih korisnika sustava. No, da bi sve to postavio, potrebno je malo više truda.
Općenito, sustavi su dovoljno slični, a mogućnosti na prvi pogled izgledaju barem usporedive. Iako se osjeća da Zabbix može više, ali te mogućnosti duboko su skriveni i za običnog smrtnika administratora 'sve u jednom' nedostižni. NetXMS se čini jednostavnim i razumljivim, korisnički prijateljskim i prihvatljivim.
Zabbix ima izvrsnu dokumentaciju, wikis, upute, F.A.Q., najbolje prakse, kao i razne forume itd., gdje se mogu pronaći odgovori na gotovo sva pitanja. A ako ne, možeš postaviti vlastito pitanje.
Zaključujući, želio bih preporučiti NetXMS ljudima koji tek počinju ili onima kojima nije potrebno duboko uranjanje u praćenje svega i svačega. Siguran sam da ako se dodatno istraži, može se postići vrlo precizno praćenje.
Ali kao glavni plus, vidim vrlo ugodno sučelje i jednostavnost postavljanja.
5. Korišteni materijali
YouTube kanal
Izvor: habr.com
