Zabbix 4.2 veröffentlicht

Unser Team freut sich sehr über die Veröffentlichung des kostenlosen Open Source-Überwachungssystems Zabbix 4.2 !



Ist Version 4.2 die Antwort auf die Hauptfrage des Lebens, des Universums und der Überwachung im Allgemeinen? Mal sehen!

Denken Sie daran, dass Zabbix ein universelles System zur Überwachung der Leistung und Verfügbarkeit von Servern, Engineering- und Netzwerkgeräten, Anwendungen, Datenbanken, Virtualisierungssystemen, Containern, IT-Diensten und Webdiensten ist.

Zabbix implementiert einen vollständigen Zyklus aus dem Sammeln, Verarbeiten und Konvertieren von Daten, dem Analysieren empfangener Daten und dem Speichern dieser Daten sowie dem Visualisieren und Senden von Warnungen mithilfe von Eskalationsregeln. Das System bietet außerdem flexible Optionen zum Erweitern von Methoden zum Sammeln von Daten und Warnungen sowie Automatisierungsfunktionen über die API. Eine einzige Weboberfläche ermöglicht die zentrale Verwaltung von Überwachungskonfigurationen und die Verteilung von Zugriffsrechten auf verschiedene Benutzergruppen. Der Projektcode wird unter der GPLv2- Lizenz frei verteilt.

Zabbix 4.2 ist eine neue Nicht-LTS-Version mit einer verkürzten offiziellen Support-Zeit. Benutzern, die von einem langen Betriebszyklus von Softwareprodukten geleitet werden, wird empfohlen, LTS-Versionen wie 3.0 und 4.0 zu verwenden.

Lassen Sie uns also über die neuesten Updates und wesentlichen Verbesserungen von Version 4.2 sprechen:

Weitere offizielle Plattformen



Zusätzlich zu den bestehenden offiziellen Paketen bieten wir auch neue Builds für:

  • RaspberryPi, Mac OS / X, SUSE Enterprise Linux Server 12
  • MSI für Windows Agent
  • Docker-Bilder

Integrierte Prometheus-Unterstützung für die Anwendungsüberwachung


Zabbix kann Daten auf verschiedene Arten (Push / Pull) aus verschiedenen Datenquellen erfassen. Dies sind JMX, SNMP, WMI, HTTP / HTTPS, RestAPI, XML-Seife, SSH, Telnet, Agenten und Skripte sowie andere Quellen. Treffen Sie jetzt die Unterstützung von Prometheus!

Genau genommen war die Datenerfassung von Prometheus-Exporteuren dank des HTTP / HTTPS-Datenelementtyps und regulärer Ausdrücke früher möglich.

Die neue Version ermöglicht es jedoch, dank der integrierten Unterstützung für die PromQL-Abfragesprache so effizient wie möglich mit Prometheus zu arbeiten. Durch die Verwendung abhängiger Metriken können Sie Daten am effizientesten erfassen und verarbeiten: Sobald Sie Daten beantragt haben, können Sie diese gemäß den erforderlichen Metriken auslegen.


Rufen Sie den Wert einer bestimmten Metrik ab

Es ist wichtig zu beachten, dass die Erkennung auf niedriger Ebene die gesammelten Daten jetzt zum automatischen Erstellen von Metriken verwenden kann. In diesem Fall konvertiert Zabbix die empfangenen Daten in das JSON-Format, mit dem sehr bequem gearbeitet werden kann.


Suchen Sie Metriken mithilfe eines Filters in der PromQL-Abfragesprache

Derzeit gibt es mehr als 300 Integrationen und Rezepte zur Überwachung von Diensten und Anwendungen von Drittanbietern mit Zabbix. Durch die Unterstützung von Prometheus wird eine ganze Reihe von Anwendungen hinzugefügt, die offizielle oder von der Community unterstützte Prometheus-Exporteure haben. Dies ist eine Überwachung beliebter Dienste, Container und Cloud-Ressourcen.

Effiziente Hochfrequenzüberwachung


Wollen wir Probleme so schnell wie möglich erkennen? Natürlich kein Zweifel! Meistens führt dieser Ansatz dazu, dass wir Geräte abfragen und zu oft Daten sammeln müssen, was zu einer größeren Belastung des Überwachungssystems führt. Wie vermeide ich das?

Wir haben den Drosselungsmechanismus in die Vorverarbeitungsregeln implementiert. Durch Trab können wir tatsächlich dieselben Werte überspringen.

Angenommen, wir überwachen den Status einer kritischen Anwendung. Jede Sekunde prüfen wir, ob unsere Anwendung funktioniert oder nicht. In diesem Fall empfängt Zabbix einen kontinuierlichen Datenstrom von 1 (funktioniert) und 0 (funktioniert nicht). Zum Beispiel: 1111111111110001111111111111 ...

Wenn mit unserer Anwendung alles in Ordnung ist, erhält Zabbix einen Stream von nur einer Einheit. Muss ich sie verarbeiten? Im Allgemeinen, nein, da wir nur daran interessiert sind, den Status der Anwendung zu ändern, möchten wir nicht so viele Daten sammeln und speichern. Mit Trab können Sie also einen Wert überspringen, wenn er mit dem vorherigen identisch ist. Als Ergebnis erhalten wir nur Daten zur Statusänderung, zum Beispiel 01010101 ... Es gibt genügend Informationen, um Probleme zu erkennen!

Zabbix ignoriert einfach die fehlenden Werte, sie werden nicht in den Verlauf geschrieben und wirken sich in keiner Weise auf die Trigger aus. Aus Sicht von Zabbix existieren keine fehlenden Werte.


Doppelte Werte ignorieren

Wow! Jetzt können wir sehr oft Geräte abfragen und gleichzeitig Probleme sofort erkennen, ohne unnötige Informationen in der Datenbank zu speichern.

Aber was ist mit der Grafik? Sie sind aufgrund fehlender Daten leer! Und woher wissen Sie, ob Zabbix Daten sammelt, wenn die meisten dieser Daten übersprungen werden?

Wir haben darüber nachgedacht! Zabbix bietet eine andere Art der Drosselung an, die Drosselung mit Herzschlag.


Einmal pro Minute überprüfen wir, ob die Metrik aktiv ist

In diesem Fall speichert Zabbix trotz des wiederholten Datenflusses mindestens einen Wert im angegebenen Zeitintervall. Wenn Daten einmal pro Sekunde erfasst werden und das Intervall auf eine Minute eingestellt ist, verwandelt Zabbix einen Ein-Sekunden-Stream von Einsen in einen Ein-Minuten-Stream. Es ist leicht zu erkennen, dass dies zu einer 60-fachen Komprimierung der empfangenen Daten führt.

Jetzt sind wir sicher, dass die Daten gesammelt werden, die Triggerfunktion nodata () funktioniert und alles in Ordnung mit den Diagrammen ist!

Validierung der gesammelten Daten und Fehlerbehandlung


Keiner von uns möchte fehlerhafte oder ungenaue Daten sammeln. Wir wissen beispielsweise, dass ein Temperatursensor Daten zwischen 0 ° C und 100 ° C zurückgeben sollte und jeder andere Wert als fehlerhaft und / oder ignoriert angesehen werden sollte.

Jetzt ist es mit Hilfe integrierter Vorverarbeitungsregeln für die Datenvalidierung möglich, reguläre Ausdrücke, Wertebereiche, JSONPath und XMLPath abzugleichen oder nicht abzugleichen.

Jetzt können wir die Reaktion auf den Fehler steuern. Wenn die Temperatur außerhalb des Bereichs liegt, können wir diesen Wert einfach ignorieren, den Standardwert (z. B. 0 ° C) festlegen oder eine eigene Fehlermeldung definieren, z. B. "Sensor ist beschädigt" oder "Batterie austauschen".


Die Temperatur sollte zwischen 0 und 100 liegen, ignorieren Sie den Rest

Ein gutes Beispiel für die Verwendung der Validierung ist die Möglichkeit, die Eingabe auf das Vorhandensein einer Fehlermeldung zu überprüfen und diesen Fehler für die gesamte Metrik festzulegen. Dies ist eine sehr nützliche Funktion beim Abrufen von Daten von externen APIs.

Jede Datentransformation mit JavaScript


Wenn uns die eingebauten Vorverarbeitungsregeln nicht ausreichen, bieten wir jetzt vollständige Freiheit mit beliebigen JavaScript-Skripten!


Nur eine Codezeile zum Umrechnen von Grad Fahrenheit in Grad Celsius

Dies eröffnet endlose Möglichkeiten für die Verarbeitung eingehender Daten. Der praktische Vorteil dieser Funktionalität besteht darin, dass wir jetzt keine externen Skripte benötigen, die wir für Datenoperationen verwendet haben. All dies kann jetzt mit JavaScript durchgeführt werden.

Jetzt sind Datentransformation, Aggregation, Filter, arithmetische und logische Operationen und vieles mehr möglich!


Wir extrahieren nützliche Informationen aus der Ausgabe von Apache mod_status!

Vorverarbeitung testen


Jetzt müssen wir uns nicht mehr fragen, wie unsere komplexen Vorverarbeitungsskripte funktionieren. Die Richtigkeit der Vorverarbeitung wurde direkt von der Schnittstelle aus bequem überprüft!




Wir verarbeiten Millionen von Metriken pro Sekunde!


Vor Zabbix 4.2 war nur der Zabbix-Server mit der Vorverarbeitung beschäftigt, was die Möglichkeit der Verwendung von Proxys für den Lastausgleich einschränkte.

Ab Version Zabbix 4.2 erhalten wir aufgrund der Unterstützung der Pro-Verarbeitung auf der Proxy-Seite eine unglaublich effiziente Lastskalierung. Jetzt machen es die Proxies!



In Kombination mit der Drosselung ermöglicht dieser Ansatz eine hochfrequente groß angelegte Überwachung und Millionen von Überprüfungen pro Sekunde, ohne den zentralen Zabbix-Server zu laden. Proxies verarbeiten große Datenmengen, während nur ein kleiner Teil von ihnen aufgrund von Drosselung den Zabbix-Server erreicht, ein oder zwei Größenordnungen weniger.

Einfachere Low-Level-Erkennung


Denken Sie daran, dass die Low-Level-Erkennung (LLD) ein sehr leistungsfähiger Mechanismus ist, mit dem jede Art von Überwachungsressourcen (Dateisysteme, Prozesse, Anwendungen, Dienste usw.) automatisch erkannt und Datenelemente, Trigger und Netzwerkknoten automatisch auf ihrer Basis erstellt werden können und andere Objekte. Dies ist unglaublich zeitsparend, vereinfacht die Konfiguration und ermöglicht die Verwendung einer Vorlage für Hosts mit unterschiedlichen Überwachungsressourcen.

Für die Erkennung auf niedriger Ebene waren speziell gestaltete JSON-Eingaben erforderlich. Das war's, es wird nicht mehr sein!

Mit Zabbix 4.2 kann die Low-Level-Erkennung (LLD) beliebige JSON-formatierte Daten verwenden. Warum ist das wichtig? Dies ermöglicht es, ohne auf Skripte zurückzugreifen, beispielsweise mit externen APIs zu kommunizieren und die empfangenen Informationen zu verwenden, um automatisch Netzwerkknoten, Datenelemente und Trigger zu erstellen.

Zusammen mit der JavaScript-Unterstützung bietet dies fantastische Möglichkeiten zum Erstellen von Vorlagen für die Arbeit mit verschiedenen Datenquellen, z. B. Cloud-APIs, Anwendungs-APIs, Daten in XML, CSV-Formaten usw.


Verknüpfen Sie JSON mit Prozessinformationen mit LLD

Die Möglichkeiten sind wirklich endlos!

TimescaleDB-Unterstützung





Was ist TimescaleDB? Dies ist ein reguläres PostgreSQL plus-Erweiterungsmodul des TimescaleDB-Teams. TimescaleDB verspricht eine bessere Leistung mit effizienteren Algorithmen und Datenstrukturen.

Ein weiterer Vorteil von TimescaleDB ist die automatische Partitionierung von Tabellen mit Verlauf. TimescaleDB ist schnell und einfach zu warten! Ich sollte jedoch beachten, dass unser Team die Leistung noch nicht ernsthaft mit regulärem PostgreSQL verglichen hat.

Derzeit ist TimescaleDB ein relativ junges und schnell wachsendes Produkt. Mit Vorsicht verwenden!

Einfache Tag-Verwaltung


Wenn frühere Tags nur auf Trigger-Ebene gesteuert werden konnten, ist die Tag-Verwaltung jetzt viel flexibler. Zabbix unterstützt Tags für Vorlagen und Hosts!

Alle erkannten Probleme erhalten Tags nicht nur des Triggers, sondern auch des Hosts sowie der Vorlagen dieses Hosts.


Definieren Sie die Tags für den Host

Flexiblere automatische Registrierung


Mit Zabbix 4.2 können Sie Hosts mithilfe regulärer Ausdrücke nach Namen filtern. Auf diese Weise können verschiedene Erkennungsskripte für verschiedene Gruppen von Hosts erstellt werden. Es ist besonders praktisch, wenn wir komplexe Regeln für die Benennung von Geräten verwenden.

Flexiblere Netzwerkerkennung


Eine weitere Verbesserung ist die Benennung von Hosts. Jetzt können Sie Gerätenamen während der Netzwerkerkennung verwalten und den Gerätenamen aus dem Metrikwert abrufen.

Dies ist eine sehr notwendige Funktionalität, insbesondere für die Netzwerkerkennung mit SNMP und Zabbix Agent.


Weisen Sie dem sichtbaren Namen automatisch den lokalen Hostnamen zu

Überprüfen der Funktionsfähigkeit von Benachrichtigungsmethoden


Jetzt können Sie sich direkt über die Weboberfläche eine Testnachricht senden und prüfen, ob die Benachrichtigungsmethode funktioniert. Diese Funktion ist besonders nützlich, um Skripte zu überprüfen, die Zabbix mit verschiedenen Warnsystemen, Tasksystemen und anderen externen Programmen und APIs kombinieren.



Fernüberwachung von Zabbix-Infrastrukturkomponenten


Jetzt können Sie interne Zabbix-Server- und Proxy-Metriken (Leistungs- und Integritätsmetriken von Zabbix-Komponenten) remote überwachen.

Wofür ist das? Mithilfe der Funktionalität können Sie interne Metriken von Servern und Proxys von der Seite aus überwachen, Probleme schnell erkennen und benachrichtigen, selbst wenn die Komponenten selbst überlastet sind oder beispielsweise eine große Menge nicht gesendeter Daten an den Proxy gesendet wird.

Unterstützung des HTML-Formats für E-Mail-Nachrichten


Jetzt sind wir nicht mehr auf einfachen Text beschränkt und können dank der Unterstützung des HTML-Formats schöne E-Mail-Nachrichten erstellen. Es ist Zeit, HTML + CSS zu lernen!


Nachrichten sind selbst bei minimaler Verwendung von HTML einfacher zu lesen

Zugriff auf externe Systeme über Netzwerkkarten


Es gibt Unterstützung für eine ganze Reihe neuer Makros in benutzerdefinierten URLs zur besseren Integration von Karten in externe Systeme. Auf diese Weise können mit ein oder zwei Klicks auf das Host-Symbol beispielsweise ein Ticket im Task-System geöffnet werden.


Ein Klick, um ein Ticket in Jira zu öffnen

Die Erkennungsregel kann ein abhängiges Datenelement sein.


Warum brauchst du das - fragst du. Dies ermöglicht die Verwendung grundlegender Metrikdaten sowohl für die Erkennung als auch für die direkte Datenerfassung. Wenn Sie beispielsweise Daten vom Prometheus-Exporter erfassen, stellt Zabbix eine HTTP-Anforderung und verwendet die empfangenen Informationen sofort für alle abhängigen Datenelemente: Metrikwerte und Erkennungsregeln auf niedriger Ebene.

Eine neue Möglichkeit, Probleme auf Karten zu visualisieren


Die Unterstützung für animierte GIF-Bilder auf Karten wurde angezeigt, um Probleme besser sichtbar zu machen.


Problemgeräte werden sichtbarer

Abrufen von Daten aus HTTP-Headern in der Webüberwachung


Bei der Webüberwachung wurde die Möglichkeit hinzugefügt, Daten aus dem empfangenen HTTP-Header auszuwählen.

Auf diese Weise können Sie mehrstufige Skripts für die Webüberwachung oder die Überwachung von APIs von Drittanbietern mithilfe des in einem der Schritte erhaltenen Autorisierungstokens erstellen.


Extrahieren Sie AuthID aus dem HTTP-Header

Zabbix Sender verwendet alle IP-Adressen


Zabbix Sender sendet jetzt Daten an alle IP-Adressen aus dem ServerActive-Parameter der Agentenkonfigurationsdatei.



Praktischer neuer Filter in Trigger-Konfiguration


Die Trigger-Konfigurationsseite verfügt über einen erweiterten Filter für die schnelle und bequeme Auswahl von Triggern nach festgelegten Kriterien.


Wählen Sie Trigger für den K8S-Dienst

Wir zeigen die genaue Zeit


Es ist ganz einfach, jetzt zeigt Zabbix die genaue Zeit an, zu der Sie mit der Maus über das Diagramm fahren.



Andere Innovationen


  • Implementierung eines besser vorhersehbaren Algorithmus zum Ändern der Reihenfolge von Widgets im Dashboard (Bedienfeld)
  • Die Fähigkeit, die Parameter der Prototypen von Datenelementen massenweise zu ändern
  • IPv6-Unterstützung für DNS-Prüfungen: "net.dns" und "new.dns.record"
  • Überspringen-Parameter für vmware.eventlog-Überprüfungen hinzugefügt
  • Der Vorverarbeitungsschrittausführungsfehler enthält die Schrittnummer

Wie aktualisiere ich?


Um von früheren Versionen zu migrieren, müssen Sie nur neue Binärdateien (Server und Proxy) und eine neue Schnittstelle installieren. Zabbix aktualisiert die Datenbank automatisch. Die Installation neuer Agenten ist nicht erforderlich.

Wir bieten kostenlose Webinare für diejenigen an, die mehr über Zabbix 4.2 erfahren und Fragen an das Zabbix-Team stellen möchten. Melde dich an!

Vergessen Sie nicht den beliebten Telegrammkanal der Zabbix-Community, auf dem Sie immer Ratschläge und Antworten auf Ihre Fragen auf Russisch von erfahreneren Kollegen und, wenn Sie Glück haben, von den Zabbix-Entwicklern selbst erhalten. Für Anfänger empfehlen wir eine Gruppe für Anfänger .

Nützliche Links


- Versionshinweise
- Upgrade-Hinweise
- Originalartikel

Source: https://habr.com/ru/post/de444894/


All Articles