====== 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 LogFile=/var/log/zabbix/server.log PidFile=/var/run/zabbix/server.pid DBName=zabbix DBUser=zabbix DBPassword=******** DBSocket=/var/run/mysqld/mysqld.sock 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.sh | zabbix-agent }} {{ ::zabbix-server.sh | 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: #Type Path Mode UID GID Age Argument d /run/zabbix 0755 zabbix zabbix 10d - Service-File: [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- cd frontends/php cp -a . /var/www/zabbix- chown -R www-data. /var/www/zabbix- ln -s /var/www/zabbix-/ /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 $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 Kennwort ''zabbix'' möglich Frontend updaten - Neue Version nach ''/var/www/zabbix-'' kopieren: cd /usr/local/src/zabbix-/frontends/php cp -a . /var/www/zabbix- chown -R www-data. /var/www/zabbix- - Konfiguration der Vorversion übernehmen * ''cd /var/www'' * Konfiguration: ''cp -p zabbix/conf/zabbix.conf.php zabbix-/conf/'' * Sprachen: ''vimdiff zabbix-/include/locales.inc.php zabbix/include/locales.inc.php'' * Blacklist für Einheiten: ''vimdiff zabbix-/include/func.inc.php zabbix/include/func.inc.php'' - Link ''/var/www/zabbix'' auf neue Version umschalten rm /var/www/zabbix ln -s /var/www/zabbix- /var/www/zabbix - Kurze Funktionsüberprüfung mit einem Browser vornehmen - Alte Version entfernen