1 Proxys

Übersicht

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

Außerdem ist die Verwendung eines Proxys der einfachste Weg, zentrale und verteilte Überwachung zu implementieren, wenn alle Agenten 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 der verteilten Überwachung zu vereinfachen

Der Proxy benötigt nur eine TCP-Verbindung zum Zabbix Server. Dadurch lässt er sich leichter durch eine Firewall hindurch betreiben, da nur eine Firewall-Regel konfiguriert werden muss.

Der Zabbix Proxy muss eine separate Datenbank verwenden. Wenn er auf die Datenbank des Zabbix Servers 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 Datenbank des Zabbix Servers 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 mit der Datenerfassung beginnen und die Daten an den Zabbix Server senden, der diese Daten ignoriert.

Der Zabbix Proxy ist ein Datensammler. Er berechnet keine Auslöser, verarbeitet keine Ereignisse und sendet keine Alarme. Einen Überblick über die Funktionen des Proxys bietet die folgende Tabelle:

Function Supported by proxy
Items
Zabbix agent checks Yes
Zabbix agent checks (active) Yes 1
Simple checks Yes
Trapper items Yes
SNMP checks Yes
SNMP traps Yes
IPMI checks Yes
JMX checks Yes
Log file monitoring Yes
Internal checks Yes
SSH checks Yes
Telnet checks Yes
External checks Yes
Dependent items Yes
Script items Yes
Browser items Yes
Built-in web monitoring Yes
Item value preprocessing Yes
Network discovery Yes
Active agent autoregistration Yes
Low-level discovery Yes 2
Remote commands Yes
Calculating triggers No
Processing events No
Event correlation No
Sending alerts No

[1] Damit ein Agent den Proxy (und nicht den Server) für aktive Prüfungen abfragt, muss der Proxy im Parameter ServerActive in der Konfigurationsdatei des Agenten aufgeführt sein.
[2] Bei LLD erfasst und verarbeitet der Zabbix Proxy nur die Daten und sendet sie dann zur weiteren Verarbeitung an den Zabbix Server.

Schutz vor Überlastung

Wenn der Zabbix Server für einige Zeit ausgefallen war und Proxies viele Daten gesammelt haben und der Server dann startet, kann er überlastet werden (die Auslastung des History-Cache bleibt für einige Zeit bei 95-100%). Diese Überlastung kann zu Leistungseinbußen führen, sodass 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 Datenerfassungsprozesse des Servers blockiert werden. Der häufigste Fall einer Überlastung des History-Cache tritt nach einer Server-Ausfallzeit auf, wenn Proxies gesammelte Daten hochladen. Um dies zu vermeiden, wurde eine Proxy-Drosselung hinzugefügt (derzeit kann sie nicht deaktiviert werden).

Der Zabbix Server akzeptiert keine Daten mehr von Proxies, wenn die Auslastung des History-Cache 80% erreicht. Stattdessen werden diese Proxies in eine Drosselungsliste aufgenommen. Dies dauert an, bis die Cache-Auslastung auf 60% sinkt. Dann beginnt der Server, Daten von Proxies nacheinander entsprechend der Drosselungsliste anzunehmen. Das bedeutet, dass der erste Proxy, der während der Drosselungsphase versucht hat, Daten hochzuladen, zuerst bedient wird und der Server, solange dieser Vorgang nicht abgeschlossen ist, keine Daten von anderen Proxies annimmt.

Dieser Drosselungsmodus wird fortgesetzt, bis entweder die Cache-Auslastung erneut 80% erreicht, auf 20% sinkt oder die Drosselungsliste 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 Proxies.

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, führt aber eine Drosselungsliste (priorisierte Liste von Proxies, die später kontaktiert werden) weiter.
Fällt auf 60% Gedrosselt Beginnt mit der Verarbeitung der Drosselungsliste, akzeptiert aber weiterhin keine Proxy-Daten.
Fällt auf 20% Normal Verwirft die Drosselungsliste und beginnt, Proxy-Daten wieder normal zu akzeptieren.

Sie können das interne Element 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.

Hinzufügen von Proxies

So konfigurieren Sie einen Proxy im Zabbix Frontend:

  • 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 Load Balancing/Hochverfügbarkeit des Proxies aus.
Address for active agents Geben Sie die Adresse ein, mit der sich die überwachten aktiven Agenten oder Sender verbinden müssen. Unterstützt wird dies nur für Zabbix 7.0 Agenten oder neuer.
Diese Adresse wird für die Verbindung zu aktiven und passiven Proxies verwendet. Dieses Feld ist nur verfügbar, wenn im Feld Proxy group eine Proxy-Gruppe ausgewählt ist.
Address IP-Adresse/DNS-Name, zu dem eine Verbindung hergestellt werden soll.
Port TCP-Portnummer (standardmäßig 10051), zu dem eine Verbindung hergestellt werden soll. Benutzer-Makros 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 ohne verschlüsselte Kommunikation (sensible) Proxy-Konfigurationsdaten für Personen verfügbar werden können, die Zugriff auf den Zabbix-Server-Trapper-Port 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 Wenn angegeben, werden Anfragen des aktiven Proxies nur aus dieser Liste von durch Kommas getrennten IP-Adressen, optional in CIDR-Notation, oder DNS-Namen des aktiven Zabbix Proxies 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 Proxies.
Port TCP-Portnummer des passiven Proxies (standardmäßig 10051). Benutzer-Makros werden unterstützt.
Description Geben Sie die Proxy-Beschreibung ein.

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

Parameter Beschreibung
Connections to proxy Wie der Server eine Verbindung zum passiven Proxy herstellt: keine Verschlüsselung (Standard), mit PSK (Pre-Shared Key) oder Zertifikat.
Connections from proxy Wählen Sie aus, welche Art von Verbindungen vom aktiven Proxy erlaubt sind. Mehrere Verbindungstypen können gleichzeitig ausgewählt werden (nützlich zum Testen und beim Wechsel zu einem anderen Verbindungstyp). Standard ist "No encryption".
Issuer Zulässiger Aussteller des Zertifikats. Das Zertifikat wird zuerst mit der CA (Zertifizierungsstelle) validiert. Wenn es gültig ist und von der CA signiert wurde, kann das Feld Issuer verwendet werden, um die zulässige CA weiter einzuschränken. Dieses Feld ist optional und dafür vorgesehen, wenn Ihre Zabbix-Installation Zertifikate von mehreren CAs verwendet.
Subject Zulässiger Subject-Wert des Zertifikats. Das Zertifikat wird zuerst mit der CA validiert. Wenn es gültig ist und von der CA signiert wurde, kann das Feld Subject verwendet werden, um nur einen Wert der Subject-Zeichenfolge zuzulassen. Wenn dieses Feld leer ist, wird jedes gültige, von der konfigurierten CA signierte Zertifikat akzeptiert.
PSK identity Identitätszeichenfolge des Pre-Shared Key.
Geben Sie keine sensiblen Informationen in die PSK-Identität ein, da sie unverschlüsselt über das Netzwerk übertragen wird, um einem Empfänger mitzuteilen, welchen PSK er verwenden soll.
PSK Pre-Shared Key (Hex-String). Maximale Länge: 512 Hex-Ziffern (256-Byte-PSK), wenn Zabbix die GnuTLS- oder OpenSSL-Bibliothek verwendet, 64 Hex-Ziffern (32-Byte-PSK), wenn Zabbix die mbed TLS (PolarSSL)-Bibliothek verwendet. Beispiel: 1f87b595725ac58dd977beef14b97461a7c1045b9a1c963065002c5473194952

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

Parameter Beschreibung
Timeouts for item types Wählen Sie die Timeout-Option aus:
Global - das globale Timeout wird verwendet (angezeigt im ausgegrauten Feld Timeout für jeden Datentyp);
Override - ein benutzerdefiniertes Timeout wird verwendet (festgelegt im Feld Timeout für jeden Datentyp). Zulässiger Bereich: 1 - 600 s (Standard: von den globalen Timeouts übernommen). Zeit-Suffixe, z. B. 30s, 1m, und Benutzer-Makros werden unterstützt.

Wenn Sie auf den Link Global timeouts klicken, können Sie globale Timeouts konfigurieren. Beachten Sie, dass der Link Global timeouts nur für Benutzer vom Typ Super admin mit Berechtigungen für den Frontend-Bereich AdministrationGeneral sichtbar ist.

Unterstützte Datentypen:
- Zabbix agent (sowohl passive als auch aktive Prüfungen)
- Simple check (außer icmpping*, vmware.* Datenpunkte)
- SNMP agent (nur für SNMP-Datenpunkte walk[OID] und get[OID])
- External check
- Database monitor
- HTTP agent
- SSH agent
- TELNET agent
- Script
- Browser

Beachten Sie, dass die unter Override festgelegten Timeouts die globalen überschreiben, jedoch von individuellen Datenpunkt-Timeouts überschrieben werden, wenn diese in der Datenpunktkonfiguration festgelegt sind.

Wenn die Hauptversion des Proxies nicht mit der Hauptversion des Servers übereinstimmt, wird neben Timeouts for item types ein -Symbol angezeigt, mit der Meldung beim Darüberfahren: "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 Proxies hat die folgenden zusätzlichen Schaltflächen:

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

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

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