Zabbix Webfrontend installieren

Brauchen Sie Hilfe bei der Einrichtung von Zabbix?
Wir bieten Zabbix-Consulting, Schulungen, Wartungs- und Supportverträge.
zabbix-support.de

Das Zabbix-Webfrontend

Zabbix wird ausschließlich über das Webfrontend bedient. Dieses besteht aus einer Reihe von PHP-Skripten, welche dieselbe Datenbank wie der Zabbix-Server benutzen. Über die gemeinsame Datenbank kommunizieren Webfrontend und Zabbix-Server miteinander.

Grundsätzlich kann das Webfrontend mit jedem Webserver betrieben werden, der PHP ausführen kann. Wenn Sie noch keinen Webserver auf dem Zabbix-Server installiert haben, sollten Sie Apache als Webserver verwenden. Apache wird von allen Distributionen mitgeliefert, und die Installation erfolgt einfach und ohne Probleme.

Da in der Regel nur wenige Benutzer mit dem Zabbix-Frontend arbeiten werden, spielen die Performance und der Ressourcenverbrauch des Webservers keine nennenswerte Rolle. Die Vorteile von leichtgewichtigen Webservern wie Lighttpd oder Nginx können Sie beim Zabbix-Frontend nicht wirklich ausnutzen.

Webfrontend aus dem Zabbix-Paket-Repository installieren

Debian und Ubuntu

Das Ubuntu-Paket installiert zwar Apache als Webserver und PHP7, aber nicht das PHP-Modul für Apache. Lösen Sie diese fehlende Abhängigkeit manuell auf.
# Ubuntu Xenial 16.04
apt-get install apache2 libapache2-mod-php7.0 php7.0-xml php7.0-bcmath php7.0-mbstring
a2dismod mpm_event
a2enmod mpm_prefork
a2enmod php7.0

Wenn Sie den Zabbix-Server mit fertigen Binärpaketen aus dem Zabbix-Paket-Repository installiert haben, installieren Sie das Webfrontend ebenfalls über den Paketmanager.

apt-get install zabbix-frontend-php

Nach Abschluss der Installationsroutine müssen Sie noch eine PHP-Einstellung manuell ändern. Öffnen Sie dazu die Datei /etc/apache2/conf-enabled/zabbix.conf mit einem Editor, und tragen Sie eine Zeitzone ein, beispielsweise php_value date.timezone Europe/Berlin.

Wenn Sie das Webfrontend in anderen Sprachen als Englisch verwenden wollen, müssen Sie im Betriebssystem ein sogenanntes Locale generieren. Führen Sie dazu locale-gen de_DE aus.

Starten Sie den Apache-Webserver neu und führen Sie die Installation über das Webfrontend fort.

CentOS und Red Hat

Installieren Sie das Webfrontend inklusive Webserver und aller abhängigen Pakete wie folgt:

yum install zabbix-web-mysql

Nach Abschluss der Installationsroutine müssen Sie noch eine PHP-Einstellung manuell ändern. Öffnen Sie dazu die Datei /etc/httpd/conf.d/zabbix.conf mit einem Editor, tragen Sie zum Beispiel php_value date.timezone Europe/Berlin als korrekte Zeitzone in Zeile 18 ein und starten Sie Apache neu. Aktivieren Sie außerdem den Autostart von Apache:

service httpd restart
systemctl enable httpd

Falls die Standard-Firewall von CentOS oder RHEL 6.x aktiv ist, fügen Sie in der Datei /etc/sysconfig/iptables folgende Regel ein, und starten Sie die Firewall neu:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
service iptables restart

Ab Version 7 passen Sie die Firewall wie folgt an:

firewall-cmd --permanent --zone=public --add-port=80/tcp
firewall-cmd --reload

Führen Sie nun die Installation über das Webfrontend fort.

Webserver, PHP und Webfrontend manuell installieren

Alle Linux-Distributionen bringen die nötigen Pakete mit, die Sie für das Webfrontend benötigen. Es muss nichts kompiliert werden. Installieren Sie folgende Pakete und stellen Sie außerdem sicher, dass der Webserver automatisch mit dem Betriebssystem startet:

## Debian ##
apt-get install apache2 php5 libapache2-mod-php5 php5-gd php5-mysql
## Red Hat, CenOS ##
yum install php php-gd php-mysql php-bcmath php-mbstring php-xml apache2
systemctl enable httpd
## SUSE ##
zypper install apache2 apache2-mod_php5 \
php5-bcmath php5 php5-gd php5-mysql php5-mbstring php5-sockets php5-gettext
systemctl enable apache2

Anschließend kopieren Sie die PHP-Dateien in das Standardverzeichnis des Webservers und ändern die Dateiberechtigungen so, dass die Dateien nicht Root, sondern dem User gehören, der den Webserver ausführt:

## Debian ##
cp -r /usr/src/zabbix-<VERSION>/frontends/php/ /var/www/zabbix
chown -R www-data:www-data /var/www/zabbix/
## Ubuntu ##
cp -r /usr/src/zabbix-<VERSION>/frontends/php/ /var/www/html/zabbix
chown -R www-data:www-data /var/www/html/zabbix/
## Red Hat, CentOS ##
cp -r /usr/src/zabbix-<VERSION>/frontends/php/ /var/www/html/zabbix
chown -R apache:apache /var/www/html/zabbix/
## SUSE ##
cp -r /usr/src/zabbix-<VERSION>/frontends/php/ /srv/www/htdocs/zabbix
chown -R wwwrun:www /srv/www/htdocs/zabbix

Bevor Sie das Webfrontend zum ersten Mal aufrufen, passen Sie die Einstellungen für PHP an. Öffnen Sie dazu die Datei php.ini und tragen Sie die unten aufgeführten Werte ein. Debian- und SUSE-Benutzer finden die Datei unter /etc/php5/apache2/php.ini. Red Hat- und CentOS-Benutzer bearbeiten die Datei /etc/php.ini:

[Date]
; Defines the default timezone used by the date functions
date.timezone = Europe/Berlin
max_execution_time = 600
post_max_size = 32M
memory_limit = 256M
mbstring.func_overload = 0
upload_max_filesize = 16M
max_input_time = 600

Starten Sie den Webserver neu, nachdem Sie die php.ini-Datei angepasst haben.

Passen Sie u.U. auch die Firewall-Konfiguration an. Einige Distributionen wie zum Beispiel CentOS7 erledigen dies bei der Installation des Webserver nicht automatisch. Hier ist ein manueller Eingriff in Form der folgenden Kommandos notwendig:
firewall-cmd --permanent --zone=public --add-port=80/tcp
firewall-cmd --reload

Webfrontend konfigurieren

Rufen Sie nun mit Ihrem Browser den Hostnamen oder die IP-Adresse des Zabbix-Servers auf, zum Beispiel http://192.0.2.1/zabbix/. Die Zabbix-Installation wird nun über das Webfrontend weitergeführt. Nachdem Sie die Lizenzbedingungen akzeptiert haben, geben Sie die zuvor eingerichteten Zugangsdaten zur Datenbank ein.

Wenn Sie die Option "Zufälliges MySQL-Passwort generieren" verwendet haben, lesen Sie das Passwort mit grep DBPassword /etc/zabbix/zabbix_server.conf aus und tragen Sie dies zusammen mit dem Benutzernamen zabbix als Datenbankzugangsdaten ein.

Konfiguration der Datenbankanbindung für das Webfrontend

Die Frage nach den Zabbix-Serverdetails können Sie mit den voreingestellten Werten localhost und 10051 bestätigen. Im Feld „Name“ können Sie einen beliebigen Namen eintragen, der Ihren neuen Zabbix-Server identifiziert. Dieser Name wird immer im Seitentitel der Webgui eingefügt. Dies ist nützlich, um das Zabbix-Frontend zu identifizieren, wenn Sie mehrere Browserfenster oder Tabs geöffnet haben. Wenn Sie planen, nur einen Zabbix-Server zu verwenden, tragen Sie als Name einfach „Zabbix“ ein.

Nachdem die Installation beendet wurde, können Sie sich mit dem Benutzer Admin und dem Password zabbix zum ersten Mal über das Zabbix-Webfrontend einloggen.

Geschafft! Das Webfrontend ist installiert.

Hinweise zur Sicherheit des Webfrontends

Über das Webfrontend haben Sie die volle Kontrolle über den Zabbix-Server und alle Zabbix-Agenten. Je nach Konfiguration der Agenten ist der Zabbix-Server in der Lage, beliebige Kommandos auf allen überwachten Hosts auszuführen.

Sie sollten also den Zabbix-Server und das Webfrontend vor dem Zugriff durch Unbefugte schützen. Ändern Sie möglichst schnell das Standardpasswort des Benutzers Admin.

Wenn Sie über das öffentliche Internet auf den Zabbix-Server zugreifen, sollten Sie die Kommunikation per SSL verschlüsseln. Im Internet finden Sie zahlreichen Anleitungen, wie Sie Apache und SSL-Verschlüsselung einrichten. Die offizielle Dokumentation von Apache hilft auch weiter.

Ebenfalls können Sie eine zusätzliche Authentifizierung durch den Apache-Webserver einschalten, so dass eine vielleicht aufkommende Sicherheitslücke in den PHP-Dateien von Zabbix Ihren Server trotzdem nicht für Angreifer öffnen wird.