====== 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