Installation des Zabbix-Servers
Nachdem wir den Zabbix-Repository mit dem notwendigen Software hinzugefügt haben, sind wir bereit, sowohl den Zabbix-Server als auch den Webserver zu installieren. Beachten Sie, dass der Webserver nicht auf demselben Computer wie der Zabbix-Server installiert werden muss; sie können auf getrennten Systemen gehostet werden, wenn gewünscht.
Um die Komponenten des Zabbix-Servers zu installieren, führen Sie den folgenden Befehl aus:
Installieren Sie den zabbix server
Red Hat
# For MySQL/MariaDB backend:
dnf install zabbix-server-mysql
# For PostgreSQL backend:
dnf install zabbix-server-pgsql
SUSE
# For MySQL/MariaDB backend:
zypper install zabbix-server-mysql
# For PostgreSQL backend:
zypper install zabbix-server-pgsql
Ubuntu
Nach erfolgreicher Installation des Zabbix-Server-Pakets müssen wir den Zabbix-Server konfigurieren, um eine Verbindung zur Datenbank herzustellen. Dies erfordert die Anpassung der Zabbix-Server-Konfigurationsdatei.
Die Zabbix-Server-Konfigurationsdatei bietet eine Option zum Einbinden von zusätzlichen Konfigurationsdateien für benutzerdefinierte Parameter. Für Produktionsumgebungen ist es oft am besten, die ursprüngliche Konfigurationsdatei nicht direkt zu ändern. Stattdessen kann man separate Konfigurationsdateien für zusätzliche oder geänderte Parameter erstellen und einbinden. Dieser Ansatz sorgt dafür, dass Ihre ursprüngliche Konfigurationsdatei unverändert bleibt, was besonders hilfreich ist bei Upgrades oder der Verwaltung von Konfigurationen mit Tools wie Ansible, Puppet oder SaltStack.
Auf SUSE 16 und neuer ist diese Funktion bereits standardmäßig aktiviert und konfiguriert.
(Weitere Informationen unter https://documentation.suse.com/sles/16.0/html/SLE-differences-faq/index.html#sle16-differences-faq-basesystem-etc).
Daher befindet sich auf Systemen mit SUSE die Zabbix-Server-Konfigurationsdatei an folgendem Ort:
/usr/etc/zabbix/zabbix_server.conf, und es ist so konfiguriert, dass alle .conf Dateien aus dem
/etc/zabbix_server/zabbix_server.d/ Verzeichnis eingebunden werden.
Auf anderen Distributionen müssen Sie dies möglicherweise manuell aktivieren:
Um diese Funktion zu aktivieren, stellen Sie sicher, dass die nächste Zeile vorhanden und nicht mit einem #
kommentiert ist in der /etc/zabbix/zabbix_server.conf Datei.
Der Pfad /etc/zabbix/zabbix_server.d/ sollte bereits durch das installierte Paket erstellt worden sein, stellen Sie aber sicher,
dass er tatsächlich existiert.
Jetzt werden wir eine benutzerdefinierte Konfigurationsdatei database.conf im /etc/zabbix/zabbix_server.d/
Verzeichnis erstellen, die unsere Datenbankverbindungsparameter enthält:
Fügen Sie Zabbix-Datenbankverbindungseinstellungen hinzu
Fügen Sie die folgenden Zeilen in der Konfigurationsdatei ein, um sie auf Ihre Datenbanksystemanordnung abzustimmen:
Ersetzen Sie <database-host>, <database-name>, <database-schema>, <database-user>,
<database-password> und <database-port> durch die entsprechenden Werte für Ihre
Umgebung. Dies sorgt dafür, dass der Zabbix-Server eine Kommunikation mit Ihrer Datenbank aufbauen kann.
Stellen Sie sicher, dass es keinen # (Kommentarzeichen) vor den Konfigurationsparametern gibt,
da Zabbix Zeilen als Kommentare behandelt und ignoriert, die mit # beginnen.
Außerdem überprüfen Sie auf doppelte Konfigurationszeilen; wenn es mehrere Zeilen mit dem gleichen Parameter gibt,
wird Zabbix den Wert aus der letzten Erscheinung verwenden.
Für unsere Umgebung wird die Konfiguration wie folgt aussehen:
Beispiel für database.conf
MariaDB/MySQL:
# MariaDB database configuration
DBHost=<ip or dns of your MariaDB server>
DBName=zabbix
DBUser=zabbix-srv
DBPassword=<your super secret password>
DBPort=3306
PostgreSQL:
Für PostgreSQL in HA
Ab Zabbix 8.0 ist es jetzt möglich, mehr als eine IP für DBHost hinzuzufügen. Dies ermöglicht die Einrichtung einer HA-DB-Umgebung mit PostgreSQL ohne den Einsatz eines Loadbalancers. Zabbix erkennt den aktiven DB selbst aus. Beispiel: DBHost=192.168.10.2:5432,192.168.10.3:5432
In diesem Beispiel:
DBHostbezieht sich auf den Host, auf dem Ihre Datenbank läuft (verwenden Sie localhost, wenn sie auf demselben Computer ist).DBNameist der Name des Zabbix-Datenbanks.DBSchemaist das Schemaname, das in PostgreSQL verwendet wird (nur für PostgreSQL erforderlich).DBUserist der Datenbankbenutzer.DBPasswordist das Passwort für den Datenbankbenutzer.DBPortist die Portnummer, auf der Ihre Datenbanksystem lauscht (Standard für MySQL/MariaDB ist 3306 und PostgreSQL ist 5432).
Stellen Sie sicher, dass die Einstellungen Ihrer Umgebung entsprechen.
Konfigurieren des Firewalls, um Zabbix-Trapper-Verbindungen zuzulassen
Auf Ihrem Zabbix-Server-Rechner müssen wir sicherstellen, dass der Firewall so konfiguriert ist, dass eingehende Verbindungen zum Zabbix-Server zugelassen werden.
Ihr Zabbix-Server muss eingehende Verbindungen von Zabbix-Agents, -Sendern und -Proxys akzeptieren.
Standardmäßig verwendet Zabbix den Port 10051/tcp für diese Verbindungen.
Um diese Verbindungen zuzulassen, müssen Sie diesen Port im Firewall öffnen.
Öffnen Sie den Firewall für zabbix-trapper
Red Hat / SUSE
Ubuntu
Wenn der Dienst nicht mit firewall-cmd --add-service erkannt wird, können Sie
manuell den Port angeben:
Starten des Zabbix-Servers
Mit der aktualisierten Konfiguration des Zabbix-Servers, um eine Verbindung zur Datenbank herzustellen, können Sie den Zabbix-Server-Dienst jetzt starten und aktivieren. Führen Sie den folgenden Befehl aus, um den Zabbix-Server zu aktivieren und sicherzustellen, dass er bei jedem Systemstart gestartet wird:
Note
Vor dem Neustarten des Zabbix-Servers nach Änderungen an seiner Konfiguration gilt es als beste Praxis,
die Konfiguration zu validieren, um potenzielle Probleme zu verhindern. Durch das Ausführen einer
Konfigurationsprüfung werden Fehler vorab erkannt und eine Downtime aufgrund einer ungültigen Konfiguration
vermieden. Dies kann mit dem folgenden Befehl erreicht werden: zabbix-server -T
Aktivieren und starten des zabbix-server-Dienstes
Red Hat, SUSE und Ubuntu
Dieser Befehl startet den Zabbix-Server-Dienst sofort und konfiguriert ihn,
um bei jedem Systemstart gestartet zu werden. Um sicherzustellen, dass der Zabbix-Server korrekt läuft,
prüfen Sie das Protokoll auf Nachrichten. Sie können die neuesten Einträge im
Zabbix server Protokolldatei mit folgendem Befehl anzeigen:
Suchen Sie nach Nachrichten, die darauf hinweisen, dass der Server erfolgreich gestartet wurde. Wenn es Probleme gibt, wird das Protokoll Details bereitstellen, um mit der Fehlerbehebung zu helfen.
Beispielausgabe
12074:20250225:145333.529 Starting Zabbix Server. Zabbix 8.0.0 (revision dd0d9c26a3a).
12074:20250225:145333.530 ****** Enabled features ******
12074:20250225:145333.530 SNMP monitoring: YES
12074:20250225:145333.530 IPMI monitoring: YES
12074:20250225:145333.530 Web monitoring: YES
12074:20250225:145333.530 VMware monitoring: YES
12074:20250225:145333.530 SMTP authentication: YES
12074:20250225:145333.530 ODBC: YES
12074:20250225:145333.530 SSH support: YES
12074:20250225:145333.530 IPv6 support: YES
12074:20250225:145333.530 TLS support: YES
12074:20250225:145333.530 ******************************
12074:20250225:145333.530 using configuration file: /etc/zabbix/zabbix_server.conf
12074:20250225:145333.545 current database version (mandatory/optional): 08000000/08000000
12074:20250225:145333.545 required mandatory version: 08000000
12075:20250225:145333.557 starting HA manager
12075:20250225:145333.566 HA manager started in active mode
12074:20250225:145333.567 server #0 started [main process]
12076:20250225:145333.567 server #1 started [service manager #1]
12077:20250225:145333.567 server #2 started [configuration syncer #1]
12078:20250225:145333.718 server #3 started [alert manager #1]
12079:20250225:145333.719 server #4 started [alerter #1]
12080:20250225:145333.719 server #5 started [alerter #2]
12081:20250225:145333.719 server #6 started [alerter #3]
12082:20250225:145333.719 server #7 started [preprocessing manager #1]
12083:20250225:145333.719 server #8 started [lld manager #1]
Wenn ein Fehler aufgetreten ist und der Server nicht in der Lage war, eine Verbindung zur Datenbank herzustellen, würden Sie im Protokoll des Servers etwas wie folgt sehen:
Beispielnachricht mit Fehlern
12068:20250225:145309.018 Starting Zabbix Server. Zabbix 8.0.0 (revision dd0d9c26a3a).
12068:20250225:145309.018 ****** Enabled features ******
12068:20250225:145309.018 SNMP monitoring: YES
12068:20250225:145309.018 IPMI monitoring: YES
12068:20250225:145309.018 Web monitoring: YES
12068:20250225:145309.018 VMware monitoring: YES
12068:20250225:145309.018 SMTP authentication: YES
12068:20250225:145309.018 ODBC: YES
12068:20250225:145309.018 SSH support: YES
12068:20250225:145309.018 IPv6 support: YES
12068:20250225:145309.018 TLS support: YES
12068:20250225:145309.018 ******************************
12068:20250225:145309.018 using configuration file: /etc/zabbix/zabbix_server.conf
12068:20250225:145309.027 [Z3005] query failed: [1146] Table 'zabbix.users' doesn't exist [select userid from users limit 1]
12068:20250225:145309.027 cannot use database "zabbix": database is not a Zabbix database
Wenn dies der Fall ist, überprüfen Sie Ihre Datenbankverbindungsparameter in der
/etc/zabbix/zabbix_server.d/database.conf Datei und stellen Sie sicher, dass die Datenbank
richtig befüllt wurde, wie in den vorherigen Schritten beschrieben. Überprüfen Sie auch Firewall-Regeln
und wenn PostgreSQL verwendet wird, stellen Sie sicher, dass pg_hba.conf korrekt konfiguriert ist,
um Verbindungen vom Zabbix-Server aus zuzulassen.
Lassen Sie uns den Status des Zabbix-Server-Dienstes überprüfen, um zu sehen, ob er aktiviert ist und nach einem Neustart überlebt.
Beispielausgabe
localhost:~> sudo systemctl status zabbix-server
● zabbix-server.service - Zabbix Server
Loaded: loaded (/usr/lib/systemd/system/zabbix-server.service; enabled; preset: disabled)
Active: active (running) since Tue 2025-02-25 14:53:33 CET; 26min ago
Main PID: 12074 (zabbix_server)
Tasks: 77 (limit: 24744)
Memory: 71.5M
CPU: 18.535s
CGroup: /system.slice/zabbix-server.service
├─12074 /usr/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf
├─12075 "/usr/sbin/zabbix_server: ha manager"
├─12076 "/usr/sbin/zabbix_server: service manager #1 [processed 0 events, updated 0 event tags, deleted 0 problems, synced 0 service updates, idle 5.027667 sec during 5.042628 sec]"
├─12077 "/usr/sbin/zabbix_server: configuration syncer [synced configuration in 0.051345 sec, idle 10 sec]"
├─12078 "/usr/sbin/zabbix_server: alert manager #1 [sent 0, failed 0 alerts, idle 5.030391 sec during 5.031944 sec]"
├─12079 "/usr/sbin/zabbix_server: alerter #1 started"
├─12080 "/usr/sbin/zabbix_server: alerter #2 started"
├─12081 "/usr/sbin/zabbix_server: alerter #3 started"
├─12082 "/usr/sbin/zabbix_server: preprocessing manager #1 [queued 0, processed 0 values, idle 5.023818 sec during 5.024830 sec]"
├─12083 "/usr/sbin/zabbix_server: lld manager #1 [processed 0 LLD rules, idle 5.017278sec during 5.017574 sec]"
├─12084 "/usr/sbin/zabbix_server: lld worker #1 [processed 1 LLD rules, idle 21.031209 sec during 21.063879 sec]"
├─12085 "/usr/sbin/zabbix_server: lld worker #2 [processed 1 LLD rules, idle 43.195541 sec during 43.227934 sec]"
├─12086 "/usr/sbin/zabbix_server: housekeeper [startup idle for 30 minutes]"
├─12087 "/usr/sbin/zabbix_server: timer #1 [updated 0 hosts, suppressed 0 events in 0.017595 sec, idle 59 sec]"
├─12088 "/usr/sbin/zabbix_server: http poller #1 [got 0 values in 0.000071 sec, idle 5 sec]"
├─12089 "/usr/sbin/zabbix_server: browser poller #1 [got 0 values in 0.000066 sec, idle 5 sec]"
├─12090 "/usr/sbin/zabbix_server: discovery manager #1 [processing 0 rules, 0 unsaved checks]"
├─12091 "/usr/sbin/zabbix_server: history syncer #1 [processed 4 values, 3 triggers in 0.027382 sec, idle 1 sec]"
├─12092 "/usr/sbin/zabbix_server: history syncer #2 [processed 0 values, 0 triggers in 0.000077 sec, idle 1 sec]"
├─12093 "/usr/sbin/zabbix_server: history syncer #3 [processed 0 values, 0 triggers in 0.000076 sec, idle 1 sec]"
├─12094 "/usr/sbin/zabbix_server: history syncer #4 [processed 0 values, 0 triggers in 0.000020 sec, idle 1 sec]"
├─12095 "/usr/sbin/zabbix_server: escalator #1 [processed 0 escalations in 0.011627 sec, idle 3 sec]"
├─12096 "/usr/sbin/zabbix_server: proxy poller #1 [exchanged data with 0 proxies in 0.000081 sec, idle 5 sec]"
├─12097 "/usr/sbin/zabbix_server: self-monitoring [processed data in 0.000068 sec, idle 1 sec]"
Dies schließt unseren Abschnitt zur Installation und Konfiguration des Zabbix-Servers ab.
Schlussfolgerung
Mit der erfolgreichen Installation und Konfiguration des Zabbix-Servers haben Sie jetzt den Kernkomponenten Ihres Monitoring-Systems eingerichtet. Wir haben die Installation des Zabbix-Server-Pakets, die Konfiguration der Datenbankverbindungsparameter und die Einrichtung eines Firewalls behandelt, um eingehende Verbindungen zum Zabbix-Server zuzulassen. Darüber hinaus haben wir den Zabbix-Server-Dienst gestartet und seine Funktionalität überprüft.
Ihr Zabbix-Server ist jetzt bereit, mit Zabbix-Agents, -Sendern und -Proxys zu kommunizieren. Der nächste Schritt besteht darin, den Zabbix-Frontend zu installieren und einzurichten, das die Benutzeroberfläche für die Interaktion mit Ihrem Monitoring-System bereitstellt.
Lassen Sie uns zum nächsten Kapitel übergehen, um den Zabbix-Frontend einzurichten.
Fragen
- Welche Version von Zabbix sollte ich installieren, um Kompatibilität und Stabilität zu gewährleisten?
- Welche Zabbix-Protokolle sollten ich für die Fehlerbehebung bei gängigen Problemen überprüfen?