Ein Zabbix Proxy bietet interessante Erweiterungsmöglichkeiten, indem er Checks von seinem Standort aus macht. Dabei kann er auch noch den Zabbix Server entlasten.
Funktion
Ein Zabbix Proxy übernimmt Checks, die am Server eingerichtet werden. Dies kann mehrere Gründe haben:
- um den Server zu entlasten
- um Checks zu machen, die vom Server aus nicht funktionieren.
Der Server wird dadurch entlastet, dass er bestimmte Checks delegieren kann. Meistens sitzt der Server in einem Unternehmensnetzwerk und kann allein dadurch schon keine Checks von außerhalb des Netzwerkes machen. Und hier kommt der Zabbix Proxy ins Spiel: Er kann von außen
- die Carrier-Router monitoren
- (Web- Mailserver- etc.) Checks auf der Unternehmensfirewall machen
- einer von mehreren Messpunkten für z.B. Latenzmessungen sein
Die Verbindung mit Server und Proxy kann und sollte dabei verschlüsselt sein, was seit der Zabbix-Version 3 funktioniert. Im Folgenden beschreibe ich die Einrichtung einen Zabbix proxy auf Ubuntu 18.04.
Konfiguration des Proxys
In diesem Artikel gehe ich davon aus, dass Du bereits Erfahrung mit der Installation der Zabbix-Software (-> Zabbix-Webseite) hast und bereits einen Zabbix Proxy am Start hast. Auch die Abhängigkeiten wie zum Beispiel ein DB-Backend und das Programm fping sollten vorhanden sein. Wie auch bei Server und Agent liegt die Konfigurationsdatei zabbix_proxy.conf im Verzeichnis /etc/zabbix.
Einrichtung einer Datenbank
Ich gehe hier von einer mysql/mariadb aus:
mysql> create database zabbixproxy; Query OK, 1 row affected (0.00 sec) mysql> grant all privileges on zabbixproxy.* to 'proxyuser'@'localhost' identified by 'DeinPasswort!'; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.01 sec) mysql> quit Bye
Aktiv oder passiv
Der aktive Zabbix Proxy pollt den Server und schiebt ihm auch seine Item-Werte unter. Dadurch, dass sich der Server nicht kümmern muss, wird er hiermit entlastet. Dieses Setup eignet sich nur bedingt für einen Einsatz durch eine Firewall, denn hierfür müsste eine eingehende Verbindung vom Proxy auf TCP/10051 zum Server definiert werden. Dafür eignet es sich umso besser für die Übertragung von akkumulierten Item-Werten innerhalb eines Unternehmens-WANs. Nachfolgend die Schraube in der Konfigurationsdatei /etc/zabbix/zabbix_proxy.conf:
### Option: ProxyMode # Proxy operating mode # 0 - proxy in the active mode # 1 - proxy in the passive mode # # Mandatory: no # Default: # ProxyMode=0
Zabbix Server
In diesem Abschnitt der Konfigurationsdatei wird die (reale oder geNATtete) Adresse des Zabbix Servers eingetragen:
### Option: Server # IP address (or hostname) of Zabbix server. # Active proxy will get configuration data from the server. # For a proxy in the passive mode this parameter will be ignored. # # Mandatory: yes (if ProxyMode is set to 0) # Default: # Server= Server=myhostname.mydomain.tld
Hostname
Der Hostname wird für die Identifikation des Proxys am Server benötigt!
### Option: Hostname # Unique, case sensitive Proxy name. Make sure the Proxy name is known to the server! # Value is acquired from HostnameItem if undefined. # # Mandatory: no # Default: # Hostname= Hostname=proxyhostname
Datenbank
In den folgenden Feldern werden die Werte eingetragen, die Du vorher in Deinem DB-Server konfiguiert hast:
DBHost=localhost DBName=zabbixproxy DBUser=zabbixproxy DBPassword=DeinPasswort!
Jetzt muss nur noch das Schema in den db-Server eingespielt werden:
zcat /usr/share/doc/zabbix-proxy-mysql/schema.sql.gz | mysql -u zabbixproxy zabbixproxy -p
Encryption
Hier ist ein Beispiel für eine preshared key Verschlüsselung
Erzeugung eines 48-stelligen PSK an der shell und Eintrag der encryption Konfiguration in die Konfigurationsdatei /etc/zabbix/zabbix_proxy.conf:
Shell: #openssl rand -hex 48 >/etc/zabbix/proxy.psk #chmod 400 /etc/zabbix/proxy.psk #chown zabbix.zabbix /etc/zabbix/proxy.psk
/etc/zabbix/zabbix_proxy.conf: TLSConnect=psk TLSAccept=psk TLSPSKIdentity=proxy TLSPSKFile=/etc/zabbix/proxy.psk
Nun ist der Proxy fertig konfiguriert. Mit dem Aufruf systemctl restart zabbix-proxy startet der Proxy mit den neuen Einstellungen.
Konfiguration des Servers
Danach musst Du den Proxy am Server definieren. Das geschieht in der Weboberfläche unter Administration -> Proxies -> Create Proxy:
Der Proxy name im Bild 1 muss zwingend identisch mit dem Wert sein, den Du hinter Hostname= eingetragen hast.
Achte darauf, dass die PSK identity identisch ist mit dem Wert, den Du hinter TLSPSKIdentity= am Proxy eingetragen hast!
Sammeln von Items
Nun sollte unser neuer Proxy auch Werte übermitteln. Um dies zu erreichen, benötigen wir Hosts, die von einem Proxy aus erreichbar sind. Im folgenden Screenshot siehst du, was dafür getan werden muss.
Alles, was hier zu tun ist, ist tatsächlich nur, im pull down Menü den Proxy zu wählen, der den Host monitoren soll.
Troubleshooting
Wenn sich Server und Proxy nicht finden wollen, sind die Logfiles Dein bester Freund. Du findest sie sowohl auf Proxy als auch auf dem Server unter /var/log/zabbix.
Weitere Links
Klick hier für weitere Artikel zum Thema Zabbix in diesem Blog!