Zabbix Server installieren

Hinweis zu fertigen Paketen der Distributionen

Der Zabbix-Server besteht aus zwei Komponenten:

  1. Dem eigentlichen Server-Daemon zabbix_server, welcher die Daten sammelt und in die Datenbank schreibt. Der Zabbix-Server-Daemon wurde in der Programmiersprache C entwickelt.
  2. Zur Steuerung und Konfiguration des Serverdienstes wird ein Webfrontend verwendet, welches in der Skriptsprache PHP programmiert wurde.

Im Folgenden werden Sie Schritt für Schritt durch die Installation von Zabbix geführt. Verwenden Sie möglichst nicht die Zabbix-Pakete der Distribution. Mehrere Gründe sprechen dagegen:

Die Distributionpakete sind zu alt.
Zabbix wird sehr aktiv weiterentwickelt. Circa alle sechs Monate erscheint eine neue Version. Und mit jeder Version kommen nützliche neue Funktionen hinzu. Ebenso wird die Performance von Zabbix ständig optimiert. Sie sollten bei der ersten Installation die neueste Version von Zabbix verwenden. Da keine Distribution die aktuelle Version von Zabbix mitbringt, greifen Sie besser zu anderen Installationsquellen.

Die Distributionspakete enthalten nicht alle optionalen Komponenten des Zabbix-Servers.
Zahlreiche Funktionen des Zabbix-Servers müssen während des Kompilierens integriert werden. Wenn Sie die vorkompilierte Version der Distribution verwenden, haben Sie keinen Einfluss darauf, welche Funktionen im Zabbix-Server zur Verfügung stehen sollen. Wenn Sie hingegen den Quellcode selbst übersetzen und aufbewahren, können Sie den Zabbix-Server jederzeit neu kompilieren und Funktionen hinzunehmen.

Mit der Installation aus den Quellen oder den Paketen von Zabbix können Sie Updates leichter installieren.
Wenn Sie die Erstinstallation direkt aus den Quellen oder mit den Paketen von Zabbix vornehmen, ist Ihr System bestens für alle Updates vorbereitet. Wenn Sie Zabbix mit den Paketen der Distribution installieren, wird Ihr System in der Regel auch nicht alle Anforderungen erfüllen, um ein Update oder Versions-Upgrade zu installieren. Da die Distributionen in der Regel keine Versions-Upgrades veröffentlichen, wird ein Zabbix-Upgrade zwangsläufig auf eine Neuinstallation hinauslaufen.

Brauchen Sie Hilfe bei der Einrichtung von Zabbix?
Wir bieten Zabbix-Consulting, Schulungen, Wartungs- und Supportverträge.
zabbix-support.de

Zabbix mit fertigen Paketen von Zabbix LLC installieren (empfohlen)

Zabbix LLC, die Firma hinter dem Produkt Zabbix, stellt ein Repository zur Verfügung, über das Sie fertige und aktuelle Binär-Pakete für Ubuntu-, Debian-, Red Hat- und CentOS-Linux downloaden können. Sie können das Repository in die Paketverwaltung einbinden und dann bequem Zabbix-Server oder alle anderen Komponenten von Zabbix installieren. Wenn Sie die fertigen Binär-Pakete von Zabbix LLC verwenden, kommen Sie ebenfalls in den Genuss von allen Updates. Für Benutzer von SUSE-Linux stellt Zabbix LLC keine RPM-Pakete bereit. Der openSUSE Build Service (OSBS) hält Zabbix-Pakete. Diese Pakete erheben aber keinen Anspruch auf Aktualität. Für SUSE-Benutzer scheint es die beste Wahl zu sein, Zabbix aus dem Quellcode zu kompilieren.

Bevor Sie die nachfolgende Anleitung übernehmen, schauen Sie auf der Download-Seite von Zabbix nach, welche die aktuellste Zabbix-Version ist und wie die URLs der Repositorys lauten.
Aktuelle URL des Repositorys ermitteln

MySQL installieren

Bevor Sie die Pakete des Zabbix-Servers installieren, sollten Sie das Paket der MySQL-Datenbank installieren. Installieren Sie die Datenbank in einem gesonderten Schritt vor der Installation der Zabbix-Pakete, denn so haben Sie die Chance, eine wichtige Einstellung in der MySQL-Konfiguration vorzunehmen.

Führen Sie nun aus:

# Debian, Ubuntu
apt-get install mysql-server 

# Red Hat, CentOS Version 6
yum install mysql-server

# Red Hat, CentOS Version 7
yum install mariadb-server   
Sollte die MySQL-Datenbank unter CentOS oder Red Hat nicht starten und Sie finden im Log /var/log/mysqld.log die Meldung Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist, dann müssen Sie noch die Systemtabellen mit dem Kommando mysql_install_db erzeugen.

Nutzer von Debian und Ubuntu werden vom Installer aufgefordert, ein administratives Kennwort für die Datenbank zu vergeben. Red Hat- und CentOS-Distributionen erzwingen nicht das Setzen eines Kennwortes für den MySQL-Root-Benutzer. Setzen Sie das Kennwort manuell mit dem Kommando mysqladmin -u root password 'new-password'.

Einrichtung des administrativen Datenbankbenutzers während der Installationsroutine unter Ubuntu-Linux

Wenn Sie die MySQL-Datenbank auf dem Zabbix-Server frisch installiert haben, das heißt, es befand sich vorher keine MySQL-Datenbank auf dem System, dann sollten Sie noch eine Einstellung in MySQL ändern, bevor Sie den Zabbix-Server starten.

Wenn Sie bereits Datenbanken auf dem System angelegt haben, nehmen Sie die unten genannte Änderung nicht vor.

InnoDB legt standardmäßig alle Tabellen in einer einzigen großen Datei an. Dies kann im Laufe der Zeit unpraktisch und unperformant werden. Öffnen Sie die Konfigurationsdatei der Datenbank /etc/my.cnf, /etc/mysql/my.cnf oder /etc/my.cnf.d/server.cnf und fügen Sie folgende Parameter unterhalb des Blocks [mysqld] ein. Starten Sie anschließend die Datenbank neu:

[mysqld]
innodb_file_per_table     = 1

Starten Sie die MySQL-Datenbank neu, nachdem Sie die Änderungen an der Konfiguration vorgenommen haben.

DEB-Pakete für Debian und Ubuntu nutzen

Zabbix-Server auf Ubuntu installieren

Für die Installation von Zabbix 3 gehen Sie wie folgt vor:

# Für Zabbix 3.X LTS
wget http://repo.zabbix.com/zabbix/3.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.0-1+xenial_all.deb
# Für Zabbix 3.2
wget http://repo.zabbix.com/zabbix/3.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.2-1+xenial_all.deb
dpkg -i zabbix-release_*+xenial_all.deb
apt-get update
apt-get install zabbix-server-mysql
Seit Zabbix 3 wird die Datenbank nicht mehr automatisch angelegt. In /usr/share/doc/zabbix-server-mysql finde Sie eine SQL-Datei, um das Schema anzulegen.

Gehen Sie zum Anlegen der Datenbank wie folgt vor:

mysql -uroot -p -e "create database zabbix character set utf8"
mysql -uroot -p -e\
 "grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix'"
zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz |mysql -u zabbix -pzabbix zabbix

Zabbix-Server auf Debian installieren

Binden Sie den Repository-Server von Zabbix in die Paketverwaltung ein.

wget http://repo.zabbix.com/zabbix/3.2/debian/pool/main/z/zabbix-release/zabbix-release_3.2-1+jessie_all.deb
dpkg -i zabbix-release_3.2-1+jessie_all.deb
apt-get update
apt-get install zabbix-server-mysql

Wenn Sie noch keine MySQL-Datenbank installiert haben, werden Sie durch den Installer aufgefordert, ein administratives Kennwort für den Datenbankserver zu vergeben (Root-Zugang). Auf die Frage "Configure database for zabbix-server-mysql with dbconfig-common? " antworten Sie mit „Yes“. Anschließend wird automatisch ein Datenbankbenutzer für den Zabbix-Server angelegt. Nach Eingabe des administrativen Kennwortes vergeben Sie ein Kennwort für den neuen Zabbix-Benutzer. Merken oder notieren Sie sich dieses Kennwort. Sie brauchen es später noch einmal.

Alternativ können Sie auch die Option „If left blank, a random password will be generated.“ nutzen. Das zufällig generierte MySQL-Passwort wird automatisch in die Datei /etc/zabbix/zabbix_server.conf eingetragen.

Für den Fall das die Zabbix-Datenbank nicht per dbconfig angelegt wird, erledigen Sie die manuell wie folgt:

mysql -uroot -e "create database zabbix character set utf8"
mysql -uroot -e\
 "grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix'"
zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz |mysql -u zabbix -pzabbix zabbix

Öffnen Sie die Datei /etc/zabbix/zabbix_server.conf und tragen Sie die Datenbankzugangsdaten ein:

DBHost=localhost 
DBName=zabbix
DBUser=zabbix
DBPassword= zabbix
DBSocket=/var/run/mysqld/mysqld.sock

Nach Beendigung der Installationsroutine sollte der Zabbix-Server laufen. Werfen Sie einen Blick in die Prozessliste (siehe Abbildung).

Geschafft. Der Zabbix-Server läuft.

RPM-Pakete für Red Hat und CentOS verwenden

Benutzer von Red Hat und CentOS installieren den Zabbix-Server wie folgt:

# RHEL/CentOS Version 7 
rpm -iv http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm        # RHEL
rpm -iv http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm # CentOS
yum install zabbix-server-mysql mariadb-server
service mariadb start
systemctl enable mariadb

Der RPM-Paketmanager legt die Zabbix-Datenbank nicht automatisch an. Dies müssen Sie mit den folgenden Kommandos manuell erledigen:

mysql -uroot -e "create database zabbix character set utf8"
mysql -uroot -e\
 "grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix'"
zcat /usr/share/doc/zabbix-server-mysql-3.4.*/create.sql.gz |mysql -u zabbix -pzabbix zabbix

Tragen Sie nun die Datenbankzugangsdaten in die Zabbix-Serverkonfiguration /etc/zabbix/zabbix_server.conf ein:

DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBSocket=/var/lib/mysql/mysql.sock

Nun können Sie den Zabbix-Server starten.

[root@localhost ~]# service zabbix-server start
Starting Zabbix server:                                    [  OK  ]

Abschließend sollten Sie noch veranlassen, dass die Datenbank und der Zabbix-Server beim Starten des Systems auch automatisch starten:

systemctl enable mariadb
systemctl enable zabbix-server

Zabbix aus den Quellen installieren (kompilieren)

Das Betriebssystem für das Übersetzen der Quellen vorbereiten

Zabbix benutzt während der Installation und zur Laufzeit andere Open-Source-Softwarekomponenten. Zabbix ist darauf angewiesen, dass auf Ihrem System zahlreiche Bibliotheken und Programme installiert sind. Leider können nur Debian und Ubuntu alle von Zabbix benötigten Komponenten über den Paketmanager installieren.

Mit Red Hat, CentOS und SUSE Linux können Sie immerhin so viele Bibliotheken per Paketmanager installieren, dass eine Basisinstallation mit den Kernfunktionen von Zabbix möglich ist. Wenn Sie alle Funktionen des Zabbix-Servers nutzen wollen, dann müssen Sie die benötigten Zusatzprogramme ebenfalls über den Quellcode installieren.

Zusatzfunktionen des Zabbix-Servers, die während des Kompilierens integriert werden können:

SSH (--with-ssh2)
Ermöglicht das Abrufen von Daten von einem entfernten System per SSH. Beim Kompilieren werden die SSH-Development-Pakete benötigt. Benötigte Pakete sind verfügbar in: OpenSUSE 12.1, Red Hat, CentOS, Debian, Ubuntu. Die in SLES 11 SP1 enthaltene Version 0.19 von libssh2 ist für Zabbix zu alt.
IPMI (--with-openipmi)
Ermöglicht das Abrufen von Daten per Intelligent Platform Management Interface (IPMI). Setzt Hardware voraus, die den Hardwarestatus per IPMI zur Verfügung stellt. IPMI steht in der Regel nur in professioneller Serverhardware zur Verfügung. Beim Kompilieren werden die Open-IPMI-Development-Pakete benötigt. Benötigte Pakete sind verfügbar in: SUSE, Red Hat, CentOS, Debian, Ubuntu.
SNMP (--with-net-snmp)
Ermöglicht das Abrufen von Daten per Simple Network Management Protocol (SNMP). Beim Kompilieren werden die Netsnmp-Development-Pakete benötigt. Benötigte Pakete sind verfügbar in: SUSE, Red Hat, CentOS, Debian, Ubuntu.
cURL (--with-libcurl)
Ermöglicht das Anlegen von Webtests. Der Zabbix-Server kann dann Webseiten testen. cURL wird als Webbrowser in den Zabbix-Server integriert. Beim Kompilieren werden die libcurl-Development-Pakete benötigt. Benötigte Pakete verfügbar in: SUSE, Red Hat, CentOS, Debian, Ubuntu.
Jabber (--with-jabber)
Ermöglicht das Versenden von Meldungen (Alarmen) per XMPP/Jabber Chat. Beim Kompilieren werden die libjabber-Development-Pakete benötigt. Benötigte Pakete sind verfügbar in: Debian, Ubuntu.
XML (VMware Monitoring) (--with-libxml2)
Ermöglicht das Überwachen von VMware-ESX- und Vcenter-Servern über die VMware API.
ODBC (--with-unixodbc)
Ermöglicht das Abfragen von beliebigen externen Datenbanken. (Die Verbindung zur Zabbix-Datenbank erfolgt nicht per ODBC.) Die benötigten Development-Pakete sind in einigen Distributionen zu alt. Wenn Sie ODBC direkt bei der Erstinstallation integrieren wollen, werfen Sie vorher einen Blick auf das Kapitel Database Monitor.
Verschlüsselung (--with-openssl)
Ab Version Zabbix 3.0 kann die Kommunikation zwischen Zabbix-Server den Agenten und den Proxys verschlüsselt werden. Neben OpenSSL stehen noch mbed TLS (PolarSSL) und GnuTLS als Basis für die Verschlüsselung zur Auswahl. Rufen Sie für weitere Information das Kommando ./configure --help auf.
IPv6 (--enable-ipv6)
Ermöglicht die Verwendung von Ipv6.

Im Folgenden gehen alle Beispiele von einem frisch installierten Linux-System aus, bei dem alle Komponenten mit den Standardeinstellungen der Distribution betrieben werden.

Zum Installieren der benötigten Software werden Kommandozeilenwerkzeuge verwendet. Sie können die entsprechenden Pakete der Distribution selbstverständlich auch mit einem grafischen Werkzeug installieren.

Ebenfalls gehen alle Beispiele davon aus, dass Sie MySQL als Datenbank verwenden. Im Anhang finden Sie weitere Informationen über die Installation und den Betrieb von Zabbix mit PostgreSQL und Oracle.

Debian GNU Linux vorbereiten:
Um Zabbix auf Debian GNU Linux 8.0 (Jessie) zu installieren, müssen Sie vorher folgende Pakete installieren:

apt-get install make gcc libc6-dev libmysqlclient-dev libcurl4-openssl-dev libssh2-1-dev \
libsnmp-dev libiksemel-dev mysql-server libopenipmi-dev fping libxml2-dev

Ubuntu Linux 14.04 LTS vorbereiten:
Um Zabbix auf Ubuntu Linux zu installieren, müssen Sie vorher folgende Pakete installieren:

apt-get install make gcc libc6-dev libmysqlclient-dev libcurl4-openssl-dev \
libssh2-1-dev libsnmp-dev libiksemel-dev mysql-server libopenipmi-dev fping libxml2-dev

CentOS oder RHEL vorbereiten:
Um Zabbix auf CentOS oder RHEL zu installieren, müssen Sie folgende Pakete installieren:

yum install make gcc mysql-devel mysql-server curl-devel net-snmp-devel \
OpenIPMI-devel libssh2-devel libxml2-devel unixODBC-devel wget
Ab der Version 7 enthalten Red Hat und CentOS keine Pakete für den MySQL-Server mehr. Stattdessen sind Pakete für Mariadb enthalten. Mariadb ist ein sogenanntes „drop-in replacement“ für MySQL. Nach der Installation von Mariadb mit yum install mariadb-server mariadb-devel stehen alle gewohnten MySQL-Kommandos zur Verfügung.

Leider stellen Red Hat oder CentOS keine RPM-Pakete für das von Zabbix benötigte Kommando fping zur Verfügung.
Abhilfe schafft hier das inoffizielle Repository Repoforge, oder Sie kompilieren Fping aus den Quellen. Wenn Sie den Paketen aus dem inoffiziellen Respository vertrauen, dann laden Sie über http://tree.repoforge.org/ das für Ihr System passende Paket von fping herunter und installieren es per rpm. Für ein CentOS7-System verwenden Sie beispielsweise das folgende Kommando:

rpm -Uhv http://tree.repoforge.org/redhat/el7/en/\
x86_64/rpmforge/RPMS/fping-3.10-1.el7.rf.x86_64.rpm

Leider stellen Red Hat oder CentOS auch keine Development-Pakete für Jabber zur Verfügung. Kompilieren Sie den Zabbix-Server entweder ohne die Option --with-jabber oder kompilieren Sie die benötigten Jabber-Bibliotheken ebenfalls aus den Quellen.

SUSE Linux vorbereiten:
Wenn Sie SUSE Linux Enterprise Server werwenden, brauchen Sie zur Installation des Zabbix-Servers das SUSE Linux Enterprise Software Development Kit 11 DVD 1, welches Sie in Form einer ISO-Datei von der Novell-Webseite herunterladen können. Die DVD müssen Sie per Yast oder zypper als Repository zu Ihrem System hinzufügen.

zypper ar -c -t yast2\
 "iso:/?iso=/data/iso/SLE-11-SDK-DVD-x86_64-GM-Media1.iso"\
 "SLES SDK 1"

Wenn Sie Open SUSE verwenden, lädt zypper die Pakete aus den Online-Repositories herunter.

Um Zabbix auf SUSE-Linux-Enterprise-Server zu installieren, müssen Sie folgende Pakete installieren.

zypper install gcc make mysql mysql-client \
libmysqlclient-devel libcurl-devel net-snmp-devel libssh2-devel \
OpenIPMI OpenIPMI-devel fping

Wenn Sie OpenSUSE verwenden, installieren Sie mysql-community-server und mysql-community-server-client anstatt mysql und mysql-client.

Leider stellt SUSE keine Development-Pakete für Jabber zur Verfügung.

Kompilieren Sie auch hier den Zabbix-Server entweder ohne die Option --with-jabber oder kompilieren Sie die benötigten Jabber-Bibliotheken ebenfalls aus den Quellen.

Ähnliches gilt für SLES 11 SP1. Die Version von libssh2-devel ist zu alt. Sie müssen ohne die Option --with-ssh2 kompilieren. Mit OpenSUSE 12.1 gibt es keine Probleme.

Es kann vorkommen, dass Ihr SUSE-Linux-System ein Problem mit der Installation des Pakets OpenIPMI-devel beanstandet. Wenn zypper eine Fehlermeldung ähnlich wie die folgende präsentiert, können Sie sich getrost für die Lösung drei entscheiden. Es werden dann alle von Zabbix benötigten Dateien installiert.

Problem: OpenIPMI-devel-2.0.16-7.1.x86_64 requires OpenIPMI = 2.0.16,
  but this requirement cannot be provided
  uninstallable providers: OpenIPMI-2.0.16-7.1.i586[openSUSE-11.4-11.4-0]
                   OpenIPMI-2.0.16-7.1.x86_64[openSUSE-11.4-11.4-0]
 Solution 1: deinstallation of patterns-openSUSE-minimal_base-11.4-6.9.1.x86_64
 Solution 2: do not install OpenIPMI-devel-2.0.16-7.1.x86_64
 Solution 3: break OpenIPMI-devel by ignoring some of its dependencies

Der Zabbix-Server verwendet das Programm fping zum „Pingen“ der Hosts. Fping kann bei SUSE aber nur vom Root-User verwendet werden. Da Zabbix aber nicht mit Root-Rechten läuft, müssen Sie manuell das sogenannte Suid-Bit setzen. Dadurch verfügt das Programm fping immer über Root-Rechte, auch wenn es von einem Nicht-Root-User gestartet wird.

chmod +s /usr/sbin/fping

Zabbix-Server kompilieren und installieren

Laden Sie nun den aktuellen Tarball von der Zabbix-Webseite herunter, entpacken Sie die Datei, kompilieren und installieren Sie die Software.

Das aufgeführte Beispiel installiert alle Komponenten von Zabbix in das Verzeichnis /opt/zabbix. Wenn Sie kein Installationverzeichnis mit der Option --prefix angeben, wird Zabbix in /usr/local/sbin installiert.

Installieren Sie nun den Zabbix-Server wie folgt:

cd /usr/src
curl -O -J -L http://sourceforge.net/projects/zabbix/files/\
ZABBIX%20Latest%20Stable/<VERSION>/zabbix-<VERSION>.tar.gz/download
tar xzf zabbix-<VERSION>.tar.gz
cd /usr/src/zabbix-<VERSION>
./configure --enable-server --enable-agent --with-mysql --with-net-snmp \
--with-libcurl --with-openipmi --with-ssh2 \
--with-libxml2 --with-unixodbc \
--prefix=/opt/zabbix

Ersetzen Sie <VERSION> durch die aktuellste Version, welche Sie auf der Sourceforge-Seite von Zabbix finden.

Ab Zabbix 3.0 sollten Sie die native Verschlüsselung nutzen. Ergänzen Sie die Parameter von ./configure um die Option --with-openssl.
Der Configure-Befehl hat das Kompilieren ohne Fehlermeldungen vorbereitet.

Starten Sie nun das Kompilieren des Quellcodes in ausführbare Programme:

make
make install

Ergänzen Sie ggf. die Option --with-jabber, wenn Sie die Jabber-Funktion nutzen möchten und die Jabber-Bibliotheken installiert haben.

Wenn nach dem ./configure Fehler auftreten, haben Sie nicht alle nötigen Softwarekomponenten installiert, die zum Kompilieren von Zabbix benötigt werden.

Sofern die Installation erfolgreich war, sollten Sie nun in /opt/zabbix/sbin und /opt/zabbix/bin folgende Dateien vorfinden:

[root@vm173 zabbix-2.4.3]# ls -l /opt/zabbix/sbin/
insgesamt 6328
-rwxr-xr-x. 1 root root 1011323 11. Okt 11:58 zabbix_agent
-rwxr-xr-x. 1 root root 1190678 11. Okt 11:58 zabbix_agentd
-rwxr-xr-x. 1 root root 4274125 11. Okt 11:58 zabbix_server
[root@vm173 zabbix-2.4.3]# ls -l /opt/zabbix/bin/
insgesamt 704
-rwxr-xr-x. 1 root root 320009 11. Okt 11:58 zabbix_get
-rwxr-xr-x. 1 root root 394325 11. Okt 11:58 zabbix_sender

Aus Sicherheitsgründen lässt sich der Zabbix-Server nicht als root-User starten. Legen Sie also einen neuen User für Zabbix an.

adduser --system --home /opt/zabbix --no-create-home zabbix #Debian
useradd -r -d /opt/zabbix/ -m zabbix                        # SUSE,Red Hat,CentOS

Wenn Sie sich für ein anderes Installationsverzeichnis als /opt/zabbix entschieden haben, müssen Sie das Home-Verzeichnis des neuen Users entsprechend anpassen.

Zabbix-Datenbank installieren

Sofern Sie sich für MySQL als Datenbank für Zabbix entscheiden, installieren Sie entweder die MySQL Version Ihrer Distribution oder laden Sie sich MySQL von der Webseite des Herstellers Oracle herunter.

Wenn Sie dieser Anleitung gefolgt sind, dann haben Sie den MySQL-Server bereits über den Paketmanager installiert.

Einige Distributionen starten die Datenbank nach der Erstinstallation nicht automatisch. Holen Sie das nun mit service mariadb start oder service mysql start nach und testen Sie den Login per MySQL-Konsolenclient.

Je nachdem, wie und aus welcher Quelle Sie MySQL installiert haben, ist der Root-Zugang zur Datenbank mit einem Passwort geschützt. Nach diesem Passwort werden Sie später zum Anlegen der Zabbix-Datenbank gefragt.

SUSE, Red Hat und CentOS starten den MySQL-Daemon nicht automatisch beim Booten. Aktivieren Sie das automatische Starten von MySQL mit systemctl enable mysqld (Red Hat und CentOS 6), systemctl enable mariadb.service (Red Hat und CentOS 7) bzw. systemctl enable mysql (SUSE).

Datenbankkonfiguration anpassen

Zabbix verwendet bei MySQL den Tabellentreiber InnoDB. Mit den Details von InnoDB muss man sich als Zabbix-Neuling nicht beschäftigen. Wenn Sie die MySQL-Datenbank auf dem Zabbix-Server frisch installiert haben, das heißt, es befand sich vorher keine MySQL-Datenbank auf dem System, dann sollten Sie noch eine Einstellung in MySQL ändern, bevor Sie den Zabbix-Server starten.

Wenn Sie bereits Datenbanken auf dem System angelegt haben, nehmen Sie die unten genannte Änderung nicht vor.

InnoDB legt standardmäßig alle Tabellen in einer einzigen großen Datei an. Dies kann im Laufe der Zeit unpraktisch und unperformant werden. Öffnen Sie die Konfigurationsdatei der Datenbank /etc/my.cnf oder /etc/mysql/my.cnf und fügen Sie folgende Parameter unterhalb des Blocks [mysqld] ein. Starten Sie anschließend die Datenbank neu:

[mysqld]
innodb_file_per_table     = 1

Benutzer von CentOS7 öffnen die Datei /etc/my.cnf.d/server.cnf und fügen folgende Zeilen ein:

[mariadb-5.5]
innodb_file_per_table     = 1

Datenbankbenutzer anlegen

In der nachfolgenden Anleitung wird als Datenbankname zabbix und als Passwort auch zabbix verwendet. Passen Sie den Namen und das Passwort ggf. an Ihre Bedürfnisse an. Ebenfalls gehen die Beispiele davon aus, dass Sie den Zabbix-Server und den Datenbankserver auf demselben Host betreiben, was für den Anfang eine gute Wahl ist.

Legen Sie nun eine leere Datenbank und einen Datenbank-User für Zabbix an:

mysql -u root -p -e "create database zabbix"
mysql -u root -p -e "grant all on zabbix.* to zabbix@localhost identified by 'zabbix'"

Testen Sie, ob alles bis hierher funktioniert hat. Sie sollten sich nun mit dem Benutzer zabbix und dem Passwort zabbix an der Datenbank anmelden können:

mysql -u zabbix -p
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>quit

Verwenden Sie die folgenden Kommandos zum Anlegen der Datenbank:

cd /usr/src/zabbix-<VERSION>/database/mysql/
mysql -u zabbix -p zabbix<schema.sql 
mysql -u zabbix -p zabbix<images.sql
mysql -u zabbix -p zabbix<data.sql

Zabbix-Server konfigurieren und starten

Im Verzeichnis mit dem Zabbix-Quellcode finden Sie eine Beispielkonfiguration, die als Basis für den ersten Start des Zabbix-Servers dient. Ab der Version Zabbix 2.0 werden die Beispieldateien vom Kommando make install automatisch ins System kopiert.

Öffnen Sie nun die Datei zabbix_server.conf mit Ihrem bevorzugten Editor und ändern Sie die Werte für folgende Einstellungen:

DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix

Die anderen Einstellungen brauchen Sie zunächst nicht zu ändern.

Nun können Sie den Zabbix-Server das erste Mal starten und prüfen, ob er läuft.

/opt/zabbix/sbin/zabbix_server -c /opt/zabbix/etc/zabbix_server.conf
ps aux|grep zabbix

Sollte der Zabbix-Server nicht starten, schauen Sie im Logfile /tmp/zabbix_server.log nach, ob dort ein Hinweis auf Fehler genannt wird.

Wenn alles glatt gelaufen ist, sollte das Logfile /tmp/zabbix_server.log dies auch bestätigen.

Der Zabbix-Server läuft!

Als Letztes sollten Sie noch ein Start-Stop-Skript anlegen, damit Zabbix auch beim Booten des Systems automatisch startet.

Erhalten Sie eine Fehlermeldung wie diese Can not create IPC key for path, dann haben Sie Zabbix wahrscheinlich unter Angabe eines relativen Pfades zur Konfigurationsdatei gestartet. Verwenden Sie einen absoluten Pfad zur Konfigurationsdatei.

Start-Stop-Skripte für den Zabbix-Server

Im Quellcodeverzeichnis befinden sich Vorlagen mit Start-Stop-Skripten für fast alle Distributionen. Kopieren Sie diese Vorlagen und nehmen Sie kleine Änderungen vor.

Sollte die Konfigurationsdatei für den Zabbix-Server nicht unter /etc/zabbix/zabbix_server-conf gespeichert sein, erzeugen Sie einen passenden symbolischen Link. Das macht die Verwendung der mitgelieferten Start-Stop-Skripte einfacher.

ln -s /opt/zabbix/etc/ /etc/zabbix

Sollte das Start-Stop-Skript nicht auf Anhieb funktionieren, öffnen Sie das Skript mit einem Editor und prüfen Sie die Pfade zu den Dateien. Achten Sie darauf, dass der Pfad zum PID-File exakt derselbe ist, wie er in der Datei zabbix_server.conf angegeben wurde.

Wenn das sogenannte PID-File nicht in /tmp sondern, zum Beispiel in /var/run/zabbix abgelegt wird, müssen Sie dem Zabbix-User Schreibrechte auf dieses Verzeichnis geben.

chown zabbix /var/run/zabbix

Gleiches gilt für das Logfile. Nicht-Root-User dürfen nicht nach /var/log schreiben. Wenn Sie /var/log/zabbix als Verzeichnis für die Logfiles verwenden, müssen Sie Zabbix die Berechtigung erteilen.

chown zabbix /var/log/zabbix

Ubuntu 14.04

Ubuntu 14.04. verwendet Upstart. In den Quellen von Zabbix finden Sie ein fertiges Upstart-Skript, welches Sie nur in Ihr System kopieren brauchen.

cp /usr/src/zabbix-2.4.3/misc/init.d/ubuntu/zabbix-server.conf /etc/init/

Passen Sie in der Datei ggf. den Pfad zu Ihrer Zabbix-Installation an, zum Beispiel exec /opt/zabbix/sbin/zabbix_server.

Beachten Sie, dass ab Version 15.04 auch Ubuntu Systemd verwendet. Folgen Sie dann der Anleitung für CentOS 7 und Debian 8.

Red Hat 6 und CentOS 6

Red Hat 6 und CentOs 6-Systeme verwenden noch das mittlerweile veraltete SysVinit-System. Kopieren Sie das Beispielskript aus dem Ordner mit den Zabbix-Quellen in Ihr System und machen Sie es ausführbar.

cp cp /usr/src/zabbix-2.4.3/misc/init.d/fedora/core/zabbix_server /etc/init.d/
chmod +x /etc/init.d/zabbix_server

Öffnen Sie die Datei /etc/init.d/zabbix_server mit einem Editor und passen Sie die Variablen PIDFILE und BASEDIR an. Diese müssen exakt mit den Vorgaben aus der Datei zabbix_server.conf übereinstimmen. Fügen Sie außerdem folgenden Block an den Anfang der Datei unterhalb der ersten Zeile ein:

# chkconfig: 2345 55 25
# description: zabbix_server daemon
#
# processname: zabbix_server

Registrieren Sie den neuen Dienst, so dass er beim Systemstart automatisch gestartet wird:

chkconfig --add zabbix_server_ctl
chkconfig zabbix_server_ctl on

Red Hat 7 und CentOS 7 und Debian 8 (Systemd)

Bei Red Hat Version 7 und Debian Version 8 kommt Systemd zum Einsatz. Legen Sie die Datei /etc/systemd/system/zabbix-server.service mit folgenden Inhalt an:

[Unit]
Description=Zabbix Server
After=syslog.target network.target mariadb.service

[Service]
Type=oneshot
ExecStart=/opt/zabbix/sbin/zabbix_server -c /opt/zabbix/etc/zabbix_server.conf
ExecReload=/opt/zabbix/sbin/zabbix_server -R config_cache_reload
RemainAfterExit=yes
PIDFile=/tmp/zabbix_server.pid

[Install]
WantedBy=multi-user.target

Anschließend führen Sie die folgenden Kommandos aus:

systemctl daemon-reload
systemctl start zabbix-server
systemctl enable zabbix-server
Beachten Sie auch die Einstellungen von SELinux. SELinux verhindert u.U. das Starten des neu angelegten Service. Schalten Sie SELinux ggf. in der Datei /etc/selinux/config ab.

SUSE Linux

Kopieren Sie das Beispielskript aus dem Ordner mit den Zabbix-Quellen in Ihr System und machen Sie das Start-Stop-Skript ausführbar. Registrieren Sie den neuen Dienst, so dass er beim Systemstart automatisch gestartet wird:

cp /usr/src/zabbix-1.8.7/misc/init.d/suse/9.3/zabbix_server /etc/init.d/
chmod +x /etc/init.d/zabbix_server
chkconfig --add zabbix_server
systemctl enable zabbix_server

Firewall-Regeln erweitern

SUSE Firewall2

Wenn Sie die SUSE Firewall 2 verwenden, fügen Sie den TCP-Port 10051 als erlaubten Port für die externe Zone hinzu. Dies können Sie per Yast erledigen, oder Sie tragen eine Zeile wie die folgende in die Datei /etc/sysconfig/SUSEfirewall2 ein:

FW_SERVICES_EXT_TCP="10051"

Starten Sie die Firewall neu, damit die Regeln geladen werden.

Red Hat und CentOS

Falls die Standard-Firewall aktiv ist, fügen Sie in der Datei /etc/sysconfig/iptables folgende Regel ein, und starten Sie die Firewall neu:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 10051 -j ACCEPT
service iptables restart

Ab Version CentOS und Red Hat 7 tragen Sie die Firewall-Regeln wie folgt ein:

firewall-cmd --permanent --zone=public --add-port=10051/tcp
firewall-cmd --reload