Zum Inhalt springen
Kategorien:

Wie überwache ich mit Zabbix mein VPS auf Ubuntu 16.04 LTS

Veröffentlichungsdatum:
Anzahl Kommentare: keine Kommentare

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. 😉

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert