Spoznajmo omrežje
Dokler skrbimo za kakšnih deset do dvajset računalnikov, še nekako držimo v glavi podatke o tem, v kakšnem stanju so posamezne delovne postaje ali strežnik, kakšno programsko in strojno opremo imajo nameščeno in ali sploh delujejo, kot je treba. Z večanjem omrežja, dodajanjem novih in raznolikih naprav vanj pa se izjemno hitro povečuje tudi skupna količina podatkov o teh napravah. Pomaga lahko specializirana programska oprema.
Z rastjo omrežja raste tudi kompleksnost upravljanja celotne informacijske infrastrukture; omrežju dodajamo nove računalnike, nove strežnike, brezžične dostopne točke, stikala, tiskalnike in drugo opremo. Ponekod računalniki ostajajo neposodobljeni, drugod ne deluje kakšen nujno potreben servis, spet drugje zmanjkuje prostora na katerem izmed diskov. Ni si težko predstavljati, da pri nekaj stotnijah omrežnih naprav ni povsem enostavno "na roko" ali "iz glave" slediti vsakdanjemu dogajanju. Tudi upravljavec takega sistema postaja vse bolj zahteven, kajti obsežna infrastruktura tudi veliko stane. Danes je že nujno treba vedeti, ali so sistemski viri na (virtualnih) strežnikih optimalno izkoriščeni, ali je strežniška soba optimalno hlajena in, ne nazadnje, ali zakupljena pasovna širina pri ponudniku dostopa do medmrežja še vedno zadostuje potrebam podjetja.
Malce bolj zahtevnemu upravitelju sistema je kakovostnih podatkov o delovanju sistema, ki ga nadzira, vedno premalo, zato se bo začel ozirati po programskih rešitvah, ki bi mu omogočile centraliziran pregled nad dogajanjem in čim bolj avtomatizirano delovanje.
In če je njegov proračun za programsko opremo bolj kratke sape, trči ob imena odprtokodnih aplikacij, ki si jih bomo v nadaljevanju malce podrobneje ogledali. Skupno jim je to, da jih navadno sestavljata dve komponenti: spletni strežnik z bazo (strežniški del) in agent (odjemalski del) oziroma skripti, ki tečejo na posameznem odjemalcu in ga povezujejo z osrednjim "nadzornim" sistemom.
Inventura z Open-AudIT
Namen orodja Open-AudIT je čim bolj avtomatizirano pregledati omrežje in zabeležiti informacije, ki jih o posameznih odkritih napravah ni mogoče zbrati, dobljene podatke pa pregledno prikazati v spletnem vmesniku.
Za strežniški del bo najbolj idealno kar okolje LAMP (Linux, Apache, Mysql, Php), čeprav je neodvisno od platforme. Z uporabo virtualizacijskih tehnologij oziroma že prej pripravljenih navideznih strojev pa si lahko namestitev še dodatno olajšamo.
V preteklosti je bil program namenjen zgolj pregledu računalnikov z nameščenimi Okni, danes pa zna delati tudi z nekaterimi linuxnimi strežniki (Fedora in Ubuntu). S poznavanjem ustroja drugih linuxnih distribucij in z nekaj telovadbe pri urejanju skript pa nam omogoča tudi prireditev za druge manj običajne distribucije.
Ne glede na operacijski sistem, ki ga želimo pregledati, je način dela enak: izvede se skripta, ki potem prek skrite forme na spletnem strežniku izvede vpis v zbirko podatkov. V linuxnih okoljih moramo samo pognati skript v strežniku, ki ga želimo popisati, in stvar je opravljena.
V Microsoftovih operacijskih sistemih pa imamo nekaj več svobode pri tem, kako bomo izvedli popis. Uporabimo lahko skupinske politike (GPO) in tako na vsakem posameznem računalniku v domeni poženemo skript, ki bo izvedel popis.
Morda še najbolj enostavno pa je celotno zbirko skript naložiti v neko virtualno okensko napravo in nato s Schedulerjem vsak dan (ali v kakšni drugi primernejši periodi) izvajati popis. V tem primeru se mora skripta izvajati v kontekstu domenskega upravitelja. S tem dosežemo, da se skript poveže z active directory zbirko podatkov in od tam črpa podatke o računalnikih, ki so pridruženi domeni. Tudi kadar nimamo domene, lahko izvedemo dovolj avtomatiziran popis. V posebno datoteko zapišemo imena računalnikov (hostname), ki jih želimo obdelati, in stvar deluje; le vsakič, ko dodamo nov računalnik oziroma spremenimo njegovo ime, bo potreben ročen popravek konfiguracijske datoteke.
Z nekaj ročnega dela pa lahko popišemo tudi računalnike, ki niso (ali ne smejo biti) priključeni v omrežje, oziroma nimajo dostopa do našega (internega) spletnega strežnika z zbirko podatkov. V konfiguracijski datoteki označimo, da se nam vsi podatki zapišejo v datoteko, ki jo nato prek spletnega vmesnika ročno "objavimo" in tako zapišemo v zbirko.
Odlika Open-AudIT je ravno hitrost izvajanja inventarnih pregledov računalnikov. Windows domena z okrog sto računalniki, strežniki in tiskalniki se "popiše" v približno petnajstih minutah. Posebnost je seveda to, da na posamezni računalnik z operacijskim sistemom Windows ni treba nameščati tako imenovanih agentov. To je mogoče, ker skripti uporabljajo WMI (Windows Management Instrumentation), tehnologijo, ki jo je Microsoft razvil ravno z namenom lažjega upravljanja operacijskih sistemov.
Vse doslej napisano je samo predigra. Pravo veselje za sistemskega skrbnika se začne šele ob prijavi v spletni vmesnik.
Značilen pogled na zbrane podatke o posameznem računalniku
Začnimo pri strojni opremi. Na voljo nam je zelo podroben pregled komponent računalnika: procesor, matična plošča, vgrajeni diski, particije, zasedenost le-teh, omrežni in grafični vmesnik, monitor, lokalno nameščeni tiskalniki in prek USB vmesnikov priključene naprave in tako naprej.
Še več podrobnosti je na strani programske opreme. Za posamezni opazovani računalnik se hrani seznam nameščene in odstranjene programske opreme, nameščenih sistemskih komponent, popravkov, vidimo pa tudi programe, ki se zaženejo ob vklopu računalnika. Iz registra zna prebrati tudi namestitvene ključe za nekatere programe (za operacijski sistem, zbirko Office, Autocad, izdelke Adobe in druge). Tudi nameščene kodeke in storitve zna našteti.
Pri nastavitvah okolja si med drugim lahko ogledamo nameščene različice ogrodja .NET, nastavljene deljene mape, spremenljivke okolja, routing tabelo in kako imajo posamezni uporabniki mapirane diske, nastavitve samodejnega posodabljanja, nastavitve požarnih pregrad in, če smo se malce pozabavali z nastavitvami, s pomočjo programa NMAP nam je na voljo tudi pregled odprtih vrat.
Uporabnost zbranih podatkov se pokaže tudi pri že sprogramiranih poizvedbah po zbirki podatkov. Na enem mestu lahko, denimo, dobimo izpisek vseh uporabnikov, ki imajo upraviteljske pravice, seznam vseh nameščenih programov v podjetju.
V razdelku s statističnimi podatki dobimo zbirne izpise o tipih operacijskih sistemov, različicah Internet Explorerja, Firefoxa, tipih procesorjev, pomnilnikov in še in še. V register programske opreme lahko tudi vpišemo število kupljenih licenc za posamezne programe in tako dobimo pregled tudi nad tem, kako so izkoriščene licence.
Omeniti je treba še to, da je sam Open-AudIT uporaben tudi za podjetja, ki se ukvarjajo s storitvami IT, saj lahko strežnik z zbirko podatkov postavimo v splet in nato pri strankah nastavimo skripte tako, da podatke pošiljajo na ta strežnik. Glede na to, da nas na osnovnem zaslonu orodje opozarja, katere nove naprave in novo programsko opremo je zaznal na računalnikih, je to lahko dobra pomoč za lažje delo na terenu.
Open-AudIT
Kaj: Orodje za periodično izvajanje inventarja omrežja.
Izdeluje: Mark Unwin in skupnost razvijalcev.
Spletni naslov: www.open-audit.org.
Cena: Brezplačno (odprta koda).
Za: Preprost za namestitev in uporabo, izčrpnost podatkov, hitrost skript, na posamezni računalnik ni treba nameščati agenta.
Proti: Težave s prepoznavanjem novejših procesorjev.
RRDtool in Cacti
RRDtool je skozi svoj (odprtokodni) razvoj postal de facto standard za zbiranje in grafično prikazovanje podatkov, ki nastajajo v odvisnosti s časom. Tako je najbolj uporaben za spremljanje različnih parametrov skozi čas - obremenjenost omrežja, procesorja ... RRD v imenu nakazuje način delovanja (Round Robin Database). Za ponazoritev: pri linearnih zbirkah podatkov se novi podatki zapisujejo na konec zbirke. Pri RRD pa si je treba zbirko predstavljati kot vrtiljak (od tod Round Robin), kjer se podatki zapisujejo na obod. Ko novi podatki dosežejo "začetek", začne novo prepisovati staro. Tako se velikost zbirke RRD določi ob samem začetku, nato je njena velikost konstantna. Druge zbirke shranjujejo podatke, kot jih dobijo, RRDtool pa lahko nastavimo, da izračunava spremembo glede na prejšnjo vrednost in nato v zbirko podatkov shrani to vrednost. Prav tako običajne baze podatkov shranjujejo podatke, ko jih dobijo, medtem ko RRDtool potrebuje podatke v prej določenih časovnih intervalih. Če podatka ne dobi, bo zapisal "neznano" vrednost, zato je pomembno, da se uporabljajo skripte, ki posredujejo konstanten tok podatkov, pač v točno določenem časovnem intervalu. Če se zavedamo tega principa delovanja, lahko tudi s pomočjo grafa hitro razberemo, kdaj je neka naprava prenehala delovati, oziroma kdaj smo izgubili povezavo z našim ponudnikom internetnih storitev in koliko časa je tak "mrk" trajal.
RRDtool - Grafikon mnogokrat pove več kot množica števoilskih podatkov
Ker ljudje laže razumemo narisane podatke, lahko tako grafično predstavitev uporabimo za različne analize trendov opazovanih parametrov. Ob pomoči orodja Cacti, ki zelo tesno sodeluje z RRDtool, lahko ugotovimo, da se, recimo, poleti po dvanajsti uri temperatura v strežniški sobi (ali v samem strežniku) preveč dvigne in zato lahko odreagiramo z novimi nastavitvami delovanja klimatske naprave. Prav tako nas lahko opazovanje obremenjenosti procesorja v strežniku privede do sklepa, da lahko virtualnemu gostitelju dodamo še kakšnega gosta ali pa mu ga moramo zaradi preobremenjenosti odvzeti. Z raznimi dodatki lahko še razširimo njegovo osnovno poslanstvo. Če naša omrežna oprema zna sporočati prave parametre, si lahko izdelamo podrobno skico omrežja, v kateri so vrisane hitrosti prenosov podatkov med posameznimi napravami, na primer trenutni tok podatkov med našim usmerjevalnikom in ponudnikom dostopa do interneta.
Cacti bo silno všeč vsem, ki imajo radi grafe in skušajo v ploskve in črtice spraviti mogoče in nemogoče količine ter na podlagi analize teh grafov iskati korelacije med posameznimi parametri. Pametno sestavljen graf bo pozornemu očesu povedal precej več kot številski podatek. Žal pa v primeru Cactija ne bo šlo brez podrobnega poznavanja SNMP, saj za večino opazovanih parametrov podatke dobiva prav prek tega protokola.
Aktivno spremljanje
Želja vsakega sistemskega upravitelja je čim večja avtomatizacija na vseh področjih dela, torej da je čim manj ročnega dela. Pregled nad stanjem posameznih strežnikov in računalnikov je ob veliki količini naprav lahko mučen, če ne celo nemogoč, ne da bi si vsaj minimalno avtomatizirali ta proces.
Če z Open-AudIT opravljamo inventar omrežja in z njim dobimo le omejene (pasivne) podatke o samem delovanju posameznih naprav (na primer zasedenost sistemske particije), pa nam programi za spremljanje IT infrastrukture omogočajo, da bolj aktivno in z določeno mero avtomatizacije spremljamo, kaj se dogaja z IT infrastrukturo v podjetju.
Skripti in aktivni agenti skrbijo, da se parametri posameznih storitev, ki nam jih ponujajo predvsem strežniki (spletne storitve, poštni strežnik, zbirke podatkov in drugo), aktivno spremljajo. Vse spremembe stanja oziroma dogodki se zbirajo na enem mestu in, če tako nastavimo, dobimo tudi obvestila po elektronski pošti ali SMS sporočilih.
Čeprav lahko z njimi spremljamo tudi posamezne delovne postaje, se jih največ uporablja v sistemih z večjim številom strežnikov, saj je od njihovega (ne)delovanja odvisno poslovanje podjetij. Ko enkrat začnete z uporabo tovrstnih programov, lahko morda čez noč ugotovite, da imate v podjetju strežnike, ki se jih sploh ne uporablja več, ali pa, da vaša celotna dejavnost temelji na strežnikih, ki jim doslej sploh niste posvečali dovolj pozornosti in so za povrh še zmogljivostno podhranjeni.
Sistemi za spremljanje IT infrastrukture omogočajo, da se dovolj hitro zavemo, kdaj potrebujemo nadgradnje, kdaj povečati zmogljivosti, da bi tako še pravočasno preprečili odpovedi strojne opreme ali upočasnitve zaradi slabo dimenzioniranih sistemov. Prav tako nam omogočajo, da se čim hitreje odzovemo na nastale težave, ali pa celo, da se te težave avtomatizirano same razrešujejo. Podjetja, ki izvajajo IT outsourcing, lahko z njimi lažje zadostijo sporazumom o ravni storitve (SLA).
Nagios 3
Nagios je zagotovo eden izmed najbolj znanih sistemov za aktivno spremljanje strežnikov in omrežja. Je odprtokoden in je v nenehnem razvoju, kar mu omogoča hitro prilagajanje novostim oziroma zahtevam uporabnikov. Pravzaprav ne smemo pozabiti omeniti, da je priložen marsikateri distribuciji Linuxa, zagotovo pa najbolj razširjenim: Ubuntu, Fedora, Suse, Debian, OpenBSD, Gentoo. Splošen vtis, da se Nagios bolje znajde v okoljih Linux, se potrdi tudi ob uporabi, saj so ti operacijski sistemi precej bolj podprti in dokumentirani, pa še precej hitreje je moč najti podporo zanje, kot pa za okolja Windows. A to še ne pomeni, da z njim ne moremo kakovostno spremljati tudi Microsoftovih operacijskih sistemov.
Čeprav je skupnost razvijalcev in uporabnikov zelo velika in da je dokumentacija naravnost odlična, se po namestitvi in še prej prebranih osnovnih navodilih uporabnik zave, da Nagios ni tako preprost, kot se zdi na prvi pogled, zato je še najbolje, če si za spoznavanje z njim omislite že pripravljeno namestitev v obliki virtualne naprave - pobrskajte po VMWare tržnici virtualnih naprav.
Ker je Nagios sam po sebi le ogrodje, se je okrog njega razvilo tudi pestra množica spletnih vmesnikov oziroma konfiguracijskih orodij zanj (Groundwork, platform Lilac ...), ki nagovarjajo različne potrebe uporabnikov ali pa samo olajšajo konfiguracijo. Tudi najosnovnejša namestitev pa kljub temu že vsebuje spletni vmesnik, ki je povsem uporaben.
Spletna nadzorna plošča Nagios z zbranimi informacijami#####
Strežniška stran je sestavljena iz več gradnikov. Osnovnemu ogrodju Nagiosa se dodajajo vtičniki, ki so pravzaprav pamet sistema, saj znajo bedeti nad različnimi storitvami. Z dodatki (addons) pa lahko še dodatno razširimo zmogljivosti celote. Kot smo pri izdelkih, ki nastajajo primarno v okoljih Linux, že vajeni, je v Nagiosu bolj ali manj vse mogoče narediti tudi v ukazni vrstici. Če nam je tak način dela bolj domač, bomo spletni vmesnik uporabljali le za pregledovanje dogajanja.
Javno dostopne storitve lahko z Nagiosom spremljamo brez posebnega dodatnega nameščanja agentov, zato lahko za začetek dodamo strežnike, na katerih tečejo te storitve (ping, http, ftp, ssh, smtp, pop3, imap in drugi).
Za spremljanje drugih parametrov delovanja sistemov pa potrebujemo nameščenega agenta. Za okolje Windows je najbolj razširjen NSClient++, ki sledi številnim parametrom delovanja sistema. Spremljamo lahko, recimo, velikost posamezne mape ali datoteke (denimo pagefile.sys), zasedenost in velikost posameznih particij, pogledamo, ali je bila v event log zapisana določena napaka, sledimo obremenjenosti procesorja, zasedenosti pomnilnika, preverjamo, koliko časa je sistem že prižgan, vidimo, ali posamezne storitve delujejo in so odzivne in ali se opravila v Task schedulerju še vedno poganjajo ob nastavljenih časih. Prav tako lahko prek uporabljamo WMI skripte, ki omogočajo še bolj podrobno in nam na kožo pisano delovanje. Za primer: NSClient++ lahko nagios strežniku sporoči, da določen proces na strežniku porablja več kot 1 GB pomnilnika; ker to za, recimo, brskalnik Firefox ni ravno običajno, smo se odločili, da bomo sledili tem primerom. Windows naprave lahko spremljamo tudi z uporabo protokola SNMP (v tem primeru bo treba ročno namestiti SNMP komponento v okolju Windows in opcijsko še agenta SNMP - SNMP informant, recimo), treba pa bo nekaj več ročnega dela s konfiguriranjem. Ker jezik SNMP govori večina omreženih naprav (okvirček), lahko s pomočjo tega protokola v Nagiosu sledimo tudi drugim napravam, kot tiskalniki, stikala, usmerjevalniki ali sistemi UPS.
Pri operacijskih sistemih Linux pa podobne parametre spremljamo s pomočjo NRPE (aktivno) ali NSCA (pasivno) dodatka. Poganjanje NRPE dodatka je možno tudi na daljavo, prek tunela SSH, kar je morda smiselno pri manjšem številu strežnikov, saj predstavlja tak način precejšnje procesorsko breme tako na strani nagios strežnika kot tudi na oddaljeni strani. Pri večjem številu spremljanih strežnikov je zato bolje uporabljati dodatek NRPE na samem spremljanem strežniku. Nagios bo tako lahko sprejemal podatke o posameznih procesih v strežniku, koliko pomnilnika in procesorja uporabljajo, koliko so zasedene particije, kakšna je obremenjenost procesorja. Marsikaj je seveda prepuščeno željam in iznajdljivosti uporabnika, saj je marsikaj mogoče storiti z uporabo skript. Dodatek NRPE je seveda moč uporabljati tudi za monitoring javnih, že zgoraj v članku omenjenih storitev.
Nagiosov spletni vmesnik je za današnje razmere malce zastarelega videza, namenjen pa je pregledovanju stanja omrežja (naprav v njem) in tudi dodajanju novih naprav. Z večanjem kompleksnosti našega omrežja nam pride prav "zemljevid" omrežja, v katerem je grafično prikazano stanje naprav in storitev, kako so med seboj povezane in katere delujejo in katere ne. Glavna značilnost vmesnika so pregledi dogajanja po posameznih skupinah, npr. po storitvah, po posameznih napravah, po težavah, ki se pojavljajo. Zelo podrobno lahko izdelamo različna poročila, na primer o razpoložljivosti posameznih (skupin) sistemov oziroma storitev. Izdelamo si lahko tudi grafe, iz katerih lahko razberemo posamezne trende - povečano število izpadov povezave posameznega strežnika nas bo morda pripeljalo do okvarjenih vrat na stikalu.
Nagios 3
Kaj: Orodje za aktivno spremljanje IT infrastrukture.
Izdeluje: Nagios enterprises in skupnost razvijalcev.
Spletni naslov: www.nagios.org.
Cena: Brezplačno (odprta koda).
Za: Zmogljivost, razširljivost.
Proti: Zahteva precej privajanja.
Zenoss Core 2.5
Še en izmed najbolj uporabljanih odprtokodnih sistemov za monitoring IT infrastrukture, ki je spisan v jeziku python. Uporabnikom je na voljo tako različica Core, ki je brezplačna, kot tudi Enterprise, ki je namenjena večjim namestitvam in vključuje tudi funkcionalnosti, ki jih brezplačna različica nima - spremljanje Oracle strežnika ali Java aplikativnega strežnika, denimo.
V spletu se ravno tako dobi že pripravljene navidezne naprave, ki so takoj pripravljene za delo (tudi v produkciji) in zahtevajo minimalno ali nič začetnega nastavljanja.
Za razliko od Nagiosa se Zenoss precej bolj opira na SNMP, zato bo brez poglobljenega poznavanja tega protokola težko optimalno nastaviti sistem nadzora, čeprav so dobro podprti tudi drugi načini zaznavanja dogodkov. Sledimo lahko storitvam, ki so javno dosegljive (ping, http, smtp, pop3, imap, ssh ...), preverjati zna tudi dosegljivost posameznih URL naslovov in se povezovati z Nagios dodatki in Cacti skripti, lahko pa tudi avtomatično izdela inventar opreme v omrežju (in zazna spremembe, ki morebiti nastajajo s časom).
Informacije so v Zenoss nadzorni konzoli predstavljene na pregleden način
Da pa v začetku kljub vsemu ni pretežko, je poskrbljeno z možnostjo avtomatičnega odkrivanja naprav. Tega, kar ni mogoče avtomatično odkriti, se pa zagotovo da "zapakirati". ZenPack je dodatek k sistemu in je nekakšna predloga za določeno vrsto naprav ali za način opazovanja. Dodatki ZenPack omogočajo, da podobne naprave opazujemo na podoben način ali pa da za raznovrstne naprave izdelamo uniformiran način opazovanja. Naj ponazorimo z zgledom: nekdo je izdelal ZenPack za svoj usmerjevalnik in ga objavil. Če imate prav tak usmerjevalnik, lahko uporabite že narejen ZenPack in tako izjemno skrajšate čas za vnašanje in konfiguriranje parametrov naprave v Zenossu.
Za spremljanje okolij Windows imamo dve možnosti. Najmanj dela bo z uporabo komponente ZenWin, s pomočjo katere kar s strežnika Zenoss sprožamo na računalnikih poizvedovanja s pomočjo poizvedb WMI, v starejših različicah je bilo treba pognati posebnega klienta za Windows. Zdaj to ni več potrebno. Druga možnost pa je uporaba protokola SNMP in katerega izmed agentov SNMP (SNMP informant je brezplačen). SNMP protokol ni privzeto nameščen v Oknih, zato ga bo treba med komponentami sistema najprej namestiti.
Zanimiva lastnost orodja Zenoss je, da ga lahko nastavimo tako, da bo, ko se bo neka storitev na strežniku nehala odzivati ali se bo ustavila, to storitev tudi avtomatično zagnal. Zaradi možnosti uporabe različnih skript lahko, recimo, avtomatiziramo brisanje določenih datotek, ko pade količina prostega prostora na disku pod določeno vrednost.
Spletni vmesnik je modernih oblik in omogoča pregledovanje dogodkov, izdelovanje različnih poročil o stanju omrežja, konfiguraciji delovanja strežnika Zenoss in dodajanju novih naprav v sam sistem.
Bolj kot zanimivost omenimo še to, da v primeru, ko z Zenossom spremljamo naprave, ki so raztresene po vsem svetu, lahko vnesemo tudi svoj Google Maps API ključ, če ga imamo. Tako lahko na zemljevid sveta dodamo nadzorovane strežnike in dobimo tudi lokacijsko predstavo o razsežnostih naše infrastrukture.
Zenoss 2.5
Kaj: Orodje za aktivno spremljanje IT infrastrukture.
Izdeluje: Zenoss, Inc. in skupnost razvijalcev.
Spletni naslov: www.zenoss.org.
Cena: Brezplačno (odprta koda).
Za: Zmogljivost, razširljivost.
Proti: Zahteva precej privajanja.
Obstajajo tudi alternative
V spletu pa najdemo tudi druge odprtokodne (ali komercialne) rešitve za spremljanje IT infrastrukture in tudi za inventuro omrežja. Pri slednjih je med bolj uporabljanimi OCS inventory NG, ki pa zahteva nameščanje agentov na posamezne računalnike, pri monitoring orodjih pa so med bolj znanimi in uporabljanimi še Zabbix, OpenNMS in PandoraFMS.
Simple Network Management Protocol
SNMP je protokol, namenjen uporabi v aplikacijah za nadzor omrežja. Podatki SNMP se prenašajo po protokolu UDP in v ta namen se navadno uporabljata UDP vrata 161 in 162. SNMP se večinoma uporablja enosmerno - v smeri od naprave do strežnika, ki zbira informacije, vendar je možna tudi nasprotna pot, ko strežnik napravi pošlje zahtevo za spremembo določenega parametra. Osnovni so trije gradniki: naprava, ki jo nadzorujemo, agent - programska oprema, ki teče na napravi, in tako imenovani NMS (network management system), nadzorni sistem, ki teče v strežniku. Natančneje je SNMP določen z dokumenti RFC 1157 (verzija 1), RCP 3411-3418 (verzija 3).
Protokol uporablja množica omrežnih naprav (torej tistih, ki jih priključimo neposredno na omrežje), med katerimi so najpogostejši tiskalniki, stikala, usmerjevalniki, sistemi za nepretrgano napajanje, pa tudi računalniki, če jim namestimo ustreznega agenta. Tako lahko naš nadzorni sistem od tiskalnika pridobi podatke o, denimo, statistiki tiskanja, koliko je še tonerja v posamezni kartuši, kakšna je obremenjenost posamezne vtičnice na stikalu, koliko je obremenjen naš sistem za nepretrgano napajanje, koliko nihajo vhodni in izhodni parametri tega sistema ali pa, kakšna je obremenjenost posameznega računalnika in kakšna temperatura njegovega procesorja.
Kot večina zelo starih protokolov v svetu interneta je tudi SNMP podvržen varnostnim pomanjkljivostim, zato je začetno različico 1 in nato različico 2 že pred nekaj leti nadomestila različica 3, ki vključuje tudi varnostne mehanizme, ki zavarujejo komunikacijo med napravo in nadzornim strežnikom.