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
- Verfügbare Sprachen einstellen
- Die im folgenden ausgewählten Sprachen müssen auch als locale im System aktiviert sein!
/var/www/html/zabbix/include/locales.inc.php
entsprechend bearbeiten: Anzeige der gewünschten Sprachen in der Liste auf true/false setzen
- Blacklist für Diagrammeinheiten
- include/func.inc.php
$blackList = ['%', 'ms', 'rpm', 'RPM', 'U/min', 'kg/h'];
- PHP konfigurieren (
/etc/php/7.0/apache2/php.ini
)- post_max_size = 24M
- max_execution_time = 400
- max_input_time = 400
- date.timezone = Europe/Berlin
- Webserver mit neuen Einstellungen neu starten
- Frontend im Browser aufrufen
- Benutzer
zbxfe
verwenden - Konfiguration ist anschließend unter:
/var/www/zabbix/html/conf/zabbix.conf.php
- Login ist anschließend mit dem Benutzer
Admin
und dem Kennwortzabbix
möglich
Frontend updaten
- 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>
- 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
- Link
/var/www/zabbix
auf neue Version umschaltenrm /var/www/zabbix ln -s /var/www/zabbix-<version> /var/www/zabbix
- Kurze Funktionsüberprüfung mit einem Browser vornehmen
- Alte Version entfernen