Zabbix ist ein enterprise grade Monitoring System und steht als Open Source zur Verfügung. Es bietet euch eine sehr hohe Skalierung und es lassen sich schier unendliche Geräte monitoren. Agent based oder Proxy based Monitoring von IPMI, SNMP, HTTP, Datenbanken, Anwendungen wie Nginx und vieles mehr ist möglich.
Mit Hilfe von Monitoring seid ihr in der Lage, wichtige (Leistungs)messungen vorzunehmen. Die gesammelten Daten befinden sich in der Datenbank und lassen sich so rückwirkend oder in Echtzeit auslesen. Ihr könnt dadurch die exakte Nutzung der CPU oder die Last auf einzelnen Switchports auslesen. Natürlich geht noch viel mehr, wie zum Beispiel die Auslastung des Nginx oder eurer MySQL Datenbank. Es ist genau die Möglichkeit, zeitlich genommene Daten einsehen zu können, die euch dazu befähigt bestimmte Aussagen treffen zu können. Steht als Beispiel nachts ein Netzwerkport unter Vollast und ist dies in der Vergangenheit für diesen Port untypisch gewesen, so könnt ihr das aus den Daten auslesen und nähere Analysen fahren. Habt ihr für solch einen Fall noch einen Trigger gesetzt, werdet ihr sogar Benachrichtigt.
An dieser Stelle möchten wir kurz darauf hinweisen, dass wir einen Auszug einer funktionierenden Konfiguration zeigen werden. Es lassen sich einige Sicherheitsfunktionen wie z.B. Passwortabfrage, GeoFilter usw. konfigurieren.
Wie auch schon in unserem Beitrag "UniFi Cloud Controller hinter Nginx Reverse Proxy betreiben" beschrieben, lassen sich die Konfigurationsdateien einzelner Service unter /etc/nginx/conf.d/ (Pfad kann bei euch abweichend sein) speichern. Wir nehmen in unserem Beispiel an, dass unter dem genannten Pfad die Datei zabbix.conf gespeichert ist. Da ihr sicherlich nicht nur die Weboberfläche, sondern auch den Traffic des/r Agenten oder Proxys über den Reverse Proxy laufen lassen wollt, benötigen wir die Stream Funktion von Nginx.
Tragt die folgenden Zeilen in eure nginx.conf ein und ändert die fetten Werte so ab, dass sie zu eurer Infrastruktur passen.
stream {
server {
listen 10050;
# proxy_pass zabbix_agent_active;
proxy_pass interne IP des Server:10050;
}
server {
listen 10051;
# proxy_pass zabbix_agent_passive;
proxy_pass interne IP des Server:10051;
}
}
Wie im oberen Teil beschrieben, kann diese Datei unter /etc/nginx/conf.d/ gespeichert werden. Achtet bitte darauf, dass der Pfad von eurer Installation abweichen kann. Ändert die fetten Angaben so ab, dass sie zu eurer Infrastruktur passen.
server {
server_name FQDN des A Record; #Beispiel: zabbix-monitoring.domain.de;
location / {
proxy_pass http://interne IP des Server/zabbix/;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
client_max_body_size 32M;
proxy_cookie_path /zabbix /;
}
listen 443 ssl http2; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/XXXXXXX/fullchain.pem; # managed>
ssl_certificate_key /etc/letsencrypt/live/XXXXXXX/privkey.pem; # manag>
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = FQDN des A Record) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
server_name FQDN des A Record;
return 404; # managed by Certbot
}
Wir hoffen euch mit diesem HowTo einiges an die Hand gegeben zu haben um euren eigenen Zabbix Monitoring Server hinter einem Nginx Reverse Proxy betreiben zu können. Sicherlich kann es vorkommen, dass ihr nicht alles 1 zu 1 übernehmen könnt (Certbot) aber mit diesen Funktionen ist der Betrieb möglich. Wir danken euch fürs lesen - euer Hansesystem Team.