Unser Team freut sich, Ihnen mitteilen zu können, dass die Veröffentlichung des freien Monitoring-Systems mit offenem Quellcode stattgefunden hat. !

Ist Version 4.2 die Antwort auf die große Frage nach dem Leben, dem Universum und dem Monitoring im Allgemeinen? Lassen Sie uns einen Blick darauf werfen!
Erinnern wir uns, dass Zabbix ein universelles System zur Überwachung der Leistung und Verfügbarkeit von Servern, Ingenieurausrüstung und Netzwerktechnik, Anwendungen, Datenbanken, Virtualisierungssystemen, Containern, IT-Services und Webdiensten ist.
Zabbix implementiert den vollständigen Zyklus von der Datensammlung, ihrer Verarbeitung und Umwandlung, der Analyse der erhaltenen Daten bis hin zur Speicherung dieser Daten, Visualisierung und dem Versand von Benachrichtigungen unter Verwendung von Eskalationsregeln. Das System bietet auch flexible Möglichkeiten zur Erweiterung der Methoden zur Datensammlung und Benachrichtigung sowie zur Automatisierung über die API. Eine einheitliche Web-Oberfläche ermöglicht eine zentrale Verwaltung der Monitoring-Konfigurationen und der Berechtigungsverteilung an verschiedene Benutzergruppen. Der Quellcode des Projekts wird unter einer Lizenz verbreitet. .
Zabbix 4.2 ist eine neue nicht LTS-Version mit verkürzter offizieller Unterstützung. Für Benutzer, die auf lange Lebenszyklen von Softwareprodukten setzen, empfehlen wir die Verwendung von LTS-Versionen wie 3.0 und 4.0.
Also, lassen Sie uns über die Neuheiten und wichtigsten Verbesserungen der Version 4.2 sprechen:
Mehr offizielle Plattformen

Neben den bereits vorhandenen offiziellen Paketen bieten wir auch neue Builds für an:
- RaspberryPi, Mac OS/X, SUSE Enterprise Linux Server 12
- MSI für den Windows-Agenten
- Docker-Images
Integrierte Unterstützung für Prometheus zur Überwachung von Anwendungen
Zabbix kann Daten auf verschiedene Arten (Push/Pull) aus unterschiedlichen Datenquellen sammeln. Dazu gehören JMX, SNMP, WMI, HTTP/HTTPS, RestAPI, XML Soap, SSH, Telnet, Agenten und Skripte sowie andere Quellen. Und jetzt freuen Sie sich auf die Unterstützung von Prometheus!
Genauer gesagt, die Datensammlung von Prometheus-Exporten war auch früher möglich, dank des Datenelementtyps HTTP/HTTPS und regulärer Ausdrücke.
Die neue Version ermöglicht jedoch eine möglichst effiziente Arbeit mit Prometheus dank der integrierten Unterstützung der Abfragesprache PromQL. Und die Verwendung von abhängigen Metriken ermöglicht es, Daten am effektivsten zu sammeln und zu verarbeiten: Einmal die Daten angefordert, und dann verteilen wir sie auf die benötigten Metriken.
Wert einer bestimmten Kennzahl abrufen
Es ist wichtig zu beachten, dass die Low-Level-Erkennung jetzt gesammelte Daten zur automatischen Erstellung von Kennzahlen verwenden kann. In diesem Fall konvertiert Zabbix die erhaltenen Daten in das JSON-Format, mit dem es sehr einfach zu arbeiten ist.
Kennzahlen mit einem Filter in der Abfragesprache PromQL finden
Derzeit gibt es mehr als externer Dienste und Anwendungen mithilfe von Zabbix. Die Unterstützung von Prometheus ermöglicht es, eine Reihe von Anwendungen hinzuzufügen, die offizielle oder von der Gemeinschaft unterstützte Prometheus-Exporter haben. Dies umfasst die Überwachung beliebter Dienste, Container und Cloud-Ressourcen.
Effektive hochfrequente Überwachung
Wollen wir Probleme so schnell wie möglich erkennen? Natürlich, da gibt es keinen Zweifel! Häufig führt dieser Ansatz dazu, dass wir die Geräte zu häufig abfragen und Daten sammeln müssen, was zu einer höheren Belastung des Überwachungssystems führt. Wie kann man das vermeiden?
Wir haben einen Throttling-Mechanismus in den Preprocessing-Regeln implementiert. Throttling ermöglicht es uns im Grunde, identische Werte zu überspringen.
Nehmen wir an, wir überwachen den Zustand einer kritischen Anwendung. Jede Sekunde überprüfen wir, ob unsere Anwendung funktioniert oder nicht. In diesem Fall kommt ein kontinuierlicher Datenstrom aus 1 (funktioniert) und 0 (funktioniert nicht) in Zabbix an. Zum Beispiel: 1111111111110001111111111111...
Wenn alles in Ordnung ist mit unserer Anwendung, erhält Zabbix einen Datenstrom, der nur aus Einsen besteht. Müssen wir sie verarbeiten? Im Grunde nicht, denn uns interessiert nur der Zustand der Anwendung, wir wollen nicht so viele Daten sammeln und speichern. Throttling erlaubt es, einen Wert zu überspringen, wenn er identisch mit dem vorherigen ist. Am Ende erhalten wir nur Daten über Zustandsänderungen, beispielsweise 01010101... Das ist ausreichend Informationen zur Problemerkennung!
Übergangene Werte ignoriert Zabbix einfach, sie werden nicht in die Historie aufgenommen und beeinflussen die Trigger nicht. Aus Sicht von Zabbix existieren übergangene Werte nicht.
Wiederholende Werte ignorieren
Toll! Jetzt können wir die Geräte sehr häufig abfragen und gleichzeitig sofort Probleme erkennen, ohne unnötige Informationen in der Datenbank zu speichern.
Aber wie sieht es mit den Grafiken aus? Sie werden doch wegen mangelnder Daten leer sein! Und wie kann man verstehen, ob Zabbix Daten sammelt, wenn die meisten dieser Daten übersprungen werden?
Darüber haben wir auch nachgedacht! Zabbix bietet eine weitere Art des Throttlings an, das Throttling mit Kontrollpunkten (throttling with heartbeat).
Einmal pro Minute überprüfen wir, ob die Metrik lebt
In diesem Fall wird Zabbix trotz des wiederkehrenden Datenstroms mindestens einen Wert im angegebenen Zeitintervall speichern. Wenn Daten einmal pro Sekunde erfasst werden und das Intervall auf eine Minute gesetzt ist, wandelt Zabbix den einstündlichen Strom von Einsen in einen einstündlichen Strom um. Es ist leicht zu erkennen, dass dies zu einer 60-fachen Kompression der gesammelten Daten führt.
Jetzt sind wir uns sicher, dass die Daten erfasst werden, die Funktion des Triggers nodata() funktioniert und mit den Grafiken alles in Ordnung ist!
Validierung der gesammelten Daten und Fehlerbearbeitung
Niemand von uns möchte fehlerhafte oder unzuverlässige Daten erfassen. Zum Beispiel wissen wir, dass der Temperatursensor Daten im Bereich von 0 °C bis 100 °C zurückgeben sollte, und jeder andere Wert sollte als fehlerhaft und/oder ignoriert werden.
Jetzt ist dies möglich mithilfe der eingebauten Regeln zur Validierung von Daten durch Übereinstimmung oder Nichterfüllung von regulären Ausdrücken, Wertebereichen, JSONPath und XMLPath.
Jetzt können wir die Reaktion auf Fehler steuern. Wenn die Temperatur außerhalb des Bereichs liegt, können wir diesen Wert einfach ignorieren, einen Standardwert festlegen (zum Beispiel 0 °C) oder eine eigene Fehlermeldung definieren, wie "Sensor defekt" oder "Batterie wechseln."
Die Temperatur sollte zwischen 0 und 100 liegen, alles andere ignorieren wir
Ein gutes Beispiel für die Verwendung von Validierung ist die Möglichkeit, Eingabewerte auf das Vorhandensein einer Fehlermeldung zu prüfen und diesen Fehler für die gesamte Metrik festzulegen. Dies ist eine sehr nützliche Funktionalität beim Erfassen von Daten aus externen APIs.
Jede Datenumwandlung mit JavaScript
Wenn uns die eingebauten Regeln zur Vorverarbeitung nicht ausreichen, bieten wir jetzt vollständige Freiheit mit der Verwendung beliebiger Skripte in JavaScript!
Nur eine Codezeile zur Umwandlung von Fahrenheit in Celsius
Dies eröffnet unbegrenzte Möglichkeiten zur Verarbeitung eingehender Daten. Der praktische Nutzen dieser Funktionalität besteht darin, dass wir nun keine externen Skripte mehr benötigen, die wir zuvor für irgendwelche Datenoperationen verwendet haben. Jetzt kann alles mit JavaScript erledigt werden.
Jetzt sind Datentransformationen, Aggregationen, Filter, arithmetische und logische Operationen und vieles mehr möglich!
Wir extrahieren nützliche Informationen aus der Ausgabe von Apache mod_status!
Wir testen die Vorverarbeitung
Jetzt müssen wir nicht mehr raten, wie unsere komplexen Vorverarbeitungsszenarien funktionieren. Es gibt jetzt eine bequeme Überprüfung der Funktionsweise der Vorverarbeitung direkt über die Benutzeroberfläche!
Wir verarbeiten Millionen von Metriken pro Sekunde!
Bis Zabbix 4.2 wurde die Vorverarbeitung ausschließlich von Zabbix-Servern übernommen, was die Möglichkeiten der Verwendung von Proxys zur Lastverteilung einschränkte.
Mit der Version Zabbix 4.2 erhalten wir eine unglaublich effiziente Lastskalierung durch die Unterstützung der Vorverarbeitung auf Proxy-Seite. Jetzt übernehmen dies die Proxys!
In Kombination mit Throttling ermöglicht dieser Ansatz hochfrequentes, skalierbares Monitoring und die Durchführung von Millionen von Überprüfungen pro Sekunde, ohne den zentralen Zabbix-Server zu belasten. Proxys verarbeiten riesige Datenmengen, wobei durch Throttling nur ein kleiner Teil zum Zabbix-Server gelangt, der ein bis zwei Größenordnungen kleiner ist.
Einfachere Low-Level-Erkennung
Erinnern wir uns, dass die Low-Level-Erkennung (LLD) ein sehr leistungsfähiger Mechanismus zur automatischen Erkennung jeglicher Art von Ressourcen für das Monitoring (Dateisysteme, Prozesse, Anwendungen, Dienste usw.) und zur automatischen Erstellung von Datenelementen, Triggern, Netzwerk-Knoten und anderen Objekten ist. Dies spart enorm Zeit, vereinfacht die Konfiguration und ermöglicht die Verwendung eines einzigen Templates für Netzwerk-Knoten mit unterschiedlichen zu überwachenden Ressourcen.
Die Low-Level-Erkennung benötigte zuvor einen speziell formatierten JSON-Eingang. Das wird so nicht mehr sein!
Zabbix 4.2 ermöglicht die Verwendung beliebig formatierter Daten im JSON-Format für die Low-Level-Diskoverie (LLD). Warum ist das wichtig? Es ermöglicht, ohne Skripte beispielsweise mit externen APIs zu kommunizieren und die erhaltenen Informationen zur automatischen Erstellung von Netzwerk-Knoten, Datenelementen und Triggern zu nutzen.
In Kombination mit der Unterstützung für JavaScript bietet dies fantastische Möglichkeiten zur Erstellung von Vorlagen für die Arbeit mit verschiedenen Datenquellen, wie zum Beispiel Cloud-APIs, Anwendungs-APIs, Daten in den Formaten XML, CSV und vielen mehr.
Verknüpfung von JSON mit Informationen über Prozesse mit LLD
Die Möglichkeiten sind wirklich grenzenlos!
Unterstützung für TimescaleDB
Was ist TimescaleDB? Es ist ein gewöhnliches PostgreSQL plus ein Erweiterungsmodul vom TimescaleDB-Team. TimescaleDB verspricht eine bessere Leistung durch effizientere Algorithmen und Datenstrukturen.
Darüber hinaus ist ein weiterer Vorteil von TimescaleDB die automatische Partitionierung von Historientabellen. TimescaleDB bietet Geschwindigkeit und einfache Wartung! Ich möchte jedoch darauf hinweisen, dass unser Team bisher keinen umfassenden Leistungstest im Vergleich zu herkömmlichem PostgreSQL durchgeführt hat.
Aktuell ist TimescaleDB ein relativ junges und schnell wachsendes Produkt. Bitte vorsichtig verwenden!
Einfache Verwaltung von Tags
Früher konnte man Tags nur auf Trigger-Ebene verwalten, jetzt ist die Tag-Verwaltung viel flexibler. Zabbix unterstützt Tags für Vorlagen und Netzwerk-Knoten!
Alle erkannten Probleme erhalten Tags, nicht nur für den Trigger, sondern auch für den Netzwerk-Knoten sowie die Vorlagen dieses Netzwerk-Knotens.
Tags für den Netzwerk-Knoten definieren
Flexiblere Selbstregistrierung
Zabbix 4.2 ermöglicht das Filtern von Netzwerk-Knoten nach Name unter Verwendung von regulären Ausdrücken. Dies ermöglicht die Erstellung verschiedener Entdeckungsszenarien für unterschiedliche Gruppen von Netzwerk-Knoten. Besonders praktisch, wenn komplexe Namensregeln für Geräte verwendet werden.
Flexiblere Netzwerkerkennung
Eine weitere Verbesserung bezieht sich auf die Benennung von Netzwerk-Knoten. Es gibt nun die Möglichkeit, die Gerätenamen bei der Netzwerkerkennung zu steuern und den Gerätenamen aus dem Metrikwert zu beziehen.
Diese Funktionalität ist besonders nützlich, insbesondere bei der Netzwerkerkennung mit SNMP und dem Zabbix-Agenten.
Automatisch weisen wir dem lokalen Namen des Netzwerk-Knotens den sichtbaren Namen zu.
Überprüfung der Funktionsweise der Benachrichtigungsmethoden
Jetzt kann direkt über die Web-Oberfläche eine Testnachricht an sich selbst gesendet werden, um zu überprüfen, ob die Benachrichtigungsmethode funktioniert. Diese Funktion ist besonders nützlich für die Überprüfung von Zabbix-Skripten in Verbindung mit verschiedenen Benachrichtigungssystemen, Aufgabenverwaltungssystemen und anderen externen Programmen und APIs.
Fernüberwachung von Zabbix-Infrastrukturkomponenten
Es besteht nun die Möglichkeit der Fernüberwachung interner Metriken des Zabbix-Servers und Proxys (Leistungs- und Funktionsmetriken von Zabbix-Komponenten).
Wozu ist das notwendig? Diese Funktionalität ermöglicht es, die internen Metriken der Server und Proxys fern zu überwachen, sodass Probleme schnell erkannt und gemeldet werden können, auch wenn die Komponenten selbst überlastet sind oder beispielsweise der Proxy eine große Menge nicht gesendeter Daten hat.
Unterstützung des HTML-Formats für E-Mail-Nachrichten
Jetzt sind wir nicht mehr auf einfachen Text beschränkt und können ansprechende E-Mail-Nachrichten erstellen, da die Unterstützung des HTML-Formats verfügbar ist. Es ist an der Zeit, HTML + CSS zu lernen!
Nachrichten sind auch bei minimaler Nutzung von HTML leichter verständlich
Zugriff auf externe Systeme aus Netzwerkmappe
Es gibt Unterstützung für eine ganze Reihe neuer Makros in benutzerdefinierten URLs, um die Integration der Karten mit externen Systemen zu verbessern. Dies ermöglicht es, mit ein oder zwei Klicks auf das Symbol eines Netzwerknotens beispielsweise ein Ticket im Aufgabensystem zu öffnen.
Ein Klick, um ein Ticket in Jira zu öffnen
Die Entdeckungsregel kann vom abhängigen Datenelement sein
Warum ist das sinnvoll, werden Sie fragen. Es ermöglicht die Verwendung der Daten der Hauptmetrik sowohl zur Entdeckung als auch zum direkten Sammeln von Daten. Zum Beispiel, wenn Daten von einem Prometheus-Exporter gesammelt werden, führt Zabbix eine HTTP-Anfrage durch und nutzt die erhaltenen Informationen unverzüglich für alle abhängigen Datenelemente: Metrikwerte und Niedrigstufige Entdeckungsregeln.
Neue Möglichkeit zur Visualisierung von Problemen auf Karten
Es besteht jetzt Unterstützung für animierte GIF-Bilder auf Karten, um Probleme deutlicher zu visualisieren.
Problematische Geräte sind jetzt besser erkennbar
Daten aus den HTTP-Headern im Web-Monitoring extrahieren
Im Web-Monitoring wurde die Möglichkeit hinzugefügt, Daten aus dem empfangenen HTTP-Header auszuwählen.
Dies ermöglicht die Erstellung von mehrstufigen Szenarien für die Webüberwachung oder die Überwachung von Drittanbieter-APIs unter Verwendung eines Autorisierungstokens, das in einem der Schritte erhalten wurde.
Wir extrahieren das AuthID aus dem HTTP-Header
Zabbix Sender verwendet alle IP-Adressen
Zabbix Sender sendet jetzt Daten über alle IP-Adressen aus dem Parameter ServerActive der Konfigurationsdatei des Agents.
Neu gestalteter praktischer Filter in der Trigger-Konfiguration
Die Seite zur Trigger-Konfiguration verfügt jetzt über einen erweiterten Filter für eine schnelle und bequeme Auswahl von Triggern nach festgelegten Kriterien.
Wir wählen Trigger aus, die zum K8S-Dienst gehören
Das genaue Datum anzeigen
Hier ist alles einfach, jetzt zeigt Zabbix die genaue Zeit an, wenn der Mauszeiger über das Diagramm bewegt wird.

Weitere Neuerungen
- Ein vorhersehbarer Algorithmus wurde implementiert, um die Reihenfolge der Widgets im Dashboard zu ändern.
- Möglichkeit zur massenhaften Änderung von Parametern von Datenprototypelementen
- Unterstützung von IPv6 für DNS-Überprüfungen: „net.dns“ und „new.dns.record“
- Ein neuer Parameter „skip“ wurde für die Überprüfungen „vmware.eventlog“ hinzugefügt
- Die Fehlermeldung beim Preprocessing-Schritt enthält die Schrittzahl
Wie aktualisieren?
Für das Upgrade von früheren Versionen ist lediglich die Installation erforderlich (Server und Proxys) und einer neuen Schnittstelle. Zabbix wird automatisch den Prozess zur Aktualisierung der Datenbank durchführen. Die Installation neuer Agents ist nicht erforderlich.
Wir bieten kostenlose Webinare für alle, die mehr über Zabbix 4.2 erfahren möchten und die Möglichkeit haben, Fragen an das Zabbix-Team zu stellen.
Vergessen wir nicht den beliebten der Zabbix-Community, wo man immer Beratung und Antworten auf seine Fragen auf Russisch von erfahrenen Kollegen erhalten kann und, wenn es gut läuft, sogar von den Entwicklern von Zabbix selbst. Für Neueinsteiger empfehlen wir .
Nützliche Links
—
—
—
Quelle: habr.com
