Zabbix 4.2 utgitt

Teamet vårt er veldig glad for å dele nyheten om at et gratis overvåkingssystem med åpen kildekode har blitt utgitt Zabbix 4.2!

Zabbix 4.2 utgitt

Er versjon 4.2 svaret på hovedspørsmålet om liv, universet og overvåking generelt? La oss ta en titt!

La oss huske at Zabbix er et universelt system for å overvåke ytelsen og tilgjengeligheten til servere, ingeniør- og nettverksutstyr, applikasjoner, databaser, virtualiseringssystemer, containere, IT-tjenester og webtjenester.

Zabbix implementerer en full syklus fra å samle inn data, behandle og transformere dem, analysere de mottatte dataene, og avslutte med å lagre disse dataene, visualisere og sende varsler ved hjelp av eskaleringsregler. Systemet gir også fleksible alternativer for å utvide datainnsamling og varslingsmetoder, samt automatiseringsmuligheter via API. Et enkelt webgrensesnitt implementerer sentralisert styring av overvåkingskonfigurasjoner og distribusjon av tilgangsrettigheter til ulike brukergrupper. Prosjektkoden er fritt distribuert under en lisens GPLv2.

Zabbix 4.2 er en ny ikke-LTS-versjon med en forkortet offisiell støtteperiode. For brukere som er fokusert på en lang livssyklus av programvareprodukter, anbefaler vi å bruke LTS-versjoner, for eksempel 3.0 og 4.0.

Så la oss snakke om de nye funksjonene og store forbedringene i versjon 4.2:

Flere offisielle plattformer

Zabbix 4.2 utgitt
I tillegg til de eksisterende offisielle pakkene, tilbyr vi også nybygg for:

  • RaspberryPi, Mac OS/X, SUSE Enterprise Linux Server 12
  • MSI for Windows-agent
  • Docker-bilder

Innebygd Prometheus-støtte for applikasjonsovervåking

Zabbix kan samle inn data på ulike måter (push/pull) fra ulike datakilder. Disse er JMX, SNMP, WMI, HTTP/HTTPS, RestAPI, XML Soap, SSH, Telnet, agenter og skript og andre kilder. Møt nå Prometheus-støtte!

Strengt tatt var det mulig å samle inn data fra Prometheus-eksportører tidligere takket være HTTP/HTTPS-dataelementtypen og regulære uttrykk.

Den nye versjonen lar deg imidlertid jobbe med Prometheus så effektivt som mulig på grunn av innebygd støtte for spørringsspråket PromQL. Og bruken av avhengige beregninger lar deg samle inn og behandle data mest effektivt: du ber om data én gang, og så sorterer vi dem i henhold til nødvendige beregninger.

Zabbix 4.2 utgitt
Hente verdien av en bestemt beregning

Det er viktig å merke seg at oppdagelse på lavt nivå nå kan bruke innsamlede data til å generere beregninger automatisk. I dette tilfellet konverterer Zabbix de mottatte dataene til JSON-format, som er veldig praktisk å jobbe med.

Zabbix 4.2 utgitt
Finne beregninger ved hjelp av et filter i PromQL-spørringsspråket

For øyeblikket er det flere 300 integrasjoner og overvåkingsoppskrifter tredjepartstjenester og applikasjoner som bruker Zabbix. Prometheus-støtte lar deg legge til et helt sett med applikasjoner som har offisielle eller fellesskapsstøttede Prometheus-eksportører. Dette er overvåking av populære tjenester, containere og skyressurser.

Effektiv høyfrekvent overvåking

Ønsker vi å oppdage problemer så raskt som mulig? Selvfølgelig, ingen tvil! Oftere enn ikke resulterer denne tilnærmingen i at vi må spørre enheter og samle inn data for ofte, noe som legger en større belastning på overvåkingssystemet. Hvordan unngå dette?

Vi har implementert en strupemekanisme i forbehandlingsreglene. Gassregulering gir oss i hovedsak muligheten til å hoppe over identiske verdier.

La oss anta at vi overvåker tilstanden til en kritisk applikasjon. Hvert sekund sjekker vi om applikasjonen vår fungerer eller ikke. Samtidig mottar Zabbix en kontinuerlig strøm av data fra 1 (fungerer) og 0 (fungerer ikke). For eksempel: 1111111111110001111111111111...

Når alt er i orden med søknaden vår, mottar Zabbix en flyt på kun en. Må de behandles? Generelt nei, fordi vi kun er interessert i å endre tilstanden til applikasjonen, ønsker vi ikke å samle inn og lagre så mye data. Så, struping lar deg hoppe over en verdi hvis den er identisk med den forrige. Som et resultat vil vi kun motta data om tilstandsendringen, for eksempel 01010101... Dette er ganske nok informasjon til å oppdage problemer!

Zabbix ignorerer ganske enkelt manglende verdier, de er ikke registrert i historien og påvirker ikke utløsere på noen måte. Fra Zabbix sitt synspunkt mangler det ingen verdier.

Zabbix 4.2 utgitt
Ignorer dupliserte verdier

Flott! Vi kan nå polle enheter svært ofte og oppdage problemer umiddelbart uten å lagre unødvendig informasjon i en database.

Hva med grafikken? De vil være tomme på grunn av mangel på data! Og hvordan kan du finne ut om Zabbix samler inn data hvis de fleste av disse dataene mangler?

Vi tenkte på det også! Zabbix tilbyr en annen type struping, struping med hjerteslag.

Zabbix 4.2 utgitt
En gang i minuttet sjekker vi om metrikken er i live

I dette tilfellet vil Zabbix, til tross for den gjentatte dataflyten, lagre minst én verdi i det angitte tidsintervallet. Hvis data samles inn én gang per sekund, og intervallet er satt til ett minutt, vil Zabbix gjøre om hver andre strøm av enheter til en hver minutt-strøm. Det er lett å se at dette fører til en 60 ganger komprimering av de mottatte dataene.

Nå er vi sikre på at dataene samles inn, nodata() triggerfunksjonen fungerer og alt er bra med grafene!

Validering av innsamlede data og feilhåndtering

Ingen av oss ønsker å samle inn feilaktige eller upålitelige data. For eksempel vet vi at en temperatursensor skal returnere data mellom 0°C og 100°C, og enhver annen verdi skal anses som falsk og/eller ignorert.

Nå er dette mulig ved å bruke datavalideringsregler innebygd i forhåndsbehandling for overholdelse eller manglende overholdelse av regulære uttrykk, verdiområder, JSONPath og XMLPath.

Nå kan vi kontrollere reaksjonen på feilen. Hvis temperaturen er utenfor området, kan vi ganske enkelt ignorere en slik verdi, angi en standardverdi (for eksempel 0°C), eller definere vår egen feilmelding, for eksempel "Sensor skadet" eller "Bytt batteri."

Zabbix 4.2 utgitt
Temperaturen skal være fra 0 til 100, ignorer resten

Et godt eksempel på bruk av validering er muligheten til å sjekke inndata for tilstedeværelsen av en feilmelding og angi denne feilen for hele beregningen. Dette er en svært nyttig funksjonalitet når du henter data fra eksterne APIer.

Enhver datatransformasjon ved hjelp av JavaScript

Hvis innebygde forbehandlingsregler ikke var nok for oss, tilbyr vi nå full frihet ved å bruke tilpassede JavaScript-skript!

Zabbix 4.2 utgitt
Bare én linje med kode for å konvertere Fahrenheit til Celsius

Dette åpner for uendelige muligheter for behandling av innkommende data. Den praktiske fordelen med denne funksjonaliteten er at vi ikke lenger trenger de eksterne skriptene som vi brukte til å gjøre noen datamanipulering. Nå kan alt dette gjøres ved hjelp av JavaScript.

Nå er datatransformasjon, aggregering, filtre, aritmetiske og logiske operasjoner og mye mer mulig!

Zabbix 4.2 utgitt
Trekker ut nyttig informasjon fra Apache mod_status-utgang!

Testing av forbehandling

Nå trenger vi ikke å gjette hvordan de komplekse forbehandlingsskriptene våre fungerer. Det er nå en praktisk måte å sjekke om forbehandlingen fungerer riktig direkte fra grensesnittet!

Zabbix 4.2 utgitt

Vi behandler millioner av beregninger per sekund!

Før Zabbix 4.2 ble forbehandling eksklusivt håndtert av Zabbix-serveren, noe som begrenset muligheten til å bruke proxyer for lastdistribusjon.

Fra og med Zabbix 4.2 får vi utrolig effektiv belastningsskalering gjennom støtte for forhåndsbehandling på proxy-siden. Nå gjør fullmektiger det!

Zabbix 4.2 utgitt

I kombinasjon med struping tillater denne tilnærmingen høyfrekvent, storskala overvåking og millioner av kontroller per sekund, uten å laste den sentrale Zabbix-serveren. Proxyer behandler gigantiske mengder data, mens bare en liten del av den når Zabbix-serveren på grunn av struping, en eller to størrelsesordener mindre.

Enklere oppdagelse på lavt nivå

Husk at lavnivåoppdaging (LLD) er en veldig kraftig mekanisme for automatisk å oppdage alle slags overvåkingsressurser (filsystemer, prosesser, applikasjoner, tjenester, etc.) og automatisk opprette dataelementer, triggere, nettverksnoder basert på dem og andre gjenstander. Dette sparer utrolig tid, forenkler konfigurasjonen og lar én mal brukes på tvers av verter med forskjellige overvåkingsressurser.

Oppdaging på lavt nivå krevde spesielt formatert JSON som input. Det er det, det vil ikke skje lenger!

Zabbix 4.2 tillater lavnivåoppdagelse (LLD) for å bruke vilkårlige data i JSON-format. Hvorfor er det viktig? Dette lar deg kommunisere for eksempel med eksterne APIer uten å ty til skript og bruke informasjonen som mottas til å automatisk lage verter, dataelementer og triggere.

Sammen med JavaScript-støtte skaper dette fantastiske muligheter for å lage maler for å jobbe med ulike datakilder, som for eksempel sky-APIer, applikasjons-APIer, data i XML, CSV-formater og så videre og så videre.

Zabbix 4.2 utgitt
Koble JSON med informasjon om prosesser med LLD

Mulighetene er virkelig uendelige!

TimescaleDB-støtte

Zabbix 4.2 utgitt

Hva er TimescaleDB? Dette er vanlig PostgreSQL pluss en utvidelsesmodul fra TimescaleDB-teamet. TimescaleDB lover bedre ytelse på grunn av mer effektive algoritmer og datastruktur.

I tillegg er en annen fordel med TimescaleDB den automatiske partisjoneringen av tabeller med historie. TimescaleDB er rask og enkel å vedlikeholde! Selv om jeg bør merke meg at teamet vårt ennå ikke har gjort en seriøs ytelsessammenligning med vanlig PostgreSQL.

For øyeblikket er TimescaleDB et ganske ungt og raskt utviklende produkt. Bruk med forsiktighet!

Enkel taghåndtering

Hvis tidligere tagger kun kunne administreres på utløsernivå, er tagadministrasjonen nå mye mer fleksibel. Zabbix støtter tagger for maler og verter!

Alle oppdagede problemer mottar tagger ikke bare av utløseren, men også fra verten, så vel som malene til denne verten.

Zabbix 4.2 utgitt
Definere tagger for en nettverksnode

Mer fleksibel automatisk registrering

Zabbix 4.2 lar deg filtrere verter etter navn ved å bruke regulære uttrykk. Dette gjør det mulig å lage ulike deteksjonsscenarier for ulike grupper av nettverksnoder. Det er spesielt praktisk hvis vi bruker komplekse enhetsnavningsregler.

Mer fleksibel nettverksoppdagelse

En annen forbedring er knyttet til navngivning av nettverksnoder. Det er nå mulig å administrere enhetsnavn under nettverksoppdagelse og hente enhetsnavnet fra en metrisk verdi.

Dette er en svært nødvendig funksjonalitet, spesielt for nettverksoppdagelse ved bruk av SNMP og Zabbix-agent.

Zabbix 4.2 utgitt
Tilordne automatisk det lokale vertsnavnet til et synlig navn

Kontrollere funksjonaliteten til varslingsmetoder

Nå kan du sende deg selv en testmelding direkte fra nettgrensesnittet og sjekke om varslingsmetoden fungerer. Denne funksjonaliteten er spesielt nyttig for å teste skript for å kombinere Zabbix med ulike varslingssystemer, oppgavesystemer og andre eksterne programmer og APIer.

Zabbix 4.2 utgitt

Fjernovervåking av Zabbix infrastrukturkomponenter

Det er nå mulig å eksternt overvåke interne beregninger for Zabbix-serveren og proxyen (ytelsesmålinger og helsen til Zabbix-komponenter).

Hva er den til? Funksjonaliteten lar deg overvåke interne beregninger av servere og proxyer fra utsiden, lar deg raskt oppdage og varsle om problemer selv om selve komponentene er overbelastet eller for eksempel det er en stor mengde usendte data på proxyen.

HTML-formatstøtte for e-postmeldinger

Nå er vi ikke begrenset til ren tekst og kan lage vakre e-postmeldinger, takket være støtten til HTML-formatet. Det er på tide å lære HTML + CSS!

Zabbix 4.2 utgitt
Meldinger er lettere å forstå selv med minimal bruk av HTML

Tilgang til eksterne systemer fra nettverkskort

Det er støtte for et helt sett med nye makroer i egendefinerte URL-er for bedre integrering av kart med eksterne systemer. Dette lar deg åpne for eksempel en billett i oppgavesystemet med ett eller to klikk på ikonet til en nettverksnode.

Zabbix 4.2 utgitt
Åpne en billett i Jira med ett klikk

En oppdagelsesregel kan være et avhengig dataelement

Hvorfor er dette nødvendig - spør du. Dette gjør at de underliggende metriske dataene kan brukes til både oppdagelse og direkte datainnsamling. For eksempel, i tilfelle av å samle inn data fra en Prometheus-eksportør, vil Zabbix foreta en HTTP-forespørsel og umiddelbart bruke den mottatte informasjonen for alle avhengige dataelementer: metriske verdier og lavnivå oppdagelsesregler.

En ny måte å visualisere problemer på kart

Det er nå støtte for animerte GIF-bilder på kart for mer synlig visualisering av problemer.

Zabbix 4.2 utgitt
Problematiske enheter har blitt mer synlige

Trekker ut data fra HTTP-hoder i nettovervåking

I webovervåking er muligheten til å velge data fra den mottatte HTTP-headeren lagt til.

Dette lar deg lage flertrinns webovervåking eller tredjeparts API-overvåkingsscenarier ved å bruke autorisasjonstokenet som er oppnådd i ett av trinnene.

Zabbix 4.2 utgitt
Trekker ut AuthID fra HTTP-hodet

Zabbix Sender bruker alle IP-adresser

Zabbix Sender sender nå data til alle IP-adresser fra ServerActive-parameteren i agentkonfigurasjonsfilen.

Zabbix 4.2 utgitt

Praktisk nytt filter i triggerkonfigurasjon

Utløserkonfigurasjonssiden har nå et utvidet filter for raskt og praktisk valg av utløsere basert på spesifiserte kriterier.

Zabbix 4.2 utgitt
Velge utløsere relatert til K8S-tjenesten

Vis nøyaktig tid

Alt er enkelt her, nå viser Zabbix det nøyaktige tidspunktet når du holder musen over diagrammet.

Zabbix 4.2 utgitt

Andre innovasjoner

  • Implementerte en mer forutsigbar algoritme for å endre rekkefølgen på widgets i dashbordet
  • Evne til å masseendre parametere for dataelementprototyper
  • IPv6-støtte for DNS-sjekker: "net.dns" og "new.dns.record"
  • Lagt til "hopp"-parameter for "vmware.eventlog"-sjekker
  • Feil ved utførelse av forhåndsbehandlingstrinn inkluderer trinnnummer

Hvordan oppdatere?

For å oppgradere fra tidligere versjoner trenger du bare å installere nye binærfiler (servere og proxyer) og et nytt grensesnitt. Zabbix vil automatisk oppdatere databasen. Det er ikke nødvendig å installere nye agenter.

Vi arrangerer gratis webinarer for de som ønsker å lære mer om Zabbix 4.2 og har muligheten til å stille spørsmål til Zabbix-teamet. Melde deg på!

Ikke glem det populære Telegram kanal Zabbix-fellesskapet, hvor du alltid kan få råd og svar på spørsmålene dine på russisk fra mer erfarne kolleger, og, hvis du er heldig, fra Zabbix-utviklerne selv. Anbefales for nybegynnere gruppe for nybegynnere.

Nyttige lenker

- Utgiv notater
- Oppgrader notater
- Original artikkel

Kilde: www.habr.com

Legg til en kommentar