Zabbix 4.2 uitgebracht

Ons team is erg blij om het nieuws te kunnen delen dat er een gratis, open source monitoringsysteem is uitgebracht Zabbix 4.2!

Zabbix 4.2 uitgebracht

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

Laten we niet vergeten dat Zabbix een universeel systeem is voor het monitoren van de prestaties en beschikbaarheid van servers, engineering- en netwerkapparatuur, applicaties, databases, virtualisatiesystemen, containers, IT-services en webservices.

Zabbix implementeert een volledige cyclus van het verzamelen van gegevens, het verwerken en transformeren ervan, het analyseren van de ontvangen gegevens en eindigen met het opslaan van deze gegevens, het visualiseren en verzenden van waarschuwingen met behulp van escalatieregels. Het systeem biedt ook flexibele opties voor het uitbreiden van gegevensverzameling en waarschuwingsmethoden, evenals automatiseringsmogelijkheden via API. Eén enkele webinterface implementeert gecentraliseerd beheer van monitoringconfiguraties en distributie van toegangsrechten naar verschillende gebruikersgroepen. De projectcode wordt gratis verspreid onder een licentie GPLv2.

Zabbix 4.2 is een nieuwe niet-LTS-versie met een verkorte officiële ondersteuningsperiode. Voor gebruikers die zich richten op een lange levenscyclus van softwareproducten raden wij het gebruik van LTS-versies aan, zoals 3.0 en 4.0.

Laten we het dus hebben over de nieuwe functies en belangrijke verbeteringen in versie 4.2:

Meer officiële platforms

Zabbix 4.2 uitgebracht
Naast de bestaande officiële pakketten bieden we ook nieuwbouw aan voor:

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

Ingebouwde Prometheus-ondersteuning voor applicatiemonitoring

Zabbix kan op verschillende manieren (push/pull) data verzamelen uit verschillende databronnen. Dit zijn JMX, SNMP, WMI, HTTP/HTTPS, RestAPI, XML Soap, SSH, Telnet, agents en scripts en andere bronnen. Maak nu kennis met Prometheus-ondersteuning!

Strikt genomen was het verzamelen van gegevens van Prometheus-exporteurs in het verleden mogelijk dankzij het HTTP/HTTPS-gegevenselementtype en reguliere expressies.

Met de nieuwe versie kun je echter zo efficiënt mogelijk met Prometheus werken dankzij ingebouwde ondersteuning voor de PromQL-querytaal. En door het gebruik van afhankelijke statistieken kunt u gegevens op de meest efficiënte manier verzamelen en verwerken: u vraagt ​​één keer om gegevens, en dan sorteren wij deze op basis van de benodigde statistieken.

Zabbix 4.2 uitgebracht
De waarde van een specifieke statistiek verkrijgen

Het is belangrijk op te merken dat detectie op laag niveau nu verzamelde gegevens kan gebruiken om automatisch statistieken te genereren. In dit geval converteert Zabbix de ontvangen gegevens naar JSON-formaat, wat erg handig is om mee te werken.

Zabbix 4.2 uitgebracht
Metrieken zoeken met behulp van een filter in de PromQL-querytaal

Op dit moment zijn er meer 300 integraties en monitoringrecepten diensten en applicaties van derden die Zabbix gebruiken. Met Prometheus-ondersteuning kunt u een hele reeks applicaties toevoegen met officiële of door de gemeenschap ondersteunde Prometheus-exporteurs. Dit is het monitoren van populaire diensten, containers en cloudbronnen.

Effectieve hoogfrequente monitoring

Willen we problemen zo snel mogelijk opsporen? Natuurlijk, geen twijfel mogelijk! Vaker wel dan niet resulteert deze aanpak erin dat we te vaak apparaten moeten ondervragen en gegevens moeten verzamelen, wat een grotere belasting op het monitoringsysteem legt. Hoe kun je dit vermijden?

We hebben een throttling-mechanisme geïmplementeerd in de voorverwerkingsregels. Throttling geeft ons in wezen de mogelijkheid om identieke waarden over te slaan.

Laten we aannemen dat we de status van een kritieke applicatie monitoren. Elke seconde controleren wij of onze applicatie werkt of niet. Tegelijkertijd ontvangt Zabbix een continue stroom gegevens van 1 (werkt) en 0 (werkt niet). Bijvoorbeeld: 1111111111110001111111111111…

Wanneer alles in orde is met onze applicatie, ontvangt Zabbix een stroom van slechts één. Moeten ze worden verwerkt? Over het algemeen nee, omdat we alleen geïnteresseerd zijn in het veranderen van de status van de applicatie, willen we niet zoveel gegevens verzamelen en opslaan. Met throttling kunt u dus een waarde overslaan als deze identiek is aan de vorige. Als gevolg hiervan ontvangen we alleen gegevens over de statuswijziging, bijvoorbeeld 01010101... Dit is voldoende informatie om problemen op te sporen!

Zabbix negeert eenvoudigweg ontbrekende waarden, ze zijn niet vastgelegd in de geschiedenis en hebben op geen enkele manier invloed op triggers. Vanuit het oogpunt van Zabbix zijn er geen ontbrekende waarden.

Zabbix 4.2 uitgebracht
Negeer dubbele waarden

Geweldig! We kunnen apparaten nu heel vaak ondervragen en problemen direct detecteren zonder onnodige informatie in een database op te slaan.

Hoe zit het met de grafische weergave? Ze zullen leeg zijn vanwege een gebrek aan gegevens! En hoe kun je zien of Zabbix gegevens verzamelt als de meeste van deze gegevens ontbreken?

Daar hebben wij ook over nagedacht! Zabbix biedt een ander type throttling, throttling met hartslag.

Zabbix 4.2 uitgebracht
Eén keer per minuut controleren we of de metriek leeft

In dit geval zal Zabbix, ondanks de zich herhalende gegevensstroom, ten minste één waarde opslaan in het opgegeven tijdsinterval. Als gegevens eenmaal per seconde worden verzameld en het interval is ingesteld op één minuut, verandert Zabbix de stroom van eenheden van elke seconde in een stroom van elke minuut. Het is gemakkelijk in te zien dat dit leidt tot een 60-voudige compressie van de ontvangen gegevens.

Nu hebben we er vertrouwen in dat de gegevens worden verzameld, dat de nodata()-triggerfunctie werkt en dat alles in orde is met de grafieken!

Validatie van verzamelde gegevens en foutafhandeling

Niemand van ons wil foutieve of onbetrouwbare gegevens verzamelen. We weten bijvoorbeeld dat een temperatuursensor gegevens tussen 0°C en 100°C moet retourneren en dat elke andere waarde als onwaar en/of genegeerd moet worden.

Dit is nu mogelijk met behulp van gegevensvalidatieregels die zijn ingebouwd in de voorverwerking voor naleving of niet-naleving van reguliere expressies, waardebereiken, JSONPath en XMLPath.

Nu kunnen we de reactie op de fout controleren. Als de temperatuur buiten het bereik valt, kunnen we zo'n waarde eenvoudigweg negeren, een standaardwaarde instellen (bijvoorbeeld 0°C) of onze eigen foutmelding definiëren, bijvoorbeeld 'Sensor beschadigd' of 'Vervang batterij'.

Zabbix 4.2 uitgebracht
De temperatuur moet tussen 0 en 100 liggen, negeer de rest

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

Elke gegevenstransformatie met JavaScript

Als ingebouwde voorverwerkingsregels niet genoeg voor ons waren, bieden we nu volledige vrijheid met behulp van aangepaste JavaScript-scripts!

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

Dit opent eindeloze mogelijkheden voor het verwerken van binnenkomende gegevens. Het praktische voordeel van deze functionaliteit is dat we niet langer de externe scripts nodig hebben die we gebruikten voor gegevensmanipulatie. Dit alles kan nu worden gedaan met behulp van JavaScript.

Nu zijn datatransformatie, aggregatie, filters, rekenkundige en logische bewerkingen en nog veel meer mogelijk!

Zabbix 4.2 uitgebracht
Nuttige informatie extraheren uit Apache mod_status-uitvoer!

Voorbewerking testen

Nu hoeven we niet te raden hoe onze complexe voorverwerkingsscripts werken. Er is nu een handige manier om rechtstreeks vanuit de interface te controleren of de voorverwerking correct werkt!

Zabbix 4.2 uitgebracht

We verwerken miljoenen statistieken per seconde!

Vóór Zabbix 4.2 werd de voorverwerking uitsluitend afgehandeld door de Zabbix-server, waardoor de mogelijkheid om proxy's te gebruiken voor de verdeling van de belasting werd beperkt.

Vanaf Zabbix 4.2 krijgen we ongelooflijk efficiënte schaalvergroting van de belasting dankzij ondersteuning voor voorverwerking aan de proxyzijde. Nu doen proxy's het!

Zabbix 4.2 uitgebracht

In combinatie met throttling maakt deze aanpak hoogfrequente, grootschalige monitoring en miljoenen controles per seconde mogelijk, zonder de centrale Zabbix-server te belasten. Proxy's verwerken gigantische hoeveelheden gegevens, terwijl slechts een klein deel ervan door throttling de Zabbix-server bereikt, een of twee ordes van grootte minder.

Gemakkelijkere ontdekking op laag niveau

Bedenk dat low-level discovery (LLD) een zeer krachtig mechanisme is voor het automatisch ontdekken van elke vorm van monitoringbronnen (bestandssystemen, processen, applicaties, services, enz.) en het automatisch creëren van data-items, triggers, netwerkknooppunten die daarop zijn gebaseerd en andere voorwerpen. Dit bespaart ongelooflijk veel tijd, vereenvoudigt de configuratie en maakt het mogelijk om één sjabloon te gebruiken op hosts met verschillende monitoringbronnen.

Voor detectie op laag niveau is speciaal geformatteerde JSON als invoer vereist. Dat is het, het zal niet meer gebeuren!

Zabbix 4.2 maakt low-level discovery (LLD) mogelijk om willekeurige gegevens in JSON-formaat te gebruiken. Waarom is het belangrijk? Hierdoor kunt u bijvoorbeeld communiceren met externe API's zonder toevlucht te nemen tot scripts en de ontvangen informatie gebruiken om automatisch hosts, data-elementen en triggers aan te maken.

In combinatie met JavaScript-ondersteuning creëert dit fantastische mogelijkheden voor het maken van sjablonen voor het werken met verschillende gegevensbronnen, zoals bijvoorbeeld cloud-API's, applicatie-API's, gegevens in XML, CSV-formaten, enzovoort.

Zabbix 4.2 uitgebracht
JSON koppelen met informatie over processen met LLD

De mogelijkheden zijn werkelijk eindeloos!

TimescaleDB-ondersteuning

Zabbix 4.2 uitgebracht

Wat is TimescaleDB? Dit is gewone PostgreSQL plus een uitbreidingsmodule van het TimescaleDB-team. TimescaleDB belooft betere prestaties dankzij efficiëntere algoritmen en datastructuur.

Bovendien is een ander voordeel van TimescaleDB de automatische partitie van tabellen met geschiedenis. TimescaleDB is snel en gemakkelijk te onderhouden! Hoewel ik moet opmerken dat ons team nog geen serieuze prestatievergelijking heeft gemaakt met regulier PostgreSQL.

Op dit moment is TimescaleDB een vrij jong en zich snel ontwikkelend product. Voorzichtig gebruiken!

Eenvoudig tagbeheer

Waar tags voorheen alleen op triggerniveau konden worden beheerd, is tagbeheer nu veel flexibeler. Zabbix ondersteunt tags voor sjablonen en hosts!

Alle gedetecteerde problemen ontvangen niet alleen tags van de trigger, maar ook van de host, evenals de sjablonen van deze host.

Zabbix 4.2 uitgebracht
Tags definiëren voor een netwerkknooppunt

Flexibelere automatische registratie

Met Zabbix 4.2 kun je hosts op naam filteren met behulp van reguliere expressies. Dit maakt het mogelijk om verschillende detectiescenario’s te creëren voor verschillende groepen netwerkknooppunten. Het is vooral handig als we complexe naamgevingsregels voor apparaten gebruiken.

Flexibelere netwerkdetectie

Een andere verbetering heeft betrekking op de naamgeving van netwerkknooppunten. Het is nu mogelijk om apparaatnamen te beheren tijdens netwerkdetectie en de apparaatnaam te verkrijgen uit een metrische waarde.

Dit is een zeer noodzakelijke functionaliteit, vooral voor netwerkdetectie met behulp van SNMP en Zabbix-agent.

Zabbix 4.2 uitgebracht
Wijs de lokale hostnaam automatisch toe aan een zichtbare naam

Controle van de functionaliteit van meldingsmethoden

Nu kunt u uzelf rechtstreeks vanuit de webinterface een testbericht sturen en controleren of de meldingsmethode werkt. Deze functionaliteit is vooral handig voor het testen van scripts voor het combineren van Zabbix met verschillende waarschuwingssystemen, taaksystemen en andere externe programma's en API's.

Zabbix 4.2 uitgebracht

Bewaking op afstand van Zabbix-infrastructuurcomponenten

Het is nu mogelijk om op afstand de interne statistieken van de Zabbix-server en proxy te monitoren (prestatiestatistieken en gezondheid van Zabbix-componenten).

Waar is het voor? Met deze functionaliteit kunt u de interne statistieken van servers en proxy's van buitenaf monitoren, kunt u snel problemen detecteren en hiervan op de hoogte stellen, zelfs als de componenten zelf overbelast zijn of als er bijvoorbeeld een grote hoeveelheid niet-verzonden gegevens op de proxy staat.

Ondersteuning van HTML-indeling voor e-mailberichten

Nu zijn we niet beperkt tot platte tekst en kunnen we prachtige e-mailberichten maken, dankzij de ondersteuning van het HTML-formaat. Het is tijd om HTML + CSS te leren!

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

Toegang tot externe systemen vanaf netwerkkaarten

Er is ondersteuning voor een hele reeks nieuwe macro's in aangepaste URL's voor een betere integratie van kaarten met externe systemen. Hiermee kunt u bijvoorbeeld met één of twee klikken op het pictogram van een netwerkknooppunt een ticket in het taaksysteem openen.

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

Een detectieregel kan een afhankelijk gegevensitem zijn

Waarom is dit nodig - vraag je. Hierdoor kunnen de onderliggende metrische gegevens worden gebruikt voor zowel detectie als directe gegevensverzameling. In het geval van het verzamelen van gegevens van een Prometheus-exporteur zal Zabbix bijvoorbeeld één HTTP-verzoek doen en de ontvangen informatie onmiddellijk gebruiken voor alle afhankelijke gegevenselementen: metrische waarden en detectieregels op laag niveau.

Een nieuwe manier om problemen op kaarten te visualiseren

Er is nu ondersteuning voor geanimeerde GIF-afbeeldingen op kaarten voor een beter zichtbare visualisatie van problemen.

Zabbix 4.2 uitgebracht
Problematische apparaten zijn zichtbaarder geworden

Gegevens extraheren uit HTTP-headers bij webmonitoring

In Web Monitoring is de mogelijkheid toegevoegd om gegevens uit de ontvangen HTTP-header te selecteren.

Hierdoor kunt u webmonitoringscenario's met meerdere stappen of API-monitoringscenario's van derden maken met behulp van het autorisatietoken dat u in een van de stappen hebt verkregen.

Zabbix 4.2 uitgebracht
AuthID extraheren uit de HTTP-header

Zabbix Sender gebruikt alle IP-adressen

Zabbix Sender verzendt nu gegevens naar alle IP-adressen vanuit de ServerActive-parameter in het agentconfiguratiebestand.

Zabbix 4.2 uitgebracht

Handig nieuw filter in triggerconfiguratie

De triggerconfiguratiepagina heeft nu een uitgebreid filter voor snelle en gemakkelijke selectie van triggers op basis van gespecificeerde criteria.

Zabbix 4.2 uitgebracht
Triggers selecteren die verband houden met de K8S-service

Laat de exacte tijd zien

Alles is hier eenvoudig, nu toont Zabbix de exacte tijd wanneer u met de muis over de grafiek beweegt.

Zabbix 4.2 uitgebracht

Andere innovaties

  • Een voorspelbaarder algoritme geïmplementeerd voor het wijzigen van de volgorde van widgets in het dashboard
  • Mogelijkheid om parameters van prototypen van data-items massaal te wijzigen
  • IPv6-ondersteuning voor DNS-controles: "net.dns" en "new.dns.record"
  • Parameter “skip” toegevoegd voor “vmware.eventlog”-controles
  • De uitvoeringsfout van de voorverwerkingsstap omvat het stapnummer

Hoe upgrade ik?

Om te upgraden van eerdere versies hoeft u alleen maar te installeren nieuwe binaire bestanden (servers en proxy's) en een nieuwe interface. Zabbix zal de database automatisch bijwerken. Het is niet nodig om nieuwe agenten te installeren.

We organiseren gratis webinars voor degenen die meer willen weten over Zabbix 4.2 en de mogelijkheid hebben om vragen te stellen aan het Zabbix-team. Aanmelden!

Vergeet het populaire niet Telegram-kanaal Zabbix-community, waar je altijd advies en antwoorden op je vragen in het Russisch kunt krijgen van meer ervaren collega's, en, als je geluk hebt, van de Zabbix-ontwikkelaars zelf. Aanbevolen voor beginners groep voor beginners.

Nuttige links

- Release notes
- Upgrade-opmerkingen
- Origineel artikel

Bron: www.habr.com

Voeg een reactie