Zabbix 4.2 is uitgebracht

Ons team is zeer verheugd om het nieuws te delen dat de open-source monitoring systeemrelease heeft plaatsgevonden. Zabbix 4.2!

Zabbix 4.2 is uitgebracht

Is versie 4.2 het antwoord op de belangrijkste vraag van het leven, het universum en monitoring in het algemeen? Laten we kijken!

Ter herinnering, Zabbix is een veelzijdig systeem voor het monitoren van de prestaties en beschikbaarheid van servers, ingenieurs- en netwerkapparatuur, applicaties, databases, virtualisatiesystemen, containers, IT-diensten en webservices.

Zabbix voert de volledige cyclus uit van gegevensverzameling, verwerking en transformatie, analyse van de verkregen gegevens, en eindigt met het opslaan van deze gegevens, visualisatie en verzending van meldingen met behulp van escalatieregels. Het systeem biedt ook flexibele mogelijkheden om de methoden voor gegevensverzameling en meldingen uit te breiden, evenals automatiseringsmogelijkheden via de API. De eenduidige webinterface zorgt voor centraal beheer van de monitoringconfiguraties en de distributie van toegangsrechten aan verschillende gebruikersgroepen. De code van het project wordt vrijgegeven onder de licentie GPLv2.

Zabbix 4.2 is een nieuwe niet-LTS versie met een kortere officiële ondersteuningstermijn. Voor gebruikers die zich richten op een lange levenscyclus van softwareproducten, raden we aan om LTS-versies te gebruiken, zoals 3.0 en 4.0.

Laten we het hebben over de nieuwigheden en belangrijkste verbeteringen in versie 4.2:

Meer officiële platforms

Zabbix 4.2 is uitgebracht
Naast de reeds bestaande officiële pakketten bieden we ook nieuwe builds aan voor:

  • RaspberryPi, Mac OS/X, SUSE Enterprise Linux Server 12
  • MSI voor de Windows-agent
  • Docker-images

Ingebouwde ondersteuning voor Prometheus voor applicatiemonitoring

Zabbix kan gegevens op verschillende manieren (push/pull) van verschillende gegevensbronnen verzamelen. Dit zijn JMX, SNMP, WMI, HTTP/HTTPS, RestAPI, XML Soap, SSH, Telnet, agents en scripts, en andere bronnen. En nu verwelkomen we de ondersteuning voor Prometheus!

Strikt genomen was gegevensverzameling van Prometheus-exporteurs eerder ook al mogelijk dankzij het type gegevensitems HTTP/HTTPS en reguliere expressies.

De nieuwe versie maakt het echter mogelijk om optimaal gebruik te maken van Prometheus dankzij de ingebouwde ondersteuning voor de querytaal PromQL. Het gebruik van afhankelijke metriek stelt ons in staat om gegevens op de meest efficiënte manier te verzamelen en te verwerken: eenmaal opgevraagd en daarna uit te splitsen naar de benodigde metriek.

Zabbix 4.2 is uitgebracht
We krijgen de waarde van een specifieke metriek

Het is belangrijk op te merken dat laag-niveau detectie nu de verzamelde gegevens kan gebruiken om automatisch metriek te creëren. In dit geval converteert Zabbix de verkregen gegevens naar JSON-formaat, wat zeer handig is.

Zabbix 4.2 is uitgebracht
We vinden metriek met behulp van een filter in de querytaal PromQL

Momenteel zijn er meer dan 300 integraties en recepten voor monitoring van externe diensten en applicaties met Zabbix. De ondersteuning van Prometheus zal een hele reeks applicaties toevoegen die officiële of door de gemeenschap ondersteunde Prometheus-exporteurs hebben. Dit betreft de monitoring van populaire diensten, containers en cloudresources.

Effectieve hoogfrequente monitoring

Willen we problemen zo snel mogelijk detecteren? Absoluut, daar bestaat geen twijfel over! Vaak leidt deze aanpak ertoe dat we te frequent apparaten moeten bevragen en gegevens moeten verzamelen, wat weer een grotere belasting voor het monitoringssysteem met zich meebrengt. Hoe kunnen we dit vermijden?

We hebben een throttling-mechanisme geïmplementeerd in de pre-processingregels. Throttling stelt ons in feite in staat om identieke waarden over te slaan.

Stel dat we de status van een kritisch applicatie volgen. Elke seconde controleren we of onze applicatie functioneert of niet. Hierbij ontvangt Zabbix een continue stroom van gegevens met 1 (werkt) en 0 (werkt niet). Bijvoorbeeld: 1111111111110001111111111111...

Wanneer alles goed gaat met onze applicatie, ontvangt Zabbix een stroom van alleen maar enen. Moeten we deze verwerken? In principe niet, want we zijn alleen geïnteresseerd in de wijziging van de status van de applicatie, we willen niet zoveel gegevens verzamelen en opslaan. Throttling maakt het mogelijk om een waarde over te slaan als deze identiek is aan de vorige. Uiteindelijk krijgen we alleen gegevens over de wijziging van de status, bijvoorbeeld 01010101... Dit is voldoende informatie om problemen te detecteren!

Zabbix negeert gewoonweg ontbrekende waarden; ze worden niet in de geschiedenis opgeslagen en beïnvloeden de triggers niet. Vanuit het perspectief van Zabbix bestaan ontbrekende waarden niet.

Zabbix 4.2 is uitgebracht
Negeer herhalende waarden

Geweldig! Nu kunnen we apparaten heel vaak raadplegen en onmiddellijk problemen detecteren zonder onnodige informatie in de database op te slaan.

Maar wat gebeurt er met de grafieken? Die zullen toch leeg zijn door een gebrek aan gegevens! En hoe kunnen we begrijpen of Zabbix gegevens verzamelt als het merendeel van die gegevens wordt overgeslagen?

Ook daar hebben we aan gedacht! Zabbix biedt een andere vorm van throttling, throttling met controlepunten (throttling with heartbeat).

Zabbix 4.2 is uitgebracht
Eens per minuut controleren we of de metric nog leeft

In dit geval zal Zabbix, ondanks de herhaaldelijke stroom van gegevens, minimaal één waarde binnen het opgegeven tijdsinterval opslaan. Als de gegevens eens per seconde worden verzameld en het interval is ingesteld op één minuut, dan zal Zabbix de continue stroom van enen omzetten in een stroom per minuut. Het is eenvoudig op te merken dat dit leidt tot een 60-voudige compressie van de verkregen gegevens.

Nu zijn we er zeker van dat de gegevens worden verzameld, de nodata() triggerfunctie werkt en alles in orde is met de grafieken!

Validatie van verzamelde gegevens en foutverwerking

Geen van ons wil foutieve of onbetrouwbare gegevens verzamelen. Bijvoorbeeld, we weten dat een temperatuursensor gegevens moet retourneren in het bereik van 0°C tot 100°C, en elke andere waarde moet worden beschouwd als foutief en/of genegeerd worden.

Dit is nu mogelijk met behulp van de ingebouwde preprocessing-validatieregels die overeenstemming met of afwezigheid van overeenstemming van reguliere expressies, waarde-intervallen, JSONPath en XMLPath controleren.

Nu kunnen we de reactie op een fout beheren. Als de temperatuur buiten het bereik ligt, kunnen we gewoon die waarde negeren, een standaardwaarde instellen (bijvoorbeeld 0°C) of onze eigen foutmelding definiëren, zoals 'Sensor defect' of 'Vervang de batterij.'

Zabbix 4.2 is uitgebracht
De temperatuur moet tussen de 0 en 100 liggen, de rest negeren we.

Een goed voorbeeld van het gebruik van validatie is de mogelijkheid om de invoergegevens te controleren op aanwezigheid van een foutmelding en deze fout voor de hele metric in te stellen. Dit is een zeer nuttige functie bij het verkrijgen van gegevens uit externe API's.

Elke gegevenstransformatie met behulp van JavaScript

Als de ingebouwde preprocessregels niet voldoende zijn, bieden we nu volledige vrijheid met willekeurige scripts in JavaScript!

Zabbix 4.2 is uitgebracht
Slechts één regel code om graden Fahrenheit naar graden Celsius om te zetten

Dit opent onbeperkte mogelijkheden voor het verwerken van binnenkomende gegevens. De praktische toepassing van deze functionaliteit is dat we nu geen externe scripts meer nodig hebben die we gebruikten voor dataverwerking. Nu kan alles worden gedaan met JavaScript.

Nu zijn data-omzetting, aggregatie, filters, rekenkundige en logische operaties en nog veel meer mogelijk!

Zabbix 4.2 is uitgebracht
We halen nuttige informatie uit de output van Apache mod_status!

We testen de preprocessing

Nu hoeven we niet langer te gissen hoe onze complexe preprocessing-scripts werken. Er is een handige controlefunctie toegevoegd om de werking van de preprocessing direct vanuit de interface te verifiëren!

Zabbix 4.2 is uitgebracht

We verwerken miljoenen metrics per seconde!

Voor Zabbix 4.2 werd preprocessing uitsluitend door de Zabbix-server uitgevoerd, wat de mogelijkheden voor het gebruik van proxies voor belastingverdeling beperkte.

Vanaf versie Zabbix 4.2 krijgen we ongelooflijk effectieve belastingsschaalvergroting door de ondersteuning van preprocessing aan de proxyzijde. Nu verzorgen de proxies dit!

Zabbix 4.2 is uitgebracht

In combinatie met throttling maakt deze aanpak hoogfrequente grootschalige monitoring mogelijk en het uitvoeren van miljoenen controles per seconde zonder de centrale Zabbix-server te overbelasten. Proxies verwerken enorme hoeveelheden gegevens, waarbij slechts een klein deel via throttling naar de Zabbix-server gaat, één tot twee orden minder.

Eenvoudigere low-level detectie

Ter herinnering, low-level detectie (LLD) is een zeer krachtig mechanisme voor het automatisch ontdekken van allerlei bronnen voor monitoring (bestandsystemen, processen, applicaties, services, etc.) en het automatisch aanmaken van op basis daarvan gegevensitems, triggers, netwerkknopen en andere objecten. Dit bespaart ongelooflijk veel tijd, vereenvoudigt de configuratie en maakt het mogelijk om één sjabloon te gebruiken voor netwerkknopen met verschillende monitoringbronnen.

Laag-niveau detectie vereiste voorheen speciaal opgemaakte JSON. Dat is nu voorbij!

Zabbix 4.2 stelt laag-niveau detectie (LLD) in staat om willekeurige gegevens in JSON-formaat te gebruiken. Waarom is dit belangrijk? Het maakt het mogelijk om, zonder scripts, bijvoorbeeld te communiceren met externe API's en de verkregen informatie te gebruiken voor het automatisch aanmaken van netwerknodes, datapunten en triggers.

Samen met de ondersteuning voor JavaScript creëert dit geweldige mogelijkheden voor het maken van sjablonen die met verschillende gegevensbronnen werken, zoals bijvoorbeeld cloud API's, applicatie-API's, gegevens in XML-, CSV-formaten en meer.

Zabbix 4.2 is uitgebracht
We koppelen JSON aan de procesinformatie met LLD

De mogelijkheden zijn werkelijk onbeperkt!

Ondersteuning voor TimescaleDB

Zabbix 4.2 is uitgebracht

Wat is TimescaleDB? Het is een reguliere PostgreSQL met een uitbreidingsmodule van het TimescaleDB-team. TimescaleDB belooft betere prestaties door efficiëntere algoritmen en datastructuren.

Daarnaast is een ander voordeel van TimescaleDB de automatische partitionering van historische tabellen. TimescaleDB betekent snelheid en eenvoud in onderhoud! Hoewel ik moet opmerken dat ons team nog geen serieuze prestatievergelijking met reguliere PostgreSQL heeft uitgevoerd.

Op dit moment is TimescaleDB een vrij jong en snelgroeiend product. Gebruik met voorzichtigheid!

Eenvoudig tagbeheer

Voorheen konden tags alleen op het niveau van triggers worden beheerd, maar nu is het tagbeheer veel flexibeler. Zabbix ondersteunt tags voor sjablonen en netwerknodes!

Alle gedetecteerde problemen krijgen tags, niet alleen van de trigger, maar ook van de netwerknode en de sjablonen van deze netwerknode.

Zabbix 4.2 is uitgebracht
We definiëren tags voor de netwerknode

Flexibele auto-registratie

Zabbix 4.2 stelt je in staat om netwerknodes op naam te filteren met behulp van reguliere expressies. Dit biedt de mogelijkheid om verschillende detectiescenario's voor verschillende groepen netwerknodes te creëren. Dit is bijzonder handig als we complexe naamgevingsregels voor apparaten gebruiken.

Flexibeler netwerkdetectie

Een andere verbetering heeft betrekking op de naamgeving van netwerknodes. Er is nu de mogelijkheid om apparaatsnamen te beheren bij netwerkdetectie en om de apparaatsnaam uit de waarde van de metriek te halen.

Dit is een zeer nuttige functionaliteit, vooral bij netwerkdetectie met behulp van SNMP en de Zabbix-agent.

Zabbix 4.2 is uitgebracht
Automatisch een lokale hostnaam toewijzen aan de zichtbare naam

Controle van de werking van meldmethoden

Nu kan je direct vanuit de webinterface een testbericht naar jezelf sturen en controleren of de meldmethode werkt. Deze functionaliteit is vooral handig voor het testen van scripts die Zabbix combineren met verschillende meldsystemen, taaksystemen en andere externe programma's en API's.

Zabbix 4.2 is uitgebracht

Afstandsmonitoring van Zabbix-infrastructuurcomponenten

Er is nu de mogelijkheid voor afstandsmonitoring van interne metrieken van de Zabbix-server en proxy (prestatie- en werkingsmetrieken van Zabbix-componenten).

Waarom is dit nodig? Deze functionaliteit stelt je in staat om intern gemeten server- en proxy-metingen vanuit afstand te volgen en stelt je in staat om snel problemen op te sporen en te waarschuwen, zelfs als de componenten zelf overbelast zijn of als er bijvoorbeeld een grote hoeveelheid niet-verzonden gegevens op de proxy aanwezig is.

Ondersteuning voor HTML-indeling in e-mailberichten

We zijn niet meer beperkt tot platte tekst en kunnen mooie e-mailberichten opstellen dankzij de ondersteuning voor HTML-indeling. Tijd om HTML + CSS te leren!

Zabbix 4.2 is uitgebracht
Berichten zijn gemakkelijker te begrijpen, zelfs met minimaal gebruik van HTML

Toegang tot externe systemen vanuit netwerkmaps

Er is ondersteuning voor een hele reeks nieuwe macro's in gebruikers-URL's voor een betere integratie van kaarten met externe systemen. Dit stelt je in staat om met een of twee klikken op een netwerknode-icoon bijvoorbeeld een ticket in het taakbeheersysteem te openen.

Zabbix 4.2 is uitgebracht
Open een ticket in Jira met één klik

Een detectieregel kan afhankelijk zijn van een dataproductelement

Waarom is dit nodig - vraag je je af. Dit maakt het mogelijk om de gegevens van de primaire metriek te gebruiken voor zowel detectie als voor de directe gegevensverzameling. Bijvoorbeeld, in het geval van gegevensverzameling van de Prometheus-exporteur zal Zabbix één HTTP-verzoek doen en onmiddellijk de verkregen informatie gebruiken voor alle afhankelijke dataproducten: metrische waarden en laag-niveau detectieregels.

Nieuwe manier om problemen op kaarten te visualiseren

Ondersteuning voor geanimeerde GIF-afbeeldingen op kaarten om problemen beter zichtbaar te maken.

Zabbix 4.2 is uitgebracht
Probleemachtige apparaten zijn nu beter zichtbaar

Gegevens extraheren uit HTTP-header in Webmonitoring

In Webmonitoring is nu de mogelijkheid toegevoegd om gegevens te selecteren uit de ontvangen HTTP-header.

Dit maakt het mogelijk om meerstapscenario's van webmonitoring of monitoring van externe API's op te zetten, met behulp van een autorisatietoken dat in een van de stappen is verkregen.

Zabbix 4.2 is uitgebracht
AuthID uit de HTTP-header extraheren

Zabbix Sender gebruikt alle IP-adressen

Zabbix Sender verzendt nu gegevens via alle IP-adressen uit de parameter ServerActive van het configuratiebestand van de agent.

Zabbix 4.2 is uitgebracht

Gemakkelijke nieuwe filter in triggerconfiguratie

De pagina voor triggerconfiguratie heeft een uitgebreid filter gekregen voor het snel en gemakkelijk selecteren van triggers op basis van opgegeven criteria.

Zabbix 4.2 is uitgebracht
Triggers selecteren die betrekking hebben op de K8S-service

Precieze tijd tonen

Het is eenvoudig: nu toont Zabbix de exacte tijd wanneer je de muis boven de grafiek houdt.

Zabbix 4.2 is uitgebracht

Andere vernieuwingen

  • Een meer voorspelbaar algoritme geïmplementeerd voor het wijzigen van de volgorde van widgets op het dashboard.
  • Mogelijkheid voor massale wijziging van parameters van gegevensprototype-elementen
  • Ondersteuning voor IPv6 voor DNS-controles: ‘net.dns’ en ‘new.dns.record’
  • De parameter ‘skip’ toegevoegd voor controles ‘vmware.eventlog’
  • Fout bij uitvoering van preprocessing-stap omvat het nummer van de stap

Hoe te upgraden?

Voor de overstap van eerdere versies is alleen de installatie vereist van nieuwe binaire bestanden (servers en proxies) en een nieuwe interface. Zabbix zal automatisch het database-upgradeproces uitvoeren. Installatie van nieuwe agents is niet nodig.

We organiseren gratis webinars voor degenen die meer willen leren over Zabbix 4.2 en de kans willen krijgen om vragen te stellen aan het Zabbix-team. Schrijf je in!

Vergeet niet de populaire Telegram-kanaal van de Zabbix-gemeenschap, waar je altijd advies kunt krijgen en antwoorden op je vragen in het Russisch van ervaren collega's, en, als je geluk hebt, zelfs van de ontwikkelaars van Zabbix zelf. Voor nieuwkomers raden we de groep voor nieuwkomers.

Nuttige links

— Release-opmerkingen
— Upgrade-opmerkingen
— Oorspronkelijk artikel

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster