Zabbix 4.2 udgivet

Vores team er meget glade for at dele nyheden om, at et gratis, open source-overvågningssystem er blevet frigivet Zabbix 4.2!

Zabbix 4.2 udgivet

Er version 4.2 svaret på hovedspørgsmålet om liv, universet og overvågning generelt? Lad os tage et kig!

Lad os huske på, at Zabbix er et universelt system til overvågning af ydeevnen og tilgængeligheden af ​​servere, ingeniør- og netværksudstyr, applikationer, databaser, virtualiseringssystemer, containere, it-tjenester og webtjenester.

Zabbix implementerer en fuld cyklus fra at indsamle data, behandle og transformere dem, analysere de modtagne data og slutte med lagring af disse data, visualisering og afsendelse af advarsler ved hjælp af eskaleringsregler. Systemet giver også fleksible muligheder for at udvide dataindsamling og alarmeringsmetoder samt automatiseringsmuligheder via API. En enkelt webgrænseflade implementerer centraliseret styring af overvågningskonfigurationer og distribution af adgangsrettigheder til forskellige brugergrupper. Projektkoden distribueres frit under en licens GPLv2.

Zabbix 4.2 er en ny ikke-LTS-version med en forkortet officiel supportperiode. For brugere, der er fokuseret på en lang livscyklus af softwareprodukter, anbefaler vi at bruge LTS-versioner, såsom 3.0 og 4.0.

Så lad os tale om de nye funktioner og store forbedringer i version 4.2:

Flere officielle platforme

Zabbix 4.2 udgivet
Ud over de eksisterende officielle pakker tilbyder vi også nye builds til:

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

Indbygget Prometheus-understøttelse til applikationsovervågning

Zabbix kan indsamle data på forskellige måder (push/pull) fra forskellige datakilder. Disse er JMX, SNMP, WMI, HTTP/HTTPS, RestAPI, XML Soap, SSH, Telnet, agenter og scripts og andre kilder. Mød nu Prometheus support!

Strengt taget var det tidligere muligt at indsamle data fra Prometheus-eksportører takket være HTTP/HTTPS-dataelementtypen og regulære udtryk.

Den nye version giver dig dog mulighed for at arbejde med Prometheus så effektivt som muligt på grund af indbygget understøttelse af PromQL-forespørgselssproget. Og brugen af ​​afhængige metrics giver dig mulighed for at indsamle og behandle data mest effektivt: Du beder om data én gang, og så sorterer vi dem efter de nødvendige metrics.

Zabbix 4.2 udgivet
Hentning af værdien af ​​en specifik metric

Det er vigtigt at bemærke, at opdagelse på lavt niveau nu kan bruge indsamlede data til automatisk at generere metrics. I dette tilfælde konverterer Zabbix de modtagne data til JSON-format, hvilket er meget praktisk at arbejde med.

Zabbix 4.2 udgivet
Find metrics ved hjælp af et filter i PromQL-forespørgselssproget

I øjeblikket er der flere 300 integrationer og overvågningsopskrifter tredjepartstjenester og -applikationer, der bruger Zabbix. Prometheus-support giver dig mulighed for at tilføje et helt sæt applikationer, der har officielle eller fællesskabsstøttede Prometheus-eksportører. Dette er overvågning af populære tjenester, containere og cloud-ressourcer.

Effektiv højfrekvent overvågning

Ønsker vi at opdage problemer så hurtigt som muligt? Selvfølgelig, ingen tvivl! Oftere end ikke resulterer denne tilgang i, at vi bliver nødt til at polle enheder og indsamle data for ofte, hvilket belaster overvågningssystemet større. Hvordan undgår man dette?

Vi har implementeret en drosselmekanisme i forbehandlingsreglerne. Throttling giver os i det væsentlige mulighed for at springe identiske værdier over.

Lad os antage, at vi overvåger tilstanden af ​​en kritisk applikation. Hvert sekund tjekker vi, om vores applikation fungerer eller ej. Samtidig modtager Zabbix en kontinuerlig strøm af data fra 1 (fungerer) og 0 (fungerer ikke). For eksempel: 1111111111110001111111111111...

Når alt er i orden med vores ansøgning, så modtager Zabbix et flow på kun én. Skal de behandles? Generelt nej, fordi vi kun er interesseret i at ændre applikationens tilstand, ønsker vi ikke at indsamle og opbevare så mange data. Så regulering giver dig mulighed for at springe en værdi over, hvis den er identisk med den forrige. Som et resultat vil vi kun modtage data om tilstandsændringen, f.eks. 01010101... Dette er tilstrækkelig information til at opdage problemer!

Zabbix ignorerer simpelthen manglende værdier, de er ikke registreret i historien og påvirker ikke udløsere på nogen måde. Fra Zabbix' synspunkt mangler der ingen værdier.

Zabbix 4.2 udgivet
Ignorer dublerede værdier

Store! Vi kan nu polle enheder meget ofte og opdage problemer med det samme uden at gemme unødvendig information i en database.

Hvad med grafikken? De vil være tomme på grund af manglende data! Og hvordan kan du se, om Zabbix indsamler data, hvis de fleste af disse data mangler?

Det tænkte vi også på! Zabbix tilbyder en anden type drosling, drosling med hjerteslag.

Zabbix 4.2 udgivet
En gang i minuttet tjekker vi, om metrikken er i live

I dette tilfælde vil Zabbix, på trods af det gentagne dataflow, gemme mindst én værdi i det angivne tidsinterval. Hvis data indsamles en gang i sekundet, og intervallet er indstillet til et minut, vil Zabbix forvandle hver anden strøm af enheder til en hver minuts strøm. Det er let at se, at dette fører til en 60-dobbelt komprimering af de modtagne data.

Nu er vi sikre på, at dataene bliver indsamlet, nodata() trigger-funktionen virker, og alt er fint med graferne!

Validering af indsamlede data og fejlhåndtering

Ingen af ​​os ønsker at indsamle fejlagtige eller upålidelige data. For eksempel ved vi, at en temperatursensor skal returnere data mellem 0°C og 100°C, og enhver anden værdi skal betragtes som falsk og/eller ignoreres.

Nu er dette muligt ved at bruge datavalideringsregler indbygget i forbehandling for overholdelse eller manglende overholdelse af regulære udtryk, værdiområder, JSONPath og XMLPath.

Nu kan vi kontrollere reaktionen på fejlen. Hvis temperaturen er uden for området, kan vi simpelthen ignorere en sådan værdi, indstille en standardværdi (for eksempel 0°C) eller definere vores egen fejlmeddelelse, for eksempel "Sensor beskadiget" eller "Udskift batteri."

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

Et godt eksempel på brugen af ​​validering er evnen til at kontrollere inputdata for tilstedeværelsen af ​​en fejlmeddelelse og indstille denne fejl for hele metrikken. Dette er en meget nyttig funktionalitet, når du henter data fra eksterne API'er.

Enhver datatransformation ved hjælp af JavaScript

Hvis indbyggede forbehandlingsregler ikke var nok for os, tilbyder vi nu fuld frihed ved at bruge tilpassede JavaScript-scripts!

Zabbix 4.2 udgivet
Kun en linje kode til at konvertere Fahrenheit til Celsius

Dette åbner op for uendelige muligheder for at behandle indgående data. Den praktiske fordel ved denne funktionalitet er, at vi ikke længere har brug for de eksterne scripts, som vi brugte til at foretage nogen datamanipulation. Nu kan alt dette gøres ved hjælp af JavaScript.

Nu er datatransformation, aggregering, filtre, aritmetiske og logiske operationer og meget mere muligt!

Zabbix 4.2 udgivet
Udtrække nyttig information fra Apache mod_status output!

Test af forbehandling

Nu behøver vi ikke at gætte, hvordan vores komplekse forbehandlingsscripts fungerer. Der er nu en bekvem måde at kontrollere, om forbehandling fungerer korrekt direkte fra grænsefladen!

Zabbix 4.2 udgivet

Vi behandler millioner af metrics i sekundet!

Før Zabbix 4.2 blev forbehandling udelukkende håndteret af Zabbix-serveren, hvilket begrænsede muligheden for at bruge proxyer til belastningsdistribution.

Fra og med Zabbix 4.2 får vi en utrolig effektiv belastningsskalering på grund af understøttelse af forbehandling på proxy-siden. Nu gør fuldmægtige det!

Zabbix 4.2 udgivet

I kombination med drosling giver denne tilgang mulighed for højfrekvent, storstilet overvågning og millioner af kontroller i sekundet uden at indlæse den centrale Zabbix-server. Proxyer behandler gigantiske mængder data, mens kun en lille del af dem når Zabbix-serveren på grund af drosling, en eller to størrelsesordener mindre.

Nemmere registrering på lavt niveau

Husk på, at low-level discovery (LLD) er en meget kraftfuld mekanisme til automatisk at opdage enhver form for overvågningsressourcer (filsystemer, processer, applikationer, tjenester osv.) og automatisk oprette dataelementer, triggere, netværksknuder baseret på dem og andre genstande. Dette sparer utrolig tid, forenkler konfigurationen og gør det muligt at bruge én skabelon på tværs af værter med forskellige overvågningsressourcer.

Registrering på lavt niveau krævede specielt formateret JSON som input. Det er det, det sker ikke mere!

Zabbix 4.2 tillader low-level discovery (LLD) at bruge vilkårlige data i JSON-format. Hvorfor er det vigtigt? Dette giver dig mulighed for at kommunikere for eksempel med eksterne API'er uden at ty til scripts og bruge de modtagne oplysninger til automatisk at oprette værter, dataelementer og triggere.

Sammen med JavaScript-understøttelse skaber dette fantastiske muligheder for at lave skabeloner til at arbejde med forskellige datakilder, såsom for eksempel cloud-API'er, applikations-API'er, data i XML, CSV-formater og så videre og så videre.

Zabbix 4.2 udgivet
Sammenkædning af JSON med information om processer med LLD

Mulighederne er virkelig uendelige!

TimescaleDB support

Zabbix 4.2 udgivet

Hvad er TimescaleDB? Dette er almindelig PostgreSQL plus et udvidelsesmodul fra TimescaleDB-teamet. TimescaleDB lover bedre ydeevne på grund af mere effektive algoritmer og datastruktur.

Derudover er en anden fordel ved TimescaleDB den automatiske partitionering af tabeller med historie. TimescaleDB er hurtig og nem at vedligeholde! Selvom jeg skal bemærke, at vores team endnu ikke har foretaget en seriøs præstationssammenligning med almindelig PostgreSQL.

I øjeblikket er TimescaleDB et ret ungt og hurtigt udviklende produkt. Brug med forsigtighed!

Nem taghåndtering

Hvis tidligere tags kun kunne administreres på trigger-niveau, er tag-styring nu meget mere fleksibel. Zabbix understøtter tags til skabeloner og værter!

Alle detekterede problemer modtager tags, ikke kun af triggeren, men også af værten, såvel som skabelonerne for denne vært.

Zabbix 4.2 udgivet
Definering af tags for en netværksknude

Mere fleksibel automatisk registrering

Zabbix 4.2 giver dig mulighed for at filtrere værter efter navn ved hjælp af regulære udtryk. Dette gør det muligt at oprette forskellige detektionsscenarier for forskellige grupper af netværksknuder. Det er især praktisk, hvis vi bruger komplekse enhedsnavngivningsregler.

Mere fleksibel netværksopdagelse

En anden forbedring vedrører navngivningen af ​​netværksknuder. Det er nu muligt at administrere enhedsnavne under netværksopdagelse og hente enhedsnavnet fra en metrisk værdi.

Dette er en meget nødvendig funktionalitet, især til netværksopdagelse ved hjælp af SNMP og Zabbix-agent.

Zabbix 4.2 udgivet
Tildel automatisk det lokale værtsnavn til et synligt navn

Kontrol af funktionaliteten af ​​meddelelsesmetoder

Nu kan du sende dig selv en testbesked direkte fra webgrænsefladen og kontrollere, om notifikationsmetoden virker. Denne funktionalitet er især nyttig til at teste scripts til at kombinere Zabbix med forskellige alarmsystemer, opgavesystemer og andre eksterne programmer og API'er.

Zabbix 4.2 udgivet

Fjernovervågning af Zabbix infrastrukturkomponenter

Det er nu muligt at fjernovervåge interne målinger for Zabbix-serveren og proxyen (ydelsesmålinger og Zabbix-komponenters tilstand).

Hvad er det for? Funktionaliteten giver dig mulighed for at overvåge interne målinger af servere og proxyer udefra, giver dig mulighed for hurtigt at opdage og underrette om problemer, selvom selve komponenterne er overbelastede, eller der for eksempel er en stor mængde usendte data på proxyen.

HTML-format understøttelse af e-mail-beskeder

Nu er vi ikke begrænset til almindelig tekst og kan skabe smukke e-mail-beskeder, takket være understøttelsen af ​​HTML-formatet. Det er tid til at lære HTML + CSS!

Zabbix 4.2 udgivet
Meddelelser er nemmere at forstå selv med minimal brug af HTML

Adgang til eksterne systemer fra netværkskort

Der er understøttelse af et helt sæt nye makroer i brugerdefinerede URL'er for bedre integration af kort med eksterne systemer. Dette giver dig mulighed for at åbne for eksempel en billet i opgavesystemet med et eller to klik på ikonet for en netværksknude.

Zabbix 4.2 udgivet
Åbn en billet i Jira med et enkelt klik

En opdagelsesregel kan være et afhængigt dataelement

Hvorfor er det nødvendigt - spørger du. Dette gør det muligt at bruge de underliggende metriske data til både opdagelse og direkte dataindsamling. For eksempel, i tilfælde af indsamling af data fra en Prometheus-eksportør, vil Zabbix lave en HTTP-anmodning og straks bruge den modtagne information til alle afhængige dataelementer: metriske værdier og registreringsregler på lavt niveau.

En ny måde at visualisere problemer på kort

Der er nu understøttelse af animerede GIF-billeder på kort for mere synlig visualisering af problemer.

Zabbix 4.2 udgivet
Problematiske enheder er blevet mere synlige

Udtræk af data fra HTTP-headere i webovervågning

I webovervågning er muligheden for at vælge data fra den modtagne HTTP-header blevet tilføjet.

Dette giver dig mulighed for at oprette webovervågning i flere trin eller tredjeparts API-overvågningsscenarier ved hjælp af det autorisationstoken, der er opnået i et af trinene.

Zabbix 4.2 udgivet
Udtrækker AuthID fra HTTP-headeren

Zabbix Sender bruger alle IP-adresser

Zabbix Sender sender nu data til alle IP-adresser fra ServerActive-parameteren i agentkonfigurationsfilen.

Zabbix 4.2 udgivet

Praktisk nyt filter i trigger-konfiguration

Trigger-konfigurationssiden har nu et udvidet filter til hurtigt og bekvemt valg af triggere baseret på specificerede kriterier.

Zabbix 4.2 udgivet
Valg af triggere relateret til K8S-tjenesten

Vis det nøjagtige tidspunkt

Alt er enkelt her, nu viser Zabbix det nøjagtige tidspunkt, når du holder musen over kortet.

Zabbix 4.2 udgivet

Andre innovationer

  • Implementeret en mere forudsigelig algoritme til at ændre rækkefølgen af ​​widgets i dashboardet
  • Evne til at masseændre parametre for dataelementprototyper
  • IPv6-understøttelse af DNS-tjek: "net.dns" og "new.dns.record"
  • Tilføjet "spring"-parameter til "vmware.eventlog"-tjek
  • Fejl ved udførelse af forbehandlingstrin inkluderer trinnummer

Hvordan opgraderes?

For at opgradere fra tidligere versioner behøver du kun at installere nye binære filer (servere og proxyer) og en ny grænseflade. Zabbix vil automatisk opdatere databasen. Der er ingen grund til at installere nye agenter.

Vi afholder gratis webinarer for dem, der ønsker at lære mere om Zabbix 4.2 og har mulighed for at stille spørgsmål til Zabbix-teamet. Tilmelde!

Glem ikke det populære Telegram kanal Zabbix-fællesskabet, hvor du altid kan få råd og svar på dine spørgsmål på russisk fra mere erfarne kolleger, og, hvis du er heldig, fra Zabbix-udviklerne selv. Anbefales til begyndere gruppe for begyndere.

Nyttige links

Release notes
Opgrader noter
Original artikel

Kilde: www.habr.com

Tilføj en kommentar