Zabbix 4.2 er udgivet

Vores team er meget glade for at kunne dele nyheden om, at der er udgivet et gratis overvågningssystem med open source-kode. Zabbix 4.2!

Zabbix 4.2 er udgivet

Er version 4.2 svaret på livets, universets og overvågningens store spørgsmål? Lad os tage et kig!

Husk, at Zabbix er et universelt system til overvågning af ydeevne og tilgængelighed af servere, ingeniør- og netværksudstyr, applikationer, databaser, virtualiseringssystemer, containere, IT-tjenester og webtjenester.

Zabbix implementerer en fuld cyklus fra dataindsamling, behandling og transformation, analyse af indsamlede data og slutter med opbevaring af disse data, visualisering og udsendelse af alarmer ved hjælp af eskaleringsregler. Systemet tilbyder også fleksible muligheder for at udvide metoder til dataindsamling og alarmer samt automatisering via API. Den единый web-interface implementerer centraliseret administration af overvågningskonfigurationer og tildeling af rettigheder til forskellige brugergrupper. Projektkoden distribueres frit under licensen. GPLv2.

Zabbix 4.2 er en ny ikke LTS-version med en forkortet officiel supportperiode. Til brugere, der er orienteret mod langtidsdrift af softwareprodukter, anbefaler vi at bruge LTS-versioner såsom 3.0 og 4.0.

Lad os tale om nyhederne og hovedforbedringerne i version 4.2:

Flere officielle platforme

Zabbix 4.2 er 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 støtte til Prometheus til applikationsovervågning

Zabbix kan indsamle data på forskellige måder (push/pull) fra forskellige datakilder. Dette inkluderer JMX, SNMP, WMI, HTTP/HTTPS, RestAPI, XML Soap, SSH, Telnet, agenter og scripts samt andre kilder. Og nu byder vi på support til Prometheus!

Strengt taget var dataindsamling fra Prometheus-eksportører muligt tidligere takket være typen af dataelementer til HTTP/HTTPS og regulære udtryk.

Den nye version tillader dog at arbejde med Prometheus maksimalt effektivt ved hjælp af indbygget støtte til forespørgselssproget PromQL. Og brugen af afhængige metrikker muliggør indsamling og behandling af data mere effektivt: én gang indsamlet data, og derefter opdeler vi det i de nødvendige metrikker.

Zabbix 4.2 er udgivet
Får værdien af en specifik metrisk

Det er vigtigt at bemærke, at lavniveau-detektion nu kan bruge de indsamlede data til automatisk at oprette metrikker. I dette tilfælde konverterer Zabbix de modtagne data til JSON-format, som er meget nemt at arbejde med.

Zabbix 4.2 er udgivet
Finder metrikker ved hjælp af en filter på PromQL-forespørgselsproget

Der findes i øjeblikket mere end 300 integrationer og opskrifter til overvågning af tredjeparts tjenester og applikationer ved hjælp af Zabbix. Understøttelse af Prometheus gør det muligt at tilføje et helt sæt applikationer, der har officielle eller fællesskabs-understøttede Prometheus-eksportører. Dette inkluderer overvågning af populære tjenester, containere og skyressourcer.

Effektiv højfrekvent overvågning

Ønsker vi at opdage problemer så hurtigt som muligt? Selvfølgelig, ingen tvivl! Oftest fører denne tilgang til, at vi er nødt til at anmode om oplysninger fra enhederne for ofte og indsamle data, hvilket medfører større belastning på overvågningssystemet. Hvordan kan vi undgå dette?

Vi har implementeret en throttling-mekanisme i præbehandlingsreglerne. Throttling giver os i virkeligheden mulighed for at springe gentagne værdier over.

Lad os antage, at vi overvåger tilstanden af en kritisk applikation. Hver sekund kontrollerer vi, om vores applikation fungerer eller ej. I Zabbix modtager vi en konstant strøm af data fra 1 (fungerer) og 0 (fungerer ikke). For eksempel: 1111111111110001111111111111…

Når alt er i orden med vores applikation, så modtager Zabbix udelukkende en strøm af 1'ere. Skal de behandles? Generelt nej, da vi kun er interesserede i ændringen i applikationens tilstand, vi ønsker ikke at indsamle og gemme så mange data. Throttling tillader os derfor at springe værdien over, hvis den er identisk med den foregående. Resultatet vil være data om ændringen i tilstanden, for eksempel 01010101… Det er helt tilstrækkeligt med information til at opdage problemer!

De sprunget værdier ignorerer Zabbix simpelthen, de registreres ikke i historikken og påvirker ikke udløsere. Set fra Zabbix's synspunkt findes der ingen sprunget værdier.

Zabbix 4.2 er udgivet
Ignorerer gentagne værdier

Fantastisk! Nu kan vi ofte anmode om oplysninger fra enhederne, samtidig med at vi straks opdager problemer uden at gemme unødvendige oplysninger i databasen.

Hvordan med diagrammerne? De vil jo være tomme på grund af manglende data! Hvordan kan man se, om Zabbix indsamler data, hvis størstedelen af disse data vil blive overset?

Vi har også tænkt på dette! Zabbix tilbyder en anden form for throttling, throttling med kontrolpunkter (throttling with heartbeat).

Zabbix 4.2 er udgivet
Vi kontrollerer én gang i minuttet, om målingen stadig er aktiv.

I dette tilfælde vil Zabbix, på trods af den gentagne datastream, gemme mindst én værdi inden for den angivne tidsramme. Hvis data indsamles hvert sekund, og tidsrammen er sat til et minut, vil Zabbix konvertere streamen af sekventielle 1'er til en minutlig stream. Det er ikke svært at se, at dette fører til 60 gange komprimering af de samlede data.

Nu er vi sikre på, at data indsamles, funktionen nodata() fungerer, og at diagrammerne er i orden!

Validering af indsamlede data og fejlhåndtering

Ingen af os ønsker at indsamle fejlagtige eller upålidelige data. For eksempel ved vi, at temperatursensoren skal returnere data i området fra 0°C til 100°C, og enhver anden værdi bør betragtes som forkert og/eller ignoreres.

Dette er nu muligt ved hjælp af de indbyggede præbehandlingsregler for datavalidering baseret på match eller ikke-match mod regulære udtryk, værdiområder, JSONPath og XMLPath.

Nu kan vi styre reaktionen på fejlen. Hvis temperaturen er uden for området, kan vi simpelthen ignorere den værdi, sætte en standardværdi (for eksempel 0°C) eller definere vores eget fejlmeddelelse, såsom "Sensoren er beskadiget" eller "Skift batteriet."

Zabbix 4.2 er udgivet
Temperaturen skal være mellem 0 og 100, alt andet ignoreres.

Et godt eksempel på brug af validering er muligheden for at kontrollere inputdata for tilstedeværelse af en fejlmeddelelse og anvende denne fejl på hele målingen. Dette er en meget nyttig funktionalitet, når man modtager data fra eksterne API'er.

Enhver datatransformation ved hjælp af JavaScript.

Hvis de indbyggede præbehandlingsregler ikke er nok, tilbyder vi nu fuld frihed med brug af brugerdefinerede scripts på JavaScript!

Zabbix 4.2 er udgivet
Bare én linje kode for at konvertere grader Fahrenheit til grader Celsius.

Dette åbner op for ubegrænsede muligheder for behandling af inddata. Den praktiske fordel ved denne funktionalitet er, at vi nu ikke længere har brug for eksterne scripts, som vi tidligere har brugt til enhver operation med data. Nu kan alt dette gøres med JavaScript.

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

Zabbix 4.2 er udgivet
Vi udtrækker nyttige oplysninger fra output fra Apache mod_status!

Vi tester forbehandling

Nu behøver vi ikke længere at gætte på, hvordan vores komplekse forbehandlingsscenarier fungerer. Der er nu en praktisk kontrol af forbehandlingens korrekthed direkte fra grænsefladen!

Zabbix 4.2 er udgivet

Vi håndterer millioner af målinger per sekund!

Indtil Zabbix 4.2 blev forbehandling kun udført af Zabbix-serveren, hvilket begrænsede mulighederne for at anvende proxyer til belastningsfordeling.

Fra version Zabbix 4.2 får vi utrolig effektiv belastningsskalerbarhed takket være understøttelse af forbehandling på proxy-siden. Nu tager proxyerne sig af det!

Zabbix 4.2 er udgivet

I kombination med throttling tillader denne tilgang udførelsen af højfrekvent skaleret overvågning og millioner af tjek per sekund uden at belaste den centrale Zabbix-server. Proxyerne håndterer enorme datamængder, mens kun en lille del når Zabbix-serveren på grund af throttling, som er en størrelsesorden eller to mindre.

Enklere lavniveauopdagelse

Lad os minde om, at lavniveauopdagelse (LLD) er en meget kraftfuld mekanisme til automatisk at opdage alle former for ressourcer til overvågning (filsystemer, processer, applikationer, tjenester osv.) og automatisk at oprette datakilder, alarmer, netværksnoder og andre objekter ud fra dem. Dette sparer utrolig meget tid, forenkler konfigurationen og gør det muligt at bruge én skabelon til netværksnoder, der har forskellige ressourcer til overvågning.

Lavniveauopdagelse krævede tidligere en specielt formateret JSON. Sådan er det ikke længere!

Zabbix 4.2 muliggør lav-niveau opdagelse (LLD) at bruge vilkårligt formaterede data i JSON-format. Hvorfor er dette vigtigt? Det gør det muligt at kommunikere med eksterne API'er uden at skulle bruge scripts og bruge de indsamlede oplysninger til automatisk at oprette netværksnoder, datamæssige elementer og triggere.

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

Zabbix 4.2 er udgivet
Kobler JSON med procesinformation via LLD

Mulighederne er virkelig ubegrænsede!

Understøttelse af TimescaleDB

Zabbix 4.2 er udgivet

Hvad er TimescaleDB? Det er almindelig PostgreSQL plus et udvidelsesmodul fra TimescaleDB-teamet. TimescaleDB lover bedre ydeevne gennem mere effektive algoritmer og datastrukturer.

Derudover er en anden fordel ved TimescaleDB automatisk partitionering af historiske tabeller. TimescaleDB betyder hastighed og nem vedligeholdelse! Jeg må dog bemærke, at vores team endnu ikke har udført alvorlige ydeevne sammenligninger med almindelig PostgreSQL.

I øjeblikket er TimescaleDB et relativt ungt og hurtigt voksende produkt. Brug det med forsigtighed!

Nem styring af tags

Tidligere kunne tags kun styres på triggerniveau, men nu er styringen af tags meget mere fleksibel. Zabbix understøtter tags til skabeloner og netværksnoder!

Alle opdagede problemer modtager tags fra både triggeren og netværksnoden samt skabelonerne for denne netværksnode.

Zabbix 4.2 er udgivet
Definerer tags for netværksnoden

Mere fleksibel autorregistrering

Zabbix 4.2 muliggør filtrering af netværksnoder efter navn ved hjælp af regulære udtryk. Dette giver mulighed for at oprette forskellige opdagelsesscenarier for forskellige grupper af netværksnoder. Især nyttigt, hvis vi bruger komplekse enhedsnavngivningsregler.

Mere fleksibel netværksopdagelse

En anden forbedring vedrører navngivning af netværksnoder. Der er nu mulighed for at styre enhedsnavne ved netværksopdagelse og hente enhedsnavnet fra værdiens måling.

Dette er en meget nødvendig funktionalitet, især ved netværksopdagelse via SNMP og Zabbix-agenten.

Zabbix 4.2 er udgivet
Automatisk tildelingen af det lokale navn til netværksnoden som det synlige navn

Test af varslingsmetoder

Nu kan du sende dig selv en testmeddelelse direkte fra webgrænsefladen og kontrollere, om varslingsmetoden fungerer. Denne funktionalitet er især nyttig til at teste Zabbix-aggregatorer med forskellige varslingssystemer, opgavestyringssystemer og andre eksterne programmer og API'er.

Zabbix 4.2 er udgivet

Fjernmonitorering af Zabbix-infrastrukturkomponenter

Muligheden for fjernmonitorering af interne målinger fra Zabbix-servere og proxyer (ydelses- og funktionsmålinger af Zabbix-komponenter) er nu tilgængelig.

Hvad er formålet? Denne funktionalitet gør det muligt at overvåge interne målinger fra servere og proxyer på en side, hvilket hurtigere identificerer og varsler om problemer, selv når selve komponenterne er overbelastede eller hvis der for eksempel er en stor mængde ikke-afsendte data på proxyen.

HTML-format understøttelse for e-mailmeddelelser

Nu er vi ikke begrænset til almindelig tekst og kan skabe smukke e-mailmeddelelser takket være understøttelsen af HTML-format. Tid til at lære HTML + CSS!

Zabbix 4.2 er udgivet
Meddelelser er lettere at opfatte selv med minimal brug af HTML

Adgang til eksterne systemer fra netværkskort

Der er nu understøttelse for et helt sæt nye makroer i brugerdefinerede URL'er for bedre integration af kort med eksterne systemer. Dette gør det muligt at åbne en ticket i opgavestyringssystemet med blot et eller to klik på nodeikonet.

Zabbix 4.2 er udgivet
Åben en ticket i Jira med et enkelt klik

Opdagelsesregler kan være afhængige dataelementer

Hvorfor er dette nødvendigt, spørger du? Det giver mulighed for at bruge data fra den primære måling både til opdagelse og til faktiske datainsamlinger. For eksempel, i tilfælde af datainsamling fra en Prometheus-exportør, vil Zabbix foretage én HTTP-forespørgsel og straks bruge de modtagne oplysninger til alle afhængige dataelementer: måleværdier og regler for lavniveau-opdagelse.

Ny metode til visualisering af problemer på kort

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

Zabbix 4.2 er udgivet
Problematiske enheder er blevet mere synlige

Vi udtrækker data fra HTTP-overskrifter i webmonitorering

Webmonitorering har fået muligheden for at vælge data fra den modtagne HTTP-overskrift.

Dette gør det muligt at oprette flerstegs webmonitorerings- eller overvågningsscenarier for tredjeparts API'er ved hjælp af en autoriseringstoken, der er modtaget i et af trinnene.

Zabbix 4.2 er udgivet
Vi udtrækker AuthID fra HTTP-overskriften

Zabbix Sender bruger alle IP-adresser

Zabbix Sender sender nu data til alle IP-adresser fra ServerActive-parameteren i konfigurationsfilen for agenten.

Zabbix 4.2 er udgivet

En praktisk ny filter i triggerkonfigurationen

Siden for triggerkonfiguration har fået et avanceret filter til hurtig og nem udvælgelse af triggere efter angivne kriterier.

Zabbix 4.2 er udgivet
Vi vælger triggere, der relaterer til K8S-tjenesten

Viser præcist tidspunkt

Det er simpelt, nu viser Zabbix det præcise tidspunkt, når du holder musen over grafen.

Zabbix 4.2 er udgivet

Andre nyheder

  • En mere forudsigelig algoritme er implementeret til at ændre rækkefølgen af widgets i dashboardet
  • Mulighed for masseændring af parametre i prototype for datakomponenter
  • Understøttelse af IPv6 til DNS-kontrol: 'net.dns' og 'new.dns.record'
  • Der er tilføjet parameteren 'skip' til kontrollerne 'vmware.eventlog'
  • Fejl under preprocessing-trin inkluderer nummeret på trinnet

Hvordan opdaterer man?

For at opgradere fra tidligere versioner kræves kun installationen af nye binære filer (servere og proxyer) og den nye grænseflade. Zabbix vil automatisk udføre databaseopdateringsproceduren. Installation af nye agenter er ikke nødvendig.

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

Glem ikke den populære Telegram-kanal Zabbix-fællesskabet, hvor du altid kan få rådgivning og svar på dine spørgsmål på russisk fra mere erfarne kolleger, og hvis du er heldig, så også fra selve Zabbix-udviklerne. For nybegyndere anbefaler vi gruppen for nybegyndere.

Nyttige links

— Udgivelsesnoter
— Opgraderingsnoter
— Den originale artikel

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster