
0. Intro
Jeg fant ikke en eneste artikkel på NetXMS på Habré, selv om jeg søkte hardt. Og bare av denne grunn bestemte jeg meg for å skrive denne skapelsen for å ta hensyn til dette systemet.
Dette er en veiledning, en fremgangsmåte og en overfladisk oversikt over systemets muligheter.
Denne artikkelen inneholder en overfladisk analyse og beskrivelse av systemets muligheter. Jeg gravde ikke dypt inn i mulighetene av flere grunner. Og en beskrivelse av all funksjonalitet vil kreve mer enn én artikkel.
Siden jeg mer eller mindre bare jobbet med Zabbix, vil dette spesielle systemet ofte bli nevnt i artikkelen for sammenligning med emnet. I tillegg har det liksom blitt slik at alt sammenlignes med noe allment akseptert.
1. Hva og hvorfor?
Et overvåkingssystem, som det fremgår av definisjonen, er et system som lar deg få oppdatert informasjon om hvilken som helst nettverksnode når som helst, angi den nødvendige informasjonen på en maskinruter.
Hvorfor dette trengs er like åpenbart. Å være klar over hva som skjer.
Ofte kan et overvåkingssystem gi svært omfattende informasjon om tilstanden til både infrastrukturen som helhet og dens individuelle deler. I tillegg, hvis du setter opp varsler (og uten det er all overvåking verdiløs), så får vi på slutten et seriøst verktøy som lar oss ikke bare reagere i tide på nødsituasjoner som allerede har oppstått, men også i de fleste tilfeller gjør det mulig å forhindre disse ulykkene.
2. Hvorfor NetXMS?
Litt off-topic for de som elsker multi-bøkerDa jeg var ung og uerfaren... Dette er hvordan alle eventyr vanligvis begynner?.. Kort sagt, da jeg var maksimalist, studerte jeg spørsmålet om infrastrukturovervåking, og resultatet av disse "forskningene" var konklusjonen at det er ingenting bedre enn Zabbix. Og på den tiden likte jeg det veldig godt, for det kan mye, det kan mye, og dets funksjonalitet kan utvides med selvskrevne skript, så vi kan si at det kan gjøre hva som helst hvis hendene vokser fra rett sted. Men Zabbix er et ganske komplekst verktøy. Det tok meg nesten to uker å ordne opp på en eller annen måte. Og dette er bare implementeringsfasen. Deretter et par uker til for å sette opp overvåking av alt jeg trengte på den tiden. Og hvordan jeg bruker det til å se statusen til porter på rutere, jeg leste og leste, ble redd og bestemte meg for at jeg egentlig ikke trengte dette... Nei, vel, det er virkelig skummelt for et uforberedt sinn rett etter college. ..
Og nå, noen år senere, etter å ha modnet og modnet, bestemte jeg meg for at det var på tide å friske opp kunnskapen min om overvåkingssystemer. Og til slutt, gjør normal, stabil nettverksovervåking, siden dette problemet har blitt relevant på grunn av veksten av segmenter, tilkobling av en filial og andre småting. Alt flyter, alt forandrer seg. Og jeg begynte å teste alle slags verktøy. Jeg installerer dette systemet og berører det, så berører jeg det. Og overalt er det noe som mangler, overalt er det noe du ikke liker. Enten er grensesnittet upraktisk, eller du vil bli torturert for å sette det opp, eller noe annet. Og så dukket NetXMS opp til meg. Forresten: der det tok meg to uker å finne ut av Zabbix, med NetXMS gikk alt bra på et par timer. Kanskje opplevelsen med Zabbix hadde en effekt, eller kanskje det var NetXMS i seg selv... det er vanskelig å si.
NetXMS viste seg å være et ganske enkelt system å installere og konfigurere. Det har server- og administrasjonskonsollversjoner for begge. Windows og under Linux, grafgenerering, en innebygd nettleser som lar deg koble til de samme ruterne via HTTP/HTTPS-protokoller fra administrasjonskonsollen, et intuitivt grensesnitt og en agent for ethvert operativsystem. Kort sagt, dette systemet viste seg å være enkelt og praktisk. Ved første øyekast.
Dokumentasjonen deres er forresten 8 av 10. De viktigste tingene er angitt i den, men for å fordype deg i finessene, må du grave dypere.
De viktigste fordelene skissert av utviklerenDyp nettverksovervåking
Automatisk oppdagelse, visualisering og søk av tilkoblede komponenter på lag 2 og 3
Full SNMPv3-støtte
Aktiv deteksjon ved hjelp av skanneprober
Passiv oppdagelse basert på informasjon fra overvåkede enheter - ARP og rutingtabeller, grensesnitt
Applikasjons- og serverovervåking
Alle de grunnleggende beregningene du forventer: CPU, filsystemer, I/O, minne, trafikk
JMX-bro for overvåking av Java-applikasjoner
Applikasjonsspesifikke utvidelser: Oracle, MySQL, PostgreSQL, MongoDB, DB2, Tuxedo og mange flere
Integrasjons-API for native applikasjoner
Designet for store nettverk
Én server kan spore hundrevis av beregninger på tusenvis av enheter
Full støtte for distribuert overvåking og horisontal skalering
Overvåking av overlappende IP-undernett
Fleksibel adgangskontroll for operatører og kunder
3. La oss gå dypere
Hvordan installere systemet - det er en helhet administrator, tilgjengelig på , og det er ingenting komplisert med det, så jeg skal ikke dvele ved det. Den vanskeligste delen av installasjonen er å koble systemet til databasen... Den eneste forskjellen her er valget av DBMS og server-OS. Jeg valgte Windows (neste-neste-skriv inn data-ferdig) og MSSQL, siden jeg allerede hadde det.
3.1. Aktiver automatisk oppdagelse
Automatisk oppdagelse av verter kan aktiveres under installasjonen. Hvis dette ikke ble gjort av en eller annen grunn, kan det alltid inkluderes i "Configuration-Network Discovery" eller ved å klikke på ikonet med samme navn. Funnegenskapene vises i arbeidsområdet. Du må slå den på, bytte den til passiv eller aktiv modus, og angi andre egenskaper, for eksempel pollede undernett. Du kan også sette opp filtre her, og du kan enten velge og tilpasse de som er innebygd i systemet, eller skrive dine egne skript. For å være ærlig trengte jeg ingen filtre. Men oppsettet ser ganske vennlig og forståelig ut.
Her kan du også spesifisere standard SNMP-fellesskapet og dets legitimasjon (les autorisasjon).
3.2. Legger til noder
Når automatisk oppdagelse er aktivert, vil sluttnoder (PCer, skrivere) legges til og distribueres automatisk på tvers av undernett. Med aktivt nettverksutstyr er alt noe mer komplisert.
Du bør starte med å aktivere SNMP på nettverksutstyret ditt og sette opp fellesskap. Hvis standardverdien for SNMP-fellesskap ikke har blitt endret i egenskapene til automatisk oppdagelse av nettverksnoder, bruker systemet det offentlige fellesskapet, og denne innstillingen kan endres for hver node i egenskapene til den tilføyde noden.
For enkelhets skyld kan du gruppere enheter i henhold til et hvilket som helst praktisk prinsipp; for dette kan du opprette beholdere i treet i Infrastructure Services-grenen og binde noder fra Entrie Network til dem.
Etter å ha aktivert og konfigurert SNMP på rutere og lagt dem til listen over overvåket utstyr, vil systemet selv kontakte dem, forhøre dem, finne ut hva slags enheter de er, bruke maler, begynne å samle inn data og vise frontpanelet for hver ruter. Hun selv. Fra esken. Da jeg satte opp Zabbix kunne jeg bare drømme om noe slikt.

Jeg la til all nettverksmaskinvaren manuelt, siden de av en eller annen grunn ikke selv dukket opp. Alt er enkelt her. Vi lager en container i Infrastructure Services med et hvilket som helst passende navn (for eksempel brytere), og RMB-opprett-node, angi visningsnavnet til noden, dens IP-adresse, og det er bedre å merke av i boksen "deaktiver bruk av NetXMS-agent", siden den fortsatt ikke kan installeres på nettverksutstyr, og det er ikke behov for ekstra pakker.
Innebygd nettleser. Du kan ganske enkelt høyreklikke på ønsket ruter og åpne enhetens nettgrensesnitt. Jeg fant dette mer praktisk enn å måtte gå gjennom postene mine hver gang og se etter riktig IP. Riktignok er nettleseren så som så.
3.3. Bygge et nettverkskart
Først av alt må du lage et nettverkskart som et objekt. Som vanlig - i tråden Nettverk Kartlegg RMB, opprett, velg karttype, sett parametere, og systemet vil da gjøre alt selv.
Korttypene er som følger:
- Custom. Dette er et kart designet for å lages manuelt, på brukerens forespørsel.
- Lag 2 topologi. Dette er et kort som lar deg gjøre alt for brukeren automatisk, basert på lag 2 av OSI-modellen (faktisk bygger det et kart basert på mac-adressene til enhetene).
- IP-topologi, det er det samme Layer 3. Det samme som i tilfellet med Layer 2, kun kortet er bygget på grunnlag av lag 3 av OSI-modellen (IP-adresse).
Når du velger manuell kartlegging, må du dra noder fra treet til kartlaget, koble dem sammen osv. Vanlig tegning.
I de to andre tilfellene må du velge et startpunkt som systemet skal begynne å bygge et kart fra. For eksempel en node til en ruter. Systemet leser data fra den om tilkoblede enheter og portene de er koblet til, hvoretter det leser data fra neste ruter, matcher dem, og så videre. Etter å ha analysert alle enhetene, vil NetXMS selv tegne forbindelser mellom nettverksenheter, og indikerer portene der alt er tilkoblet. Du kan også spesifisere at systemet plasserer sluttenheter (skrivere, PC-er, servere) på kortet, ganske enkelt ved å klikke på det tilsvarende elementet i kortegenskapene (RMB - egenskaper - kortegenskaper). Også på dette punktet kan du stille inn "deteksjonsradius" hvis ønskelig eller nødvendig.
En liten anbefaling. Aktiver egenskapen Tilpass alltid oppsett til skjerm slik at du ikke trenger å rulle gjennom arbeidsområdet og zoome hver gang du oppdaterer nettverkskartet.

Med en distribuert nettverkstopologi kan du overlegge objekter på et kart over området. Du kan også bruke for eksempel et bilde av et rack med utstyr i et serverrom som bakgrunn, og legge de nødvendige gjenstandene over. På denne måten kan du raskt fastslå statusen til enhver enhet i stativet. Dette er etter min mening en særdeles nyttig ting dersom det er nødvendig å overføre saker til en etterfølger eller en nyankommen kollega for å forklare tingenes tilstand. Visuelt, praktisk, selvinnlysende.
3.4. Agenter
Agenter finnes både for Windowsså for LinuxDriftsprinsippet er det samme som for Zabbix-agenter: det installeres på maskinen som målinger skal samles inn fra, og overfører data til overvåkingsserveren. Agenten kan installeres enten før eller etter at en node legges til systemet. Etter at agenten er installert på noden, vil systemet begynne å motta data fra den etter kort tid, ved hjelp av en standardmal. Overvåkede parametere kan legges til enten for en enkelt node eller ved å legge til en eller flere forhåndsdefinerte maler til den. Det anbefales naturligvis å bruke maler, da denne konfigurasjonen er mer fleksibel.
Listen over overvåkede parametere for agenter er ganske omfattende. Hele listen finner du i
Så snart systemet fastslår at en agent opererer på en node, vil det umiddelbart knytte denne noden til en av standardmalene - Windows, Linux, HP-UX, Generisk UNIX, AIX, avhengig av operativsystemet til noden.
Standardmal for Windows-verter:

Du kan legge til en parameter for å spore en bestemt node ved å klikke "PKM-datainnsamlingsparameter", Lengre "RMB i arbeidsområdet - Ny parameter", og velg den du trenger fra listen. Du kan også konfigurere utløsere for den overvåkede parameteren.
Det er viktig at agenter, som Zabbix, kan kjøre tilpassede skript.
Hvordan installerer jeg?Dette er offtopic, fordi alle... hmmm... som de vil.
Spørsmålet her er: skal agenter bare distribueres til servere, eller generelt til alle maskiner på nettverket? Hvis det bare er noen få servere, er den enkleste måten å gjøre det manuelt. Hvis det er mange - domenepolicyer, KIX, PoSh. Hva som helst. Agenter har /SILENT-tasten, som lar dem "injisere" den transparent til brukeren (hvis vi snakker om spredning til alle maskiner på nettverket). Jeg foretrekker skript, siden du kan sette en betingelse og lage et flagg, i motsetning til policyer som vil installere et program hver gang du slår på PC-en. Så vi skriver et skript fra serien "sjekk for tilstedeværelsen av en flaggfil, hvis ikke, kjør installasjonsprogrammet med /SILENT-nøkkelen og etter vellykket installasjon, lag en flaggfil." Profitt.
3.5. Utløsere
Utløsere kan konfigureres til å svare på spesifikke hendelser i dataene som samles inn. For eksempel overskridelse av en viss ping-pong-verdi til ruteren. Du kan også konfigurere varslingsmetoden for hver utløser (for noen er et ikon i konsollen nok, mens andre umiddelbart sender varsler der det er mulig). Reaksjonen på hendelsen velges fra de som er forhåndskonfigurert i handlingskonfigurasjon.
Slik oppretter du en utløser: skriv inn datainnsamlingskonfigurasjonen for en node eller mal, dobbeltklikk på parameteren av interesse (hvis ikke, må du opprette den først), og i egenskapene gå til fanen Terskler, klikk på legg til-knappen.

«Funksjon"—hva eller hvilke verdier du skal ta for å beregne tilstanden. Kan ta følgende verdier (antall verdier som brukes til kontroll er angitt i Prøver-feltet):
— Siste polled verdi: siste verdi(er) mottatt
— Gjennomsnittsverdi: gjennomsnittsverdi fra sist
— Gjennomsnittlig avvik: gjennomsnittlig avvik
— Diff med forrige verdi: forskjell med forrige verdi
— Datainnsamlingsfeil: feil ved mottak av data
— Sum av verdier: sum av verdier
— Skript: verdi oppnådd som et resultat av et brukerskript
«Operasjon"—betingelse for utløsning. Kan ta verdier (verdien er angitt i det tilsvarende verdifeltet):
- <: mindre enn: mindre enn
- <=: mindre enn eller lik: mindre enn eller lik
- == lik: ekvivalent
— >=: stor enn eller lik: større enn eller lik
— >: flott enn: mer enn
- !=: ikke lik: ikke ekvivalent
- som: nær
- ikke som: ikke i nærheten av
Når det gjelder de to siste parameterne, er jeg ikke sikker på hvordan de fungerer. Derfor vil jeg ikke engang gjette hvilke grenser som er bygget inn i dem.
Kort sagt, alt er det samme som i Zabbix, men du trenger ikke å skrive inn formler for hånd, i frykt for å gjøre en feil eller ta feil. For å gjenopprette triggeren (deaktiveringshendelse), vil systemet selv erstatte verdien. (I Zabbix må du skrive på nytt og ikke skrive feil).
3.6. Maler
RMB-opprett mal, skriv inn malnavn. Konfigurasjon av PKM-datainnsamling.
Litt teoriInformasjonen som samles inn kan komme fra flere kilder. Det kan være NetXMS-agentkjører på en maskin kan være "enkel forespørsel" eller "Intern", sendt av serveren selv (for eksempel samme ping), "SNMP" 'sjekkpunkt SNMP" 'Skyv" 'Windows Ytelsestellere" 'SM-CLP", eller tilpasset"manus". For hver type informasjon kan du velge typen som systemet vil forvente ved mottak. For eksempel vil ping returnere en heltallsverdi (heltall), mengden ledig diskplass i byte vil også være heltall, men den samme temperaturen vil ikke lenger være et heltall, det vil si ekte).
For å samle informasjon via SNMP har NetXMS en enorm liste med forhåndsdefinerte parametere, det vil si at du ikke kan legge inn en spesifikk OID, men finne den i MIB-treet, noe som faktisk er ganske problematisk... Men. Som et resultat må du fordype deg i produsentens dokumentasjon og se etter IOD-verdier for hver enhet separat. Du kan kaste bort mye tid på å sette opp lesing av informasjon fra enheter, ved å støte på en systemmelding "USTØTTET", men til slutt viser det seg at denne enheten rett og slett ikke vet hvordan den skal gi den forespurte informasjonen. Det gjenstår bare å røyke manualer og håpe.
For å samle inn informasjon om nodens responstid (ping), må du for eksempel legge til en ny parameter (PKM-ny parameter), i Opprinnelsesfeltet velg Internal, trykk på Velg-knappen og velg Ping Time. Det er et søk, som er noe jeg bare drømte om i Zabbix. Det er også fornuftig å endre nodepollingsperioden (standardinnstillingen er 60 sekunder, det vil si at hvis ruteren slutter å svare umiddelbart etter å ha blitt spurt av overvåkingssystemet, vil det gå nesten et helt minutt før systemet skjønner at noe er galt med det Ja, det vil slå alarm).
Liste over interne data som kan behandles:

Etter at alle nødvendige innstillinger er lagt til malen, må du klikke PKM-søk og velg alle nodene som denne malen skal brukes på (ctrl+LMB). Det er alt. Etter dette vil en gren vises i treet under malen; ved å åpne den kan du se alle nodene som denne malen er brukt på.
Når du kobler en node fra en mal, slutter ikke de innsamlede dataene å samles inn. For å avbryte innsamlingen må du gå til konfigurasjonen for datainnsamling for hver node og slette alt manuelt, eller først slette parameterne fra malen og kun deretter slette noder fra den. Jeg vet ikke hvorfor det ble gjort på denne måten, men etter min mening er dette en ekstremt merkelig ting. Men... Det er sånn det er.
I en mal kan du velge de ønskede dataene som skal samles inn og kopiere dem til en annen mal. Massivt. Og du trenger ikke å kopiere og lime fra en mal til en annen for hånd... Jeg begynner allerede å hate Zabbix..
3.7. Dashboards
Merkelig nok inneholder NetXMS Wiki om dette emnet bare én lenke til youtube: , er det ikke engang en liste eller beskrivelse av elementer som kan legges til dashbordet. I prinsippet er alt like intuitivt der. Etiketten - det er bare... vel... Label... Jeg vet ikke engang hvordan jeg skal oversette det. Med et ord brukes et felt med en inskripsjon for å betegne og skille elementer, siden elementene i seg selv ikke inneholder navn. Linjediagram – Dette er en linjegraf. Bar Chart er et diagram. Alarmvisning — liste over advarsler for de valgte nodene. Kort sagt, navnene taler for seg selv.
Deretter må du åpne dashbordegenskapene og konfigurere visninger. Vi er interessert i fanen Dashboard Elements. Antall kolonner er antall kolonner, elementer som vil bli plassert horisontalt. Hvert objekt har sine egne egenskaper, og jeg vil anbefale å fjerne merket for Layout-Grab overdreven vertikal plass for å minimere størrelsen på hvert element.

3.8. Handlingskonfigurasjon
(Konfigurasjon-Handlinger Konfigurasjon)
I hovedsak er dette handlinger som svar på utløsere.

NetXMS kan sende e-post, sms, xmpp-melding som svar på en trigger. Alt er trivielt her - bare fyll ut de obligatoriske feltene.
Du kan også:
— Overfør varselet til en annen NetXMS-server
— Kjør kommandoen på NetXMS-administrasjonsserveren
— Utfør kommandoen på noden ved hjelp av NetXMS-agenten
— Kjør NXSL-skript (NSXL er ditt )
Etter å ha opprettet en handling, kan du konfigurere dens utførelsesforsinkelse, samt bruke en makro for utførelse. Forsinkelsestiden er nødvendig for ikke å forstyrre operatøren i tilfelle problemet løser seg selv (for eksempel var responstiden på en ping-forespørsel lengre enn den angitte verdien, men under neste kontroll kan den gå tilbake til normalen, så hvorfor bry seg om slike bagateller?).
3.9. Differensiering av tilgangsrettigheter
For hvert objekt kan du konfigurere dine egne tilgangsrettigheter. For hvert objekt inne i et annet objekt kan du også konfigurere tilgangsrettigheter. Dette gir mulighet for svært fleksibel fordeling av ansvar og overvåkingsmuligheter for ulike brukergrupper. Det var alt jeg ville si.
4. Konklusjon
Jeg vil gjerne tilbakevise tittelen på min egen artikkel. NetXMS er ikke for de late. Det er bare det at utviklerne ikke fokuserte på funksjonalitet, som noen, men blant annet tok de seg av grensesnittet.
La oss gjøre det på denne måten. Jeg brukte Zabbix og NetXMS. Av denne grunn vil jeg ganske enkelt skrive ned følelsene mine om disse to systemene.
So.
NetXMS virker for meg å være et ekstremt brukervennlig system. Vel... til administratoren... ja, til administratoren. Den har det som kalles et intuitivt grensesnitt, og det er veldig kult. Du trenger ikke å skrive dine egne formler, les en haug med medfølgende dokumentasjon for å aktivere kontroll av ping før bytte eller en annen enkel ting. Men. I Zabbix er ikke denne veldig enkle tingen mye forskjellig fra noe virkelig vanskelig, det vil si at hvis du mestrer det, kan du gjøre alt annet på samme måte. NetXMS har hint; de fleste parametere kan finnes i grensesnittet, velges med musen og konfigureres. I Zabbix må du finne ut om systemet kan gjøre det og det, og i så fall hvordan det skrives og hvilke parametere det returnerer. Zabbix vinner i fellesskapet og tonnevis av maler for alle anledninger... hvis du finner det du trenger i dette fjellet av søppel... På den annen side har NetXMS også mange fans og tilleggsprogrammer de har laget for dette systemet. Og selve systemet kan overvåke de mest populære applikasjonene ut av esken, som det står på hovedsiden til prosjektet.
Den største fordelen med NetXMS versus Zabbix for meg var muligheten til å kjøre et skript på en problemnode som svar på en trigger. Hvis CPU-temperaturen stiger over terskelen, vil den slå av selve verten. Og så finner vi ut hva problemet er. Kanskje Zabbix også har en slik ting, men jeg kunne ikke. Det samme gjelder for overvåking av porter på rutere. Og her går det... Vel, som det skjer... Du må mestre skriptspråket, og det er alt...
Tilgangsrettigheter i NetXMS lar deg svært fleksibelt differensiere egenskapene til forskjellige brukere av systemet. Men for å sette opp alt dette må du virkelig fikse.
Generelt er systemene ganske like, og deres evner, ved første øyekast, virker i det minste sammenlignbare. Selv om det føles som om Zabbix kan gjøre mer, er disse egenskapene gjemt dypt under panseret og er uoppnåelige for en ren dødelig administrator. NetXMS virker enkelt og oversiktlig, vennlig og hyggelig.
Zabbix har utmerket dokumentasjon, wiki, how to, FAQ, beste praksis, samt ulike fora, etc., hvor du kan finne svar på nesten alle spørsmål. Og hvis noe, spør din egen.
For å oppsummere, vil jeg anbefale NetXMS for folk som nettopp har startet opp eller de som ikke trenger å dykke dypt inn i overvåking av alt. Jeg er sikker på at hvis du ser nærmere på det, kan du gjøre noen veldig, veldig subtile observasjoner i det.
Men likevel, den største fordelen jeg ser er det veldig fine grensesnittet og det enkle oppsettet.
5. Materialer brukt
youtube kanal
Kilde: www.habr.com
