Inhaltsverzeichnis

Monitoring mit Zabbix

Wir übersetzen uns die Software selber, da das ganze ziemlich einfach geht.

Voraussetzungen / Abhängigkeiten

Zusätzliche Software nach der Debian-Basisinstallation

aptitude install unbound screen libevent-2.0-5 

Webserver für die Visualisierung

aptitude install apache2 libapache2-mod-php7.0 php7.0 php7.0-gd php7.0-gettext\
    php7.0-bcmath php7.0-mbstring php7.0-xml

Datenbank

aptitude install mariadb-server php7.0-mysql

Basiswerkzeuge für das Monitoring

aptitude install fping unixodbc snmp snmp-mibs-downloader libiksemel-utils

Software erstellen

Download der Quellen von Sourceforge: http://sourceforge.net/projects/zabbix/, übertragen auf den Server in das Verzeichnis /usr/local/src.

Benötigte Pakete zum compilieren von Zabbix

aptitude install build-essential pkg-config default-libmysqlclient-dev libiksemel-dev libcurl4-openssl-dev \
    libsnmp-dev libopenipmi-dev unixodbc-dev libxml2-dev libssl-dev libevent-dev libpcre3-dev libssh2-1-dev

Erstellen der Programme aus den Quellen:

cd /usr/local/src
wget http://downloads.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/4.0.3/zabbix-4.0.3.tar.gz
tar xzf zabbix-4.0.3.tar.gz
cd zabbix-4.0.3
./configure --sysconfdir=/etc --enable-server --enable-agent --enable-proxy --enable-ipv6\
    --with-mysql --with-net-snmp --with-libcurl --with-jabber --with-openipmi --with-unixodbc\
    --with-libxml2 --with-openssl --with-ssh2
make
make install

Konfiguration

MySQL-Datenbank vorbereiten, es werden zwei Benutzer eingerichtet. Der erste für den Serverprozeß, der zweite mit eingeschränkten Rechten für das PHP-Frontend:

mariadb
CREATE DATABASE zabbix character set utf8 collate utf8_bin;
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY '********';
GRANT ALL PRIVILEGES ON zabbix.* to 'zabbix'@'localhost';
CREATE USER 'zbxfe'@'localhost' IDENTIFIED BY '********';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON zabbix.* to 'zbxfe'@'localhost';
FLUSH PRIVILEGES;
exit

Benutzer und Gruppe anlegen

adduser --system --group --home /usr/local/share/zabbix zabbix
chown -R zabbix.zabbix /usr/local/share/zabbix/
mkdir /var/log/zabbix
chown zabbix.adm /var/log/zabbix
mkdir /var/run/zabbix
chown zabbix. /var/run/zabbix
zabbix_server.conf
LogFile=/var/log/zabbix/server.log
PidFile=/var/run/zabbix/server.pid
DBName=zabbix
DBUser=zabbix
DBPassword=********
DBSocket=/var/run/mysqld/mysqld.sock
zabbix_agentd.conf
LogFile=/var/log/zabbix/zabbix/agentd.log
PidFile=/var/run/zabbix/agentd.pid

Init-Scripte einrichten:
Vorlagen befinden sich unter misc/init.d, nach dem Kopieren können die Scripte z.B. mit sysv-rc-conf für den automatischen Start eingerichtet werden

cp -p misc/init.d/debian/zabbix-agent /etc/init.d/
cp -p misc/init.d/debian/zabbix-server /etc/init.d/

Verbesserte Versionen: zabbix-agent zabbix-server

Datenbankschema anlegen

mysql -uzabbix -p zabbix < database/mysql/schema.sql
mysql -uzabbix -p zabbix < database/mysql/images.sql
mysql -uzabbix -p zabbix < database/mysql/data.sql

Systemd

Aus speziellen Servern muß systemd verwendet werden. In diesem Fall ist eine abweichende Konfiguration erforderlich:

/etc/tmpfiles.d/zabbix.conf
#Type	Path		Mode	UID	GID	Age	Argument
d    	/run/zabbix	0755	zabbix	zabbix	10d	-

Service-File:

/etc/systemd/system/zabbix-agentd.service
[Unit]
Description=Zabbix Agent
After=syslog.target network.target
 
[Service]
Type=oneshot
ExecStart=/usr/local/sbin/zabbix_agentd
RemainAfterExit=yes
PIDFile=/run/zabbix/zabbix_agentd.pid
 
[Install]
WantedBy=multi-user.target

Aktivieren für Autostart

systemctl enable zabbix-agentd

Frontend

PHP Frontend installieren

mkdir /var/www/zabbix-<version>
cd frontends/php
cp -a . /var/www/zabbix-<version>
chown -R www-data. /var/www/zabbix-<version>
ln -s /var/www/zabbix-<version>/ /var/www/html/zabbix

Frontend konfigurieren

Frontend updaten

  1. Neue Version nach /var/www/zabbix-<version> kopieren:
    cd /usr/local/src/zabbix-<version>/frontends/php
    cp -a . /var/www/zabbix-<version>
    chown -R www-data. /var/www/zabbix-<version>
  2. Konfiguration der Vorversion übernehmen
    • cd /var/www
    • Konfiguration: cp -p zabbix/conf/zabbix.conf.php zabbix-<neu>/conf/
    • Sprachen: vimdiff zabbix-<neu>/include/locales.inc.php zabbix/include/locales.inc.php
    • Blacklist für Einheiten: vimdiff zabbix-<neu>/include/func.inc.php zabbix/include/func.inc.php
  3. Link /var/www/zabbix auf neue Version umschalten
    rm /var/www/zabbix
    ln -s /var/www/zabbix-<version> /var/www/zabbix
  4. Kurze Funktionsüberprüfung mit einem Browser vornehmen
  5. Alte Version entfernen