Verteilte Überwachung mit Proxys

Übersicht

Zabbix-Proxys können verwendet werden, um eine effektive und zuverlässige verteilte Überwachung einzurichten.

Proxys werden lokal bereitgestellt, um Leistungs- und Verfügbarkeitsdaten zu erfassen. Anschließend werden die Daten an einen zentralen Server gemeldet.

Ein Zabbix-Proxy kann verwendet werden, um:

  • Remote-Standorte zu überwachen
  • Standorte mit unzuverlässiger Kommunikation zu überwachen
  • den Zabbix-Server bei der Überwachung von Tausenden Geräten zu entlasten
  • Telemetriedaten für das Application Performance Monitoring (APM) zu erfassen

Der Proxy benötigt nur eine TCP-Verbindung zum Zabbix-Server. Dadurch lässt sich eine Firewall leichter umgehen, da Sie nur eine Firewall-Regel konfigurieren müssen.

Der Zabbix-Proxy muss eine separate Datenbank verwenden. Wenn Sie ihn auf die Datenbank des Zabbix-Servers verweisen lassen, wird die Konfiguration beschädigt.

Alle vom Proxy erfassten Daten werden lokal gespeichert, bevor sie an den Server übertragen werden. Auf diese Weise gehen aufgrund vorübergehender Kommunikationsprobleme mit dem Server keine Daten verloren. Die Parameter ProxyLocalBuffer und ProxyOfflineBuffer in der Proxy-Konfigurationsdatei steuern, wie lange die Daten lokal gespeichert werden.

Es kann vorkommen, dass ein Proxy, der die neuesten Konfigurationsänderungen direkt aus der Datenbank des Zabbix-Servers erhält, über eine aktuellere Konfiguration verfügt als der Zabbix-Server, dessen Konfiguration aufgrund des Werts von CacheUpdateFrequency möglicherweise nicht so schnell aktualisiert wird. Infolgedessen kann der Proxy mit der Datenerfassung beginnen und diese Daten an den Zabbix-Server senden, der die Daten ignoriert.

Der Zabbix-Proxy ist ein Datensammler. Er berechnet keine Auslöser, verarbeitet keine Ereignisse und sendet keine Warnungen. Eine Übersicht über die Funktionen des Proxys finden Sie in der folgenden Tabelle:

Funktion Vom Proxy unterstützt
Datenpunkte
Zabbix-Agent-Prüfungen Ja
Zabbix-Agent-Prüfungen (aktiv) Ja 1
Einfache Prüfungen Ja
Trapper-Datenpunkte Ja
SNMP-Prüfungen Ja
SNMP-Traps Ja
IPMI-Prüfungen Ja
JMX-Prüfungen Ja
Überwachung von Protokolldateien Ja
Interne Prüfungen Ja
SSH-Prüfungen Ja
Telnet-Prüfungen Ja
Externe Prüfungen Ja
Abhängige Datenpunkte Ja
Skript-Datenpunkte Ja
Browser-Datenpunkte Ja
Telemetrieabfrage-Datenpunkte Ja
Integrierte Webüberwachung Ja
Vorverarbeitung von Datenpunktwerten Ja
Netzwerkerkennung Ja
Automatische Registrierung aktiver Agents Ja
Low-Level-Discovery Ja 2
Remote-Befehle Ja
Erfassung von Telemetriedaten (APM) Ja 3
Berechnung von Auslösern Nein
Verarbeitung von Ereignissen Nein
Ereigniskorrelation Nein
Senden von Warnungen Nein

[1] Damit ein Agent den Proxy und nicht den Server nach aktiven Prüfungen fragt, muss der Proxy im Parameter ServerActive in der Agent-Konfigurationsdatei aufgeführt sein.
[2] Bei LLD erfasst und verarbeitet der Zabbix-Proxy die Daten nur vor und sendet sie anschließend zur weiteren Verarbeitung an den Zabbix-Server.
[3] Telemetriedaten werden nur erfasst, wenn APM auf dem Proxy aktiviert ist (siehe die Registerkarte APM in der Proxy-Konfiguration); der Zabbix-Server kann keine Telemetriedaten empfangen.

Proxy-Funktionen

Bei der Entscheidung, ob ein Proxy verwendet werden soll oder nicht, müssen mehrere Aspekte berücksichtigt werden.

Proxy
Leichtgewichtig Ja
GUI Nein
Arbeitet unabhängig Ja
Einfache Wartung Ja
Automatische DB-Erstellung Ja1
Lokale Administration Nein
Für Embedded-Hardware geeignet Ja
Einweg-TCP-Verbindungen Ja
Zentralisierte Konfiguration Ja
Erzeugt Benachrichtigungen Nein

1 Die Funktion zur automatischen DB-Erstellung funktioniert nur mit SQLite. Andere unterstützte Datenbanken erfordern ein manuelles Setup.

Der Zabbix Proxy ist sich Wartungszeiträumen nicht bewusst; siehe Berechnung der Warteschlangen während der Wartung für Details.

Schutz vor Überlastung

Wenn der Zabbix Server für einige Zeit ausgefallen war und Proxys viele Daten gesammelt haben und der Server dann startet, kann es zu einer Überlastung kommen (die Auslastung des History-Cache bleibt für einige Zeit bei 95-100 %). Diese Überlastung kann zu Leistungseinbußen führen, bei denen Prüfungen langsamer verarbeitet werden, als sie sollten. Zum Schutz vor diesem Szenario wurde eine Funktion implementiert, um Probleme zu vermeiden, die durch die Überlastung des History-Cache entstehen.

Wenn der History-Cache des Zabbix Server voll ist, wird der Schreibzugriff auf den History-Cache gedrosselt, wodurch die Prozesse zur Datenerfassung des Servers blockiert werden. Der häufigste Fall einer Überlastung des History-Cache tritt nach einer Server-Ausfallzeit auf, wenn Proxys gesammelte Daten hochladen. Um dies zu vermeiden, wurde eine Proxy-Drosselung hinzugefügt (derzeit kann sie nicht deaktiviert werden).

Wenn die Auslastung des History-Cache 80 % erreicht, wechselt der Zabbix Server in den Drosselungsmodus. Im Drosselungsmodus akzeptiert der Server Proxy-Daten nur dann, wenn die Auslastung des History-Cache unter 60 % liegt, und rotiert die akzeptierten Proxys. Sobald die Auslastung des History-Cache unter 20 % fällt, wechselt der Server wieder in den Normalmodus.

Zusätzlich drosselt der Zabbix Server im Normalmodus einzelne Proxys, die sehr große Pakete (10.000+ Datensätze) senden, wenn die Auslastung des History-Cache 60 % überschreitet. Diese Entscheidung wird in dem Moment getroffen, in dem der Server einen Proxy-Upload auswertet, und kann daher in Diagrammen zur Auslastung des History-Cache nicht immer sofort sichtbar sein (der interne Datenpunkt zabbix[wcache,history,pused] und sein Aktualisierungsintervall können kurze Spitzen möglicherweise verpassen).

Dieser Drosselungsmodus bleibt aktiv, bis entweder die Cache-Auslastung erneut 80 % erreicht oder auf 20 % fällt oder die Drosselliste leer ist. Im ersten Fall akzeptiert der Server wieder keine Proxy-Daten. In den beiden anderen Fällen arbeitet der Server wieder normal und akzeptiert Daten von allen Proxys.

Die obigen Informationen lassen sich in der folgenden Tabelle veranschaulichen:

History write
cache usage
Zabbix server mode Zabbix server action
Erreicht 80 % Warten Akzeptiert keine Proxy-Daten mehr, behält aber eine Drosselliste bei (priorisierte Liste von Proxys, die später kontaktiert werden).
Erreicht 60 % Normal, aber auf Drosselung vorbereitet Kann sehr große Proxy-Uploads (mehr als 10.000 Datensätze) bei der Entscheidung über die Datenannahme ablehnen; akzeptiert weiterhin andere Proxy-Daten.
Fällt auf 20 % Normal Verwirft die Drosselliste und beginnt wieder, Proxy-Daten normal zu akzeptieren.

Sie können den internen Datenpunkt zabbix[wcache,history,pused] verwenden, um dieses Verhalten des Zabbix Server mit einer Metrik zu korrelieren.

Konfiguration

Nachdem Sie einen Proxy installiert und konfiguriert haben, ist es an der Zeit, ihn im Zabbix-Frontend zu konfigurieren.

Proxys hinzufügen

Anstatt einen Proxy in Ihrer eigenen Infrastruktur zu installieren, können Sie einen in Zabbix Cloud bereitstellen. Klicken Sie dazu auf Proxy in der Cloud erstellen unter Administration > Proxys; Zabbix Cloud wird in einem neuen Browser-Tab geöffnet. Nachdem Sie dort einen Proxy-Knoten erstellt haben, konfigurieren Sie den Proxy im Zabbix Frontend wie unten beschrieben. Weitere Informationen finden Sie unter Einen Zabbix Cloud-Proxy einrichten.

So konfigurieren Sie einen Proxy im Zabbix Frontend:

  1. Gehen Sie zu Administration > Proxys.
  2. Klicken Sie auf Proxy erstellen.
  3. Geben Sie die Proxy-Parameter im Formular ein.

Parameter Beschreibung
Proxy name Geben Sie den Namen des Proxys ein. Er muss mit dem Namen im Parameter Hostname in der Proxy-Konfigurationsdatei übereinstimmen.
Proxy group Wählen Sie eine Proxy-Gruppe für Lastverteilung/hohe Verfügbarkeit des Proxys aus.
Address for active agents Geben Sie die Adresse ein, mit der sich die überwachten aktiven Agents oder Sender verbinden müssen. Unterstützt nur von Zabbix-Agenten ab Version 7.0.
Diese Adresse wird verwendet, um sowohl aktive als auch passive Proxys zu verbinden. Dieses Feld ist nur verfügbar, wenn im Feld Proxy group eine Proxy-Gruppe ausgewählt wurde.
Address IP-Adresse/DNS-Name, mit dem eine Verbindung hergestellt werden soll.
Port TCP-Portnummer (standardmäßig 10051), mit dem eine Verbindung hergestellt werden soll. Benutzermakros werden unterstützt.
Proxy mode Wählen Sie den Proxy-Modus aus.
Active – Der Proxy verbindet sich mit dem Zabbix Server und fordert Konfigurationsdaten an.
Passive – Der Zabbix Server verbindet sich mit dem Proxy.
Hinweis: Ohne verschlüsselte Kommunikation können (sensible) Proxy-Konfigurationsdaten bei Verwendung eines aktiven Proxys für Parteien verfügbar werden, die Zugriff auf den Trapper-Port des Zabbix Servers haben. Dies ist möglich, weil sich jeder als aktiver Proxy ausgeben und Konfigurationsdaten anfordern kann, wenn keine Authentifizierung erfolgt oder Proxy-Adressen im Feld Proxy address nicht eingeschränkt sind.
Proxy address Wenn angegeben, werden Anforderungen eines aktiven Proxys nur von dieser durch Kommas getrennten Liste von IP-Adressen, optional in CIDR-Notation, oder DNS-Namen eines aktiven Zabbix-Proxys akzeptiert.
Dieses Feld ist nur verfügbar, wenn im Feld Proxy mode ein aktiver Proxy ausgewählt wurde. Makros werden nicht unterstützt.
Interface Geben Sie die Schnittstellendetails für einen passiven Proxy ein.
Dieses Feld ist nur verfügbar, wenn im Feld Proxy mode ein passiver Proxy ausgewählt wurde.
Address IP-Adresse/DNS-Name des passiven Proxys.
Port TCP-Portnummer des passiven Proxys (standardmäßig 10051). Benutzermakros werden unterstützt.
Description Geben Sie die Beschreibung des Proxys ein.

Auf der Registerkarte Encryption können Sie verschlüsselte Verbindungen mit dem Proxy erzwingen.

Parameter Beschreibung
Connections to proxy Legt fest, wie der Server eine Verbindung zum passiven Proxy herstellt: ohne Verschlüsselung (Standard), über PSK (Pre-Shared Key) oder über ein Zertifikat.
Connections from proxy Wählen Sie aus, welche Verbindungstypen vom aktiven Proxy zugelassen werden. Mehrere Verbindungstypen können gleichzeitig ausgewählt werden (nützlich zum Testen und zum Wechseln zu einem anderen Verbindungstyp). Standard ist „No encryption“.
Issuer Zulässiger Aussteller des Zertifikats. Das Zertifikat wird zunächst mit der Zertifizierungsstelle (CA) validiert. Wenn es gültig und von der CA signiert ist, kann das Feld Issuer verwendet werden, um die zulässige CA weiter einzuschränken. Dieses Feld ist optional und für den Fall vorgesehen, dass Ihre Zabbix-Installation Zertifikate von mehreren CAs verwendet.
Subject Zulässiger Betreff des Zertifikats. Das Zertifikat wird zunächst mit der CA validiert. Wenn es gültig und von der CA signiert ist, kann das Feld Subject verwendet werden, um nur einen Wert der Zeichenfolge Subject zuzulassen. Wenn dieses Feld leer ist, wird jedes gültige, von der konfigurierten CA signierte Zertifikat akzeptiert.
PSK identity Identitätszeichenfolge des Pre-Shared Keys.
Geben Sie keine vertraulichen Informationen in der PSK-Identität an, da sie unverschlüsselt über das Netzwerk übertragen wird, um einem Empfänger mitzuteilen, welcher PSK verwendet werden soll.
PSK Pre-Shared Key (Hexadezimalzeichenfolge). Maximale Länge: 512 Hexadezimalziffern (256-Byte-PSK), wenn Zabbix die GnuTLS- oder OpenSSL-Bibliothek verwendet, bzw. 64 Hexadezimalziffern (32-Byte-PSK), wenn Zabbix die mbed-TLS-(PolarSSL-)Bibliothek verwendet. Beispiel: 1f87b595725ac58dd977beef14b97461a7c1045b9a1c963065002c5473194952

Auf der Registerkarte APM können Sie das Application Performance Monitoring (APM) auf dem Proxy konfigurieren. Der Proxy kann Telemetriedaten (Traces, Metriken und Logs) erfassen, die von Anwendungen oder OpenTelemetry Collectors über das OpenTelemetry-Protokoll (OTLP/gRPC) gesendet werden, und die Daten in die Telemetriedatenquelle schreiben.

Parameter Beschreibung
Data collection enabled Aktivieren Sie das Kontrollkästchen, um die Erfassung von Telemetriedaten auf dem Proxy zu aktivieren.
Setzen Sie vor der Aktivierung der Telemetriedatenerfassung den Parameter StartAPMCollectors in der Proxy-Konfigurationsdatei auf 1.
Max messages per second Legen Sie die maximale Anzahl von Nachrichten pro Sekunde fest, die der Proxy akzeptiert:
Unlimited – Alle eingehenden Nachrichten akzeptieren.
Custom – Bis zur angegebenen Anzahl von Nachrichten pro Sekunde akzeptieren.

Eine Nachricht ist eine von einer Anwendung, einem OpenTelemetry Collector oder einer anderen Telemetriequelle gesendete OTLP-Anforderung. Ihre Größe hängt vom Sender ab. Beispielsweise kann ein OpenTelemetry Collector Tausende von Spans in einer Nachricht bündeln, während eine einfache Anwendung kleinere Nachrichten senden kann (z. B. eine pro Trace).

Wenn das Limit überschritten wird, antwortet der Proxy mit dem gRPC-Statuscode UNAVAILABLE (temporärer Fehler). Abhängig von seiner Konfiguration kann der Sender daher später versuchen, die Nachricht erneut zu senden.
Add resource attributes Geben Sie die Ressourcenattribute an, die den eingehenden Telemetriedaten des ausgewählten Typs hinzugefügt werden sollen (z. B. um alle von diesem Proxy empfangenen Daten mit ihrer Umgebung oder Region zu kennzeichnen). Sie können diese Attribute anschließend zum Filtern von Telemetriedaten verwenden, beispielsweise in Bedingungen von Telemetrieabfrage-Datenpunkten.
Name Geben Sie den Attributnamen ein (z. B. deployment.environment, cloud.region). Muss für den ausgewählten Type eindeutig sein.
Value Geben Sie den Attributwert ein (z. B. production, eu-central-1). Kann leer sein.
Type Wählen Sie den Typ der eingehenden Daten aus, für den das Attribut gilt: Traces, Metrics oder Logs.

Auf der Registerkarte Timeouts können Sie globale Timeouts für unterstützte Datenpunkttypen überschreiben.

Parameter Beschreibung
Timeouts for item types Legen Sie das Datenpunkt-Timeout (abhängig von seinem Typ) fest:
Global – Globales Timeout verwenden (im ausgegrauten Feld Timeout für den jeweiligen Datenpunkttyp angezeigt).
Override – Ein benutzerdefiniertes Timeout festlegen (im Feld Timeout für jeden Datenpunkttyp). Zulässiger Bereich: 1–600 s (Standard: von den globalen Timeouts übernommen). Zeitsuffixe, z. B. 30s und 1m, sowie Benutzermakros werden unterstützt.

Durch Klicken auf den Link Global timeouts können Sie globale Timeouts konfigurieren. Beachten Sie, dass der Link Global timeouts nur Benutzern vom Typ Super admin angezeigt wird, die über Berechtigungen für den Frontend-Bereich Administration > General verfügen.

Beachten Sie, dass Timeouts auf Proxy-Ebene zwar die globalen Timeouts überschreiben, jedoch durch individuelle Datenpunkt-Timeouts überschrieben werden, sofern diese konfiguriert sind.

Wenn die Hauptversion des Proxys nicht mit der Hauptversion des Servers übereinstimmt, wird das -Symbol neben Timeouts for item types angezeigt. Beim Darüberfahren wird die Meldung „Timeouts disabled because the proxy and server versions do not match“ angezeigt. In solchen Fällen verwendet der Proxy den Parameter Timeout aus der Proxy-Konfigurationsdatei.

Das Bearbeitungsformular eines vorhandenen Proxys enthält die folgenden zusätzlichen Schaltflächen:

  • Refresh configuration – Proxy-Konfiguration aktualisieren;
  • Clone – Einen neuen Proxy auf Grundlage der Eigenschaften des vorhandenen Proxys erstellen;
  • Delete – Den Proxy löschen.
Host-Konfiguration

Sie können im Formular Host-Konfiguration über das Feld Überwacht von festlegen, dass ein einzelner Host von einem Proxy oder einer Proxy-Gruppe überwacht werden soll.

Die Massenaktualisierung von Hosts ist eine weitere Möglichkeit, festzulegen, dass Hosts von einem Proxy oder einer Proxy-Gruppe überwacht werden sollen.