Heute wollen wir eine Überwachung für unseren VPS einrichten.
Dazu benötigen wir eine von unseren Servern unabhängige Instanz, auf die wir Zabbix installieren.
Step 1: Installation LAMP-Stack und benötigte Pakete für Zabbix
Mit dem folgenden Befehl installieren wir auf unserem Server den LAMP-Stack:
sudo apt-get install lamp-server^
und die restlichen Pakete, die wir für Zabbix minimal benötigen:
sudo apt-get install nano fping php7.0-gd dnsutils htop php7.0-ldap traceroute ipmitool libldap2-dev php7.0-bcmath php7.0-mbstring php7.0-xml
Step 2: Installation Zabbix-Server
Wir installieren die Version 3.4 und dazu müssen wir aber erst einmal das entsprechende Repository hinzufügen:
wget http://repo.zabbix.com/zabbix/3.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.4-1+xenial_all.deb sudo dpkg -i zabbix-release_3.4-1+xenial_all.deb sudo apt-get update
Haben wir das getan, können wir Zabbix-Server und die dazugehörigen Komponenten installieren:
sudo apt-get install zabbix-server-mysql zabbix-frontend-php zabbix-agent zabbix-get zabbix-sender zabbix-java-gateway
Um Zabbix zu nutzen, benötigen wir eine Datenbank, die wir noch anlegen müssen:
mysql -u root -p
Dann im mysql-Prompt:
create database zabbix character set utf8 collate utf8_bin; grant all privileges on zabbix.* to zabbix@localhost identified by 'Dein-Passwort'; flush privileges; quit;
und im Anschluss importieren wir das Schema von Zabbix:
zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -pDein-passwort zabbix
Nun müssen wir noch die Konfigurationsdatei von Zabbix anpassen:
sudo nano /etc/zabbix/zabbix_server.conf
in dieser überprüfen wir, ob die folgenden Zeilen vorhanden sind und passen diese entsprechend an:
DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=Dein-Passwort
Start von Zabbix Server und Zabbix Agent beim Systemstart aktivieren:
sudo systemctl enable zabbix-server sudo systemctl enable zabbix-agent
Zabbix-Server starten:
sudo systemctl start zabbix-server
und Status überprüfen:
sudo systemctl status zabbix-server
Ausgabe sollte „active (running)“ anzeigen:
zabbix-server.service - Zabbix Server Loaded: loaded (/lib/systemd/system/zabbix-server.service; enabled; vendor preset: enabled) Active: active (running) since ...
Step 3: Apache2 und php anpassen
In diesem Schritt legen wir uns einen passenden vHost an:
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/001-zabbix.conf sudo nano /etc/apache2/sites-available/001-zabbix.conf
den Inhalt der Datei ersetzen wir durch den folgenden:
<VirtualHost *:80> ServerName zabbix.deine-domain.tld ServerAdmin webmaster@deine-domain.tld DocumentRoot /usr/share/zabbix <Directory "/usr/share/zabbix"> Options FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> <Directory "/usr/share/zabbix/conf"> Order deny,allow Deny from all <files *.php> Order deny,allow Deny from all </files> </Directory> <Directory "/usr/share/zabbix/app"> Order deny,allow Deny from all <files *.php> Order deny,allow Deny from all </files> </Directory> <Directory "/usr/share/zabbix/include"> Order deny,allow Deny from all <files *.php> Order deny,allow Deny from all </files> </Directory> <Directory "/usr/share/zabbix/local"> Order deny,allow Deny from all <files *.php> Order deny,allow Deny from all </files> </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
und aktivieren die Site:
sudo a2ensite 001-zabbix.conf
in der php.ini setzen wir noch die folgenden Parameter:
sudo nano /etc/php/7.0/apache2/php.ini
max_execution_time 300 memory_limit = 128M post_max_size = 16M upload_max_filesize = 8M max_input_time = 300 always_populate_raw_post_data = -1 date.timezone = Europe/Berlin
hier darauf achten, dass die Werte in den richtigen Abschnitten gesetzt werden, am besten mit STRG + W nach den Parametern suchen.
und dann starten wir den Webserver neu:
sudo systemctl restart apache2
Da wir später über https auf unsere Installation zugreifen wollen, installieren wir uns certbot:
sudo apt-get install -y software-properties-common sudo apt-get install -y python-software-properties sudo add-apt-repository -y ppa:certbot/certbot sudo apt-get update sudo apt-get install -y python-certbot-apache
und starten den Zertifikats-Request mit:
sudo certbot --apache
Wir wählen unseren vHost aus und wählen am Ende die Option 2 – Redirect aus.
Step 4: Zabbix Webinterface konfigurieren
Unseren Zabbix-Server rufen wir jetzt im Browser auf:
und gehen die Einstellungen nach und nach durch
Wenn wir fertig sind, können wir uns einloggen:
Bitte beachten: Username ist Admin mit großem „A“, Initialpasswort ist „zabbix„.
Aus Sicherheitsgründen ändern wir zuerst unser Passwort, dazu oben rechts auf das User-Icon „klicken“:
Dann müssen wir noch den Guest-User Login deaktivieren, dazu müssen wir unter „Administration“ die „User Groups“ aufrufen und bei der Gruppe „Guests“ auf „enabled“ klicken, damit diese „disabled“ wird:
Damit deaktivieren wir den Guest-Login in der Anmeldemaske.
Nun schalten wir noch in der GUI unter „Configuration“ -> „Hosts“ die Überwachung des „Zabbix Server“ selbst ein:
und starten den Zabbix-Agent auf dem Zabbix-Server:
sudo systemctl start zabbix-agent
Step 5: Zabbix-Agent auf VPS installieren und Kommunikation absichern
Nun loggen wir uns auf unseren zu überwachenden VPS ein und fügen ebenfalls das Repository für Zabbix hinzu:
wget http://repo.zabbix.com/zabbix/3.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.4-1+xenial_all.deb sudo dpkg -i zabbix-release_3.4-1+xenial_all.deb sudo apt-get update
Den Agenten installieren wir dann mit:
sudo apt-get install zabbix-agent
Für die sichere Kommunikation zwischen Agent und Server verwenden wir Pre-Shared-Keys, die wir auf dem zu überwachenden VPS generieren:
sudo sh -c "openssl rand -hex 32 > /etc/zabbix/agent.psk"
den soeben generierten Key lassen wir uns anzeigen:
cat /etc/zabbix/agent.psk
Ausgabe sollte etwa so aussehen:
17eb98553b8ca3d9cdf408a9d596ea2f1a94e86cfdf4353f12f8dd7e9f5d99ca
Diesen kopieren wir uns z.B. in Notepad, da wir diesen später brauchen.
In der Konfigurations-Datei vom Agenten müssen wir jetzt noch ein paar Werte anpassen:
sudo nano /etc/zabbix/zabbix_agentd.conf
Die folgenden Werte in den entsprechenden Abschnitten setzen:
Server=IP-Adresse-unseres-Zabbix-Server
TLS-Optionen:
TLSConnect=psk TLSAccept=psk TLSPSKFile=/etc/zabbix/agent.psk TLSPSKIdentity=PSK 001
Nun können wir den Agenten starten und verwenden:
sudo systemctl start zabbix-agent sudo systemctl enable zabbix-agent
In der GUI auf dem Zabbix-Server können wir diesen Host nun unter „Configuration“ -> „Hosts“ -> „Create Host“ hinzufügen:
Im Reiter „Encryption“ passen wir die Werte dann an und aktivieren den Pre-Shared-Key:
Nicht vergessen die Templates an den Host zu binden 😉
Bis bald und viel Spaß beim Ausprobieren.
Wenn Ihr Fragen habt, immer her damit. 😉