1 Proxys

Überblick

Ein Zabbix Proxy kann Leistungs- und Verfügbarkeitsdaten im Auftrag des Zabbix Server erfassen. Auf diese Weise kann ein Proxy einen Teil der Last der Datenerfassung übernehmen und den Zabbix Server entlasten.

Außerdem ist die Verwendung eines Proxy der einfachste Weg, zentrales und verteiltes Monitoring zu implementieren, wenn alle Agents und Proxys an einen Zabbix Server berichten und alle Daten zentral erfasst werden.

Ein Zabbix Proxy kann verwendet werden, um:

  • Entfernte Standorte zu überwachen
  • Standorte mit unzuverlässiger Kommunikation zu überwachen
  • Den Zabbix Server bei der Überwachung von Tausenden von Geräten zu entlasten
  • Die Wartung eines verteilten Monitorings zu vereinfachen

Der Proxy benötigt nur eine TCP-Verbindung zum Zabbix Server. Dadurch ist es einfacher, eine Firewall zu umgehen, da Sie nur eine Firewall-Regel konfigurieren müssen.

Zabbix Proxy muss eine separate Datenbank verwenden. Wenn er auf die Datenbank des Zabbix Server verweist, wird die Konfiguration beschädigt.

Alle vom Proxy erfassten Daten werden lokal gespeichert, bevor sie an den Server übertragen werden. Dadurch gehen bei vorübergehenden Kommunikationsproblemen mit dem Server keine Daten verloren. Die Parameter ProxyLocalBuffer und ProxyOfflineBuffer in der Proxy-Konfigurationsdatei steuern, wie lange die Daten lokal aufbewahrt werden.

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

Zabbix Proxy ist ein Datensammler. Er berechnet keine Auslöser, verarbeitet keine Ereignisse und sendet keine Benachrichtigungen. Einen Überblick über die Funktionalität des Proxy bietet die folgende 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
Logdateiüberwachung 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
Integriertes Web-Monitoring Ja
Vorverarbeitung von Datenpunktwerten Ja
Netzwerkerkennung Ja
Autoregistrierung aktiver Agents Ja
Low-Level-Discovery Ja 2
Remote-Befehle Ja
Berechnung von Auslösern Nein
Verarbeitung von Ereignissen Nein
Ereigniskorrelation Nein
Senden von Benachrichtigungen Nein

[1] Um sicherzustellen, dass 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 dann zur weiteren Verarbeitung an den Zabbix Server.

Schutz vor Überlastung

Wenn der Zabbix Server einige Zeit nicht verfügbar war und Proxys viele Daten gesammelt haben und der Server dann startet, kann er überlastet werden (die Nutzung des History-Cache bleibt für einige Zeit bei 95–100 %). Diese Überlastung kann zu Leistungseinbußen führen, wobei Prüfungen langsamer verarbeitet werden als vorgesehen. Zum Schutz vor diesem Szenario wurde ein Mechanismus implementiert, um Probleme zu vermeiden, die durch eine Überlastung des History-Cache entstehen.

Wenn der History-Cache des Zabbix Servers voll ist, wird der Schreibzugriff auf den History-Cache gedrosselt, wodurch die Prozesse zur Datenerfassung des Servers angehalten 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 Nutzung des History-Cache 80 % erreicht, wechselt der Zabbix Server in den Drosselungsmodus. Im Drosselungsmodus akzeptiert der Server Proxy-Daten nur, wenn die Nutzung des History-Cache unter 60 % liegt, wobei die akzeptierten Proxys rotiert werden. Sobald die Nutzung des History-Cache unter 20 % fällt, wechselt der Server wieder in den normalen Modus.

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

Dieser Drosselungsmodus bleibt bestehen, bis entweder die Cache-Nutzung erneut 80 % erreicht oder auf 20 % fällt oder die Drosselungsliste leer ist. Im ersten Fall akzeptiert der Server erneut 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-Modus Aktion des Zabbix Servers
Erreicht 80 % Warten Akzeptiert keine Proxy-Daten mehr, führt jedoch weiterhin eine Drosselungsliste (priorisierte Liste von Proxys, die später kontaktiert werden sollen).
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 Drosselungsliste und beginnt wieder mit der normalen Annahme von Proxy-Daten.

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

Konfiguration

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

Proxys hinzufügen

Um einen Proxy im Zabbix Frontend zu konfigurieren:

  • Gehen Sie zu: Administration > Proxies
  • Klicken Sie auf Proxy erstellen

Parameter Beschreibung
Proxy name Geben Sie den Proxy-Namen ein. Er muss mit dem Namen im Parameter Hostname in der Proxy-Konfigurationsdatei übereinstimmen.
Proxy group Wählen Sie eine Proxy-Gruppe für Proxy-Lastverteilung/Hochverfügbarkeit 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 für Zabbix-7.0-Agents oder neuer.
Diese Adresse wird für die Verbindung zu aktiven und passiven Proxys verwendet. Dieses Feld ist nur verfügbar, wenn im Feld Proxy group eine Proxy-Gruppe ausgewählt ist.
Address IP-Adresse/DNS-Name für die Verbindung.
Port TCP-Portnummer für die Verbindung (standardmäßig 10051). 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
Beachten Sie, dass Proxy-Konfigurationsdaten ohne verschlüsselte Kommunikation (sensibel) für Parteien verfügbar werden können, die Zugriff auf den Trapper-Port des Zabbix Servers haben, wenn ein aktiver Proxy verwendet wird. Dies ist möglich, weil sich jeder als aktiver Proxy ausgeben und Konfigurationsdaten anfordern kann, wenn keine Authentifizierung stattfindet oder Proxy-Adressen im Feld Proxy address nicht eingeschränkt sind.
Proxy address Falls angegeben, werden Anfragen aktiver Proxys nur aus dieser durch Kommas getrennten Liste von IP-Adressen, optional in CIDR-Notation, oder DNS-Namen aktiver Zabbix-Proxys akzeptiert.
Dieses Feld ist nur verfügbar, wenn im Feld Proxy mode ein aktiver Proxy ausgewählt ist. 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 ist.
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 Proxy-Beschreibung ein.

Die Registerkarte Encryption ermöglicht es Ihnen, verschlüsselte Verbindungen mit dem Proxy zu verlangen.

Parameter Beschreibung
Connections to proxy Wie sich der Server mit dem passiven Proxy verbindet: keine Verschlüsselung (Standard), mit PSK (vorab geteilter Schlüssel) oder Zertifikat.
Connections from proxy Wählen Sie aus, welche Verbindungstypen vom aktiven Proxy erlaubt sind. Mehrere Verbindungstypen können gleichzeitig ausgewählt werden (nützlich zum Testen und zum Wechsel auf einen anderen Verbindungstyp). Standard ist "No encryption".
Issuer Zulässiger Aussteller des Zertifikats. Das Zertifikat wird zunächst mit der CA (Zertifizierungsstelle) validiert. Ist es gültig und von der CA signiert, kann das Feld Issuer verwendet werden, um die zulässige CA weiter einzuschränken. Dieses Feld ist optional und für den Einsatz gedacht, wenn Ihre Zabbix-Installation Zertifikate von mehreren CAs verwendet.
Subject Zulässiger Betreff des Zertifikats. Das Zertifikat wird zunächst mit der CA validiert. Ist es gültig und von der CA signiert, kann das Feld Subject verwendet werden, um nur einen Wert der Zeichenfolge Subject zuzulassen. Wenn dieses Feld leer ist, wird jedes gültige Zertifikat akzeptiert, das von der konfigurierten CA signiert wurde.
PSK identity Identitätszeichenfolge des vorab geteilten Schlüssels.
Geben Sie keine sensiblen Informationen in die PSK-Identität ein, da sie unverschlüsselt über das Netzwerk übertragen wird, um dem Empfänger mitzuteilen, welcher PSK zu verwenden ist.
PSK Vorab geteilter Schlüssel (Hex-Zeichenfolge). Maximale Länge: 512 Hex-Ziffern (256-Byte-PSK), wenn Zabbix die Bibliothek GnuTLS oder OpenSSL verwendet, 64 Hex-Ziffern (32-Byte-PSK), wenn Zabbix die Bibliothek mbed TLS (PolarSSL) verwendet. Beispiel: 1f87b595725ac58dd977beef14b97461a7c1045b9a1c963065002c5473194952

Die Registerkarte Timeouts ermöglicht es Ihnen, globale Timeouts für Datenpunkttypen zu überschreiben, die dies unterstützen.

Parameter Beschreibung
Timeouts for item types Legen Sie das Datenpunkt-Timeout fest (basierend auf seinem Typ):
Global - globales Timeout verwenden (im ausgegrauten Feld Timeout pro Datenpunkttyp angezeigt);
Override - ein benutzerdefiniertes Timeout festlegen (im Feld Timeout für jeden Datenpunkttyp). Zulässiger Bereich: 1 - 600s (Standard: von globalen Timeouts geerbt). Zeitsuffixe, z. B. 30s, 1m, und 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 für Benutzer des Typs Super admin sichtbar ist, die Berechtigungen für den Frontend-Bereich Administration > General haben.

Beachten Sie, dass Timeouts auf Proxy-Ebene zwar die globalen überschreiben, aber von individuellen Datenpunkt-Timeouts überschrieben werden, falls diese konfiguriert sind.

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

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

  • Refresh configuration - Konfiguration des Proxy aktualisieren
  • Clone - einen neuen Proxy auf Basis der Eigenschaften des vorhandenen Proxy erstellen
  • Delete - den Proxy löschen
Host-Konfiguration

Sie können im Formular Host-Konfiguration über das Feld Überwacht durch 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.