Systemüberwachung mit Zabbix - Teil 1
Installation aus den Quellen
Das Quellpaket von Zabbix - in unserem Fall die Version 1.4.6 - liefert bereits von Hause aus ein »configure
«-Skript mit. Um den eigentlichen Server oder den Agenten zu compilieren, bedarf es jeweils einer separaten Option. Ferner muss dem Skript auch mitgeteilt werden, wenn SNMP, Jabber und Web-Monitoring gewünscht sind. Das Kommando lautet dazu:
# ./configure --enable-server --with-mysql --enable-agent --with-net-snmp --with-jabber --with-libcurl
oder wahlweise für eine Installation eines Agenten ohne den Zabbix-Server:
# ./configure --enable-agent
Ist die Konfiguration erfolgreich abgeschlossen worden, muss die Software compiliert und installiert werden. Die erledigen folgende Kommandos:
# make # su # make install
Damit sollte nun Zabbix auf einem System wenigstens installiert sein, auch wenn es noch nicht funktioniert.
Serverkonfiguration
Der erste Schritt der Konfiguration von Zabbix stellt die Erstellung einer geeigneten Datenbankstruktur dar. Je nach Installationsmethode und Distribution können die Pfade der nun benötigten Dateien abweichen. Wir beschränken uns deshalb auf die Quellen und beschreiben die weitere Vorgehensweise anhand der Quellenstruktur.
Zabbix beinhaltet bereits von Hause aus die komplette Struktur des Servers und die Default-Konfiguration. Jene Daten gilt es nun auf den MySQL-Server zu übertragen. Zuvor muss noch die Datenbank selbst erzeugt und, falls gewünscht, ein neuer Datenbankbenutzer angelegt werden:
# mysql -u<username> -p<password> mysql> create database zabbix mysql> quit # cd ZABBIX_QUELLEN/create/schema # cat mysql.sql | mysql -u<username> -p zabbix # cd ../data # cat data.sql | mysql -u<username> -p zabbix # cat images_mysql.sql | mysql -u <username> -p zabbix
Damit steht Zabbix prinzipiell zum ersten Test bereit. Was nur noch fehlt, ist eine sinnvolle Konfiguration. Dies erledigen wir, indem wir die Server-Beispieldatei zur Server-Verzeichnisstruktur hinzufügen:
# mkdir /etc/zabbix # cp ZABBIX_QUELLEN/misc/conf/zabbix_server.conf /etc/zabbix
Für eine optimale Konfiguration in großen Umgebungen empfiehlt es sich, die Dokumentation von Zabbix zu studieren. Wer dagegen nur eine kleine Zahl von Systemen überwachen will, kann die Dafaultwerte ruhig unverändert stehen lassen. Geändert werden müssen lediglich die Datenbankeinstellungen und falls gewünscht der Pfad der Log-Datei:
# mkdir /var/log/zabbix # chown zabbix:zabbix /var/log/zabbix # vi /etc/zabbix/zabbix_server.conf [..] LogFile=/var/log/zabbix/zabbix_server.log DBHost=localhost DBName=zabbix DBUser=<username> DBPassword=<password> [..]
Nun fehlt noch ein Benutzer-Account, damit Zabbix nicht mit den Rechten des root-Accounts betrieben werden muss. Falls Sie Zabbix aus einem RPM- oder DEB-Paket installiert haben, so ist ein Benutzer mit großer Wahrscheinlichkeit bereits erstellt worden:
# groupadd zabbix # useradd zabbix -g zabbix -d /dev/null -s /sbin/false
Jetzt ist es endlich an der Zeit, erstmals den Server zu starten. Kontrollieren Sie bitte auch dessen Verfügbarkeit:
# zabbix_server # ps -ef | grep zabbix [..] zabbix 16455 1 0 17:59 ? 00:00:00 zabbix_server zabbix 16458 16455 0 17:59 ? 00:00:00 zabbix_server zabbix 16460 16455 0 17:59 ? 00:00:00 zabbix_server [..]
Damit sind wir nun sicher, einen funktionierenden Server aufgesetzt zu haben. Sehen Sie die obigen Ausgaben des »ps
«-Befehls nicht, so überprüfen Sie noch einmal Ihre Installation und schauen sich die Ausgaben in der Datei /var/log/zabbix/zabbix_server.log an.
Um den Start des Servers zukünftig zu erleichtern, sollten Sie noch das mitgelieferte Init-Skript in die Server-Struktur einbinden oder ein eigenes Skript für Ihre Distribution erstellen. Bei der Verwendung von Paket-Distributionen ist dies mit großer Wahrscheinlichkeit bereits passiert, so dass Sie diesen Schritt überspringen können. Vergessen Sie bei der Nutzung der Skripte in den Quellen nicht, die verwendeten Pfade anzupassen!
# cp ZABBIX_QUELLEN/misc/init.d/DISTRIBUTION/zabbix_server /etc/init.d # chmod 755 /etc/init.d/zabbix_server # vi /etc/init.d/zabbix_server [..] CONFIG_FILE="/etc/zabbix/zabbix_server.conf" ZABBIX_BIN="/usr/local/sbin/zabbix_server" [..] # /etc/init.d/zabbix_server status
Agentenkonfiguration
Nachdem unser Server installiert ist, gilt es, den ersten Agenten zu starten. Da wir im Zuge der Installation des Servers auch die Agent-Software auf unserem System installierten - schließlich will dieser auch überwacht werden - bedarf es nur noch einer Konfiguration des Systems. Hier gilt es allerdings die erste Entscheidung zu treffen, wie der Agent mit dem Server kommunizieren soll.
Die eigentliche Kommunikation zwischen dem Server und einem Agenten kann auf zweierlei Arten erfolgen. So kann der Agent entweder als Daemon auf dem System gestartet werden oder auf einem bestimmten Port lauschen. Der Hersteller selbst empfiehlt die Daemon-Methode, weshalb wir diese in unserer Beschreibung auch nutzen werden. Anwender der zweiten Methode sind gebeten, die Dokumentation zu Rate zu ziehen.
Wie auch beim Server gilt es zuerst eine Standard-Konfiguration zu erstellen. Kopieren Sie dazu die Datei zabbix_agentd.conf in das Zabbix-Verzeichnis und passen die IP-Adresse des Servers und den Namen an.
# cp misc/conf/zabbix_agentd.conf /etc/zabbix # vi /etc/zabbix/zabbix_agentd.conf [..] Server=127.0.0.1 Hostname=localhost LogFile=/var/log/zabbix/zabbix_agentd.log [..]
Auch hier ist es ratsam, den Start des Agenten dem Init-Skript zu überlassen. Kopieren Sie das mitgelieferte Init-Skript in die Server-Struktur oder erstellen Sie ein eigenes. Die verwendeten Pfade ebenfalls anpassen.
# cp ZABBIX_QUELLEN/misc/init.d/DISTRIBUTION/zabbix_agentd /etc/init.d # chmod 755 /etc/init.d/zabbix_agentd # vi /etc/init.d/zabbix_agentd [..] CONFIG_FILE="/etc/zabbix/zabbix_agentd.conf" ZABBIX_BIN="/usr/local/sbin/zabbix_agentd" [..] # /etc/init.d/zabbix_agentd status
Nun gilt es, auch den Agenten zu starten. Sie können Ihn entweder direkt durch den Aufruf von »zabbix_agentd« starten, oder noch besser durch das init.d-Skript.
# /etc/init.d/zabbix_agentd start # /etc/init.d/zabbix_agentd status zabbix_agentd (pid 23242 23241 23240 23239 23236 23235) is running...