Zabbix Installation · 22 min read · Oct 09, 2025
So installieren und konfigurieren Sie den Zabbix-Server und -Client auf Rocky Linux 9

Zabbix ist eine kostenlose und Open-Source-Überwachungslösung für IT-Infrastrukturen wie Netzwerke, Server, virtuelle Maschinen und Cloud-Dienste. Der Kern ist in C und Java geschrieben, während das Frontend in PHP verfasst ist. Das Frontend bietet eine webbasierte Schnittstelle zur Verfolgung und Überwachung von Metriken wie Netzwerknutzung, CPU-Last, Speicherplatz usw. und sendet Benachrichtigungen basierend auf benutzerdefinierten Triggern.
Zabbix arbeitet nach dem Client/Server-Modell. Die Clients oder Agenten, die für verschiedene Betriebssysteme verfügbar sind, kontaktieren den Server, um die Daten zu senden. Für Systeme ohne Agent bietet Zabbix die Möglichkeit, generische Überwachungsprotokolle wie das Simple Network Management Protocol (SNMP) oder das Intelligent Platform Management Interface (IPMI) zu verwenden.
In diesem Tutorial lernen Sie, wie Sie den Zabbix-Server und -Client auf einem Rocky Linux 9-Server installieren.
Voraussetzungen
- Zwei Server, die Rocky Linux 9 ausführen. Einer wird als Server fungieren und der andere wird der Client sein, den wir mit dem Server überwachen werden.
- Ein Nicht-Root-Benutzer mit Sudo-Rechten.
- Ein Fully Qualified Domain Name (FQDN) wie
zabbix.example.com, der auf Ihren Server zeigt. - Ein SMTP-Konto mit einem E-Mail-Dienst wie Amazon SES oder Mailgun.
- Alles ist aktualisiert.
$ sudo dnf update - Einige essentielle Pakete sind erforderlich, damit das Tutorial und der Zabbix-Server ausgeführt werden können. Einige davon sind möglicherweise bereits auf Ihrem Server installiert.
$ sudo dnf install wget curl nano unzip yum-utils policycoreutils-python-utils -y
Schritt 1 - Firewall konfigurieren
Der erste Schritt besteht darin, die Firewall zu konfigurieren. Rocky Linux verwendet die Firewalld-Firewall. Überprüfen Sie den Status der Firewall.
$ sudo firewall-cmd --state
running
Die Firewall arbeitet mit verschiedenen Zonen, und die öffentliche Zone ist die Standardzone, die wir verwenden werden. Listen Sie alle Dienste und Ports auf, die aktiv sind.
$ sudo firewall-cmd --permanent --list-services
Es sollte die folgende Ausgabe anzeigen.
cockpit dhcpv6-client ssh
Die offenen Ports 10050 und 10051 werden vom Zabbix-Server benötigt, um sich mit dem Agenten zu verbinden.
$ sudo firewall-cmd --add-port={10051/tcp,10050/tcp} --permanent
Erlauben Sie HTTP- und HTTPS-Ports.
$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https
Überprüfen Sie den Status der Firewall erneut.
$ sudo firewall-cmd --permanent --list-all
Sie sollten eine ähnliche Ausgabe sehen.
public
target: default
icmp-block-inversion: no
interfaces:
sources:
services: cockpit dhcpv6-client http https ssh
ports: 10051/tcp 10050/tcp
protocols:
forward: yes
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
Laden Sie die Firewall neu, um die Änderungen zu aktivieren.
$ sudo firewall-cmd --reload
Schritt 2 - Setzen Sie SELinux in den permissiven Modus
Konfigurieren Sie SELinux, um im permissiven Modus zu arbeiten. In diesem Modus blockiert SELinux keinen Prozess, sondern protokolliert alles in die Audit-Protokolldatei. Wir werden dies später verwenden, um SELinux-Regeln festzulegen.
$ sudo setenforce 0 && sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config
Überprüfen Sie den SELinux-Status.
$ sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: permissive
Mode from config file: permissive
Policy MLS status: enabled
Policy deny_unknown status: allowed
Memory protection checking: actual (secure)
Max kernel policy version: 33
Schritt 3 - Nginx und PHP-Repository konfigurieren
Das Zabbix-Paket installiert automatisch PHP und Nginx. Es wird jedoch ältere Versionen davon abrufen. Daher müssen wir sicherstellen, dass der Prozess die neueste verfügbare Version installiert.
Erstellen und öffnen Sie die Datei /etc/yum.repos.d/nginx.repo zur Bearbeitung.
$ sudo nano /etc/yum.repos.d/nginx.repo
Fügen Sie den folgenden Code ein.
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
Sobald Sie fertig sind, speichern Sie die Datei, indem Sie Ctrl + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Aktivieren Sie das Nginx-Mainline-Repository.
$ sudo dnf config-manager --enable nginx-mainline
Als Nächstes müssen wir das PHP-Repository konfigurieren.
Der erste Schritt besteht darin, das Epel-Repository zu holen.
$ sudo dnf install epel-release -y
Installieren Sie als Nächstes das Remi-Repository.
$ sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm
Überprüfen Sie die verfügbaren PHP-Streams.
$ dnf module list php -y
Name Stream Profiles Summary
php 8.1 common [d], devel, minimal PHP-Skriptsprache
Remis Modular-Repository für Enterprise Linux 9 - x86_64
Name Stream Profiles Summary
php remi-7.4 common [d], devel, minimal PHP-Skriptsprache
php remi-8.0 common [d], devel, minimal PHP-Skriptsprache
php remi-8.1 common [d], devel, minimal PHP-Skriptsprache
php remi-8.2 common [d], devel, minimal PHP-Skriptsprache
php remi-8.3 common [d], devel, minimal PHP-Skriptsprache
Hinweis: [d]efault, [e]nabled, [x]disabled, [i]nstalled
Die Standardversion ist 8.1. Zum Zeitpunkt des Schreibens dieses Tutorials ist Zabbix mit PHP 8.2 kompatibel. Aktivieren Sie daher Remis PHP 8.2-Repository. Die nächste Version von Zabbix wird PHP 8.3 unterstützen, sodass Sie dies aktivieren können, wenn Ihre Zabbix-Version 6.0.26 oder höher ist.
$ sudo dnf module reset php -y
$ sudo dnf module enable php:remi-8.2
Jetzt können wir mit der Installation von Zabbix fortfahren.
Schritt 4 - Zabbix-Server installieren
Zabbix-Pakete werden standardmäßig im EPEL-Repository bereitgestellt. Bevor wir mit unserer Installation fortfahren, müssen wir sie deaktivieren. Öffnen Sie die /etc/yum.repos.d/epel.repo zur Bearbeitung und fügen Sie die folgende Zeile unter dem Abschnitt [epel] hinzu.
[epel]
...
excludepkgs=zabbix*
Speichern Sie die Datei, indem Sie Ctrl + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Die neueste Version von Zabbix ist 6.4.x, aber wir werden bei der Verwendung der LTS (Long-term support)-Version bleiben, die für eine Produktionsumgebung viel stabiler ist.
Installieren Sie das Zabbix-Repository.
$ sudo rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/9/x86_64/zabbix-release-6.0-4.el9.noarch.rpm
Entfernen Sie den gesamten RPM-Cache.
$ sudo dnf clean all
Installieren Sie den Zabbix-Server, das Frontend und den Agenten. Wir werden den PostgreSQL-Server für unsere Zwecke verwenden und benötigen daher das zabbix-web-pgsql-Paket. Wenn Sie MySQL/MariaDB/Percona-Server verwenden, müssen Sie das zabbix-web-mysql-Paket installieren.
$ sudo dnf install zabbix-server-pgsql zabbix-web-pgsql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent
Schritt 5 - PostgreSQL installieren und konfigurieren
Zabbix funktioniert mit PostgreSQL 13 und höher. Rocky Linux 9 wird standardmäßig mit PostgreSQL 13 ausgeliefert. Wir werden jedoch PostgreSQL 16 für unser Tutorial verwenden.
Installieren Sie die RPM-Datei des PostgreSQL-Repositorys.
$ sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
Deaktivieren Sie das integrierte PostgreSQL-Modul.
$ sudo dnf -qy module disable postgresql
Jetzt können Sie PostgreSQL mit dem folgenden Befehl installieren.
$ sudo dnf install -y postgresql16-server postgresql16-contrib
Initialisieren Sie die Datenbank.
$ sudo /usr/pgsql-16/bin/postgresql-16-setup initdb
Aktivieren Sie den PostgreSQL-Dienst.
$ sudo systemctl enable postgresql-16
Starten Sie den PostgreSQL-Dienst.
$ sudo systemctl start postgresql-16
Überprüfen Sie den Status des PostgreSQL-Dienstes.
$ sudo systemctl status postgresql-16
? postgresql-16.service - PostgreSQL 16-Datenbankserver
Loaded: loaded (/usr/lib/systemd/system/postgresql-16.service; enabled; preset: disabled)
Active: active (running) since Thu 2024-01-18 14:54:46 UTC; 10s ago
Docs: https://www.postgresql.org/docs/16/static/
Process: 3407 ExecStartPre=/usr/pgsql-16/bin/postgresql-16-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
Main PID: 3412 (postgres)
Tasks: 7 (limit: 24694)
Memory: 17.4M
CPU: 117ms
CGroup: /system.slice/postgresql-16.service
??3412 /usr/pgsql-16/bin/postgres -D /var/lib/pgsql/16/data/
??3413 "postgres: logger "
??3414 "postgres: checkpointer "
??3415 "postgres: background writer "
??3417 "postgres: walwriter "
??3418 "postgres: autovacuum launcher "
??3419 "postgres: logical replication launcher "
Erstellen Sie den Zabbix-Datenbankbenutzer.
$ sudo -u postgres createuser --pwprompt zabbix
Sie werden nach dem Passwort gefragt.
Enter password for new role:
Enter it again:
Erstellen Sie die Zabbix-Datenbank.
$ sudo -u postgres createdb -O zabbix zabbix
Importieren Sie das anfängliche Schema und die Datenbankdaten. Sie werden erneut nach Ihrem Passwort gefragt.
$ zcat /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix
Dieser Prozess kann einige Minuten dauern.
Öffnen Sie die Datei /etc/zabbix/zabbix_server.conf zur Bearbeitung.
$ sudo nano /etc/zabbix/zabbix_server.conf
Suchen Sie die Variable DBPassword, kommentieren Sie sie aus, indem Sie das Hash-Zeichen (#) davor entfernen, und setzen Sie ihren Wert auf das Passwort, das Sie im vorherigen Schritt gewählt haben.
DBPassword=psqlpassword
Speichern Sie die Datei, indem Sie Ctrl + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Starten und aktivieren Sie die Zabbix-Server- und Agentendienste.
$ sudo systemctl enable zabbix-server zabbix-agent --now
Schritt 6 - PHP konfigurieren
Zabbix installiert PHP- und Nginx-Konfigurationsdateien, die wir verwenden werden. Wir müssen jedoch einige Änderungen vornehmen, bevor wir sie verwenden können.
Zuerst müssen wir die Datei /etc/php-fpm.d/zabbix.conf zur Bearbeitung öffnen.
$ sudo nano /etc/php-fpm.d/zabbix.conf
Ändern Sie die Werte von user = apache und group = apache in nginx, wie unten gezeigt.
user = nginx
group = nginx
Dies liegt daran, dass wir Nginx aus seinem offiziellen Repository verwenden, das unter dem Benutzer nginx und nicht unter apache ausgeführt wird, was die Verteilungskopie von Nginx ist.
Sie können auch andere PHP-bezogene Werte bearbeiten oder hier benutzerdefinierte Definitionen hinzufügen. Sobald Sie fertig sind, speichern Sie die Datei, indem Sie Ctrl + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Starten und aktivieren Sie den PHP-FPM-Dienst.
$ sudo systemctl enable php-fpm --now
Schritt 7 - SSL installieren
Wir müssen Certbot installieren, um das SSL-Zertifikat zu generieren. Wir werden dafür den Snapd-Paketinstaller verwenden. Da Rocky Linux nicht mit ihm geliefert wird, installieren Sie den Snapd-Installer. Er benötigt das EPEL (Extra Packages for Enterprise Linux)-Repository, um zu funktionieren. Da wir es jedoch bereits in Schritt 3 installiert haben, können wir direkt fortfahren.
Installieren Sie Snapd.
$ sudo dnf install -y snapd
Aktivieren und starten Sie den Snap-Dienst.
$ sudo systemctl enable snapd --now
Installieren Sie das Snap-Core-Paket und stellen Sie sicher, dass Ihre Version von Snapd auf dem neuesten Stand ist.
$ sudo snap install core && sudo snap refresh core
Erstellen Sie die erforderlichen Links, damit Snapd funktioniert.
$ sudo ln -s /var/lib/snapd/snap /snap
$ echo 'export PATH=$PATH:/var/lib/snapd/snap/bin' | sudo tee -a /etc/profile.d/snapd.sh
Installieren Sie Certbot.
$ sudo snap install --classic certbot
Verwenden Sie den folgenden Befehl, um sicherzustellen, dass der Certbot-Befehl ausgeführt werden kann, indem Sie einen symbolischen Link zum Verzeichnis /usr/bin erstellen.
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Überprüfen Sie, ob Certbot ordnungsgemäß funktioniert.
$ certbot --version
certbot 2.8.0
Führen Sie den folgenden Befehl aus, um ein SSL-Zertifikat zu generieren.
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d zabbix.example.com
Der obige Befehl lädt ein Zertifikat in das Verzeichnis /etc/letsencrypt/live/zabbix.example.com auf Ihrem Server herunter.
Generieren Sie ein Diffie-Hellman-Gruppe-Zertifikat.
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Überprüfen Sie den Certbot-Erneuerungsplanungsdienst.
$ sudo systemctl list-timers
Sie finden snap.certbot.renew.service als einen der Dienste, die geplant sind.
NEXT LEFT LAST PASSED UNIT ACTIVATES -------------------------------------------------------------------------------------------------------------------------------------
Sat 2024-01-20 10:04:02 UTC 1min 32s left Sat 2024-01-20 08:52:11 UTC 1h 10min ago dnf-makecache.timer dnf-makecache.service
Sun 2024-01-21 00:00:00 UTC 13h left Sat 2024-01-20 00:00:10 UTC 10h ago logrotate.timer logrotate.service
Sat 2024-01-20 21:13:00 UTC 11h left Sat 2024-01-20 08:19:11 UTC 1h 43min ago snap.certbot.renew.timer snap.certbot.renew.service
Führen Sie einen Testlauf des Prozesses durch, um zu überprüfen, ob die SSL-Erneuerung einwandfrei funktioniert.
$ sudo certbot renew --dry-run
Wenn Sie keine Fehler sehen, sind Sie bereit. Ihr Zertifikat wird automatisch erneuert.
Schritt 8 - Nginx konfigurieren
Zabbix installiert eine Standard-Nginx-Konfigurationsdatei. Wir müssen sie bearbeiten, um den Code zum Aktivieren von SSL-Zertifikaten hinzuzufügen. Wir müssen auch den listen-Port ändern und den Code zum Umleiten von HTTP-Links auf HTTPS hinzufügen.
Öffnen Sie die Datei /etc/nginx/conf.d/zabbix.conf zur Bearbeitung.
$ sudo nano /etc/nginx/conf.d/zabbix.conf
Bearbeiten Sie den Code, sodass die Datei wie folgt aussieht.
server {
listen 443 ssl;
listen [::]:443 ssl;
http2 on;
root /usr/share/zabbix;
index index.php;
access_log /var/log/nginx/zabbix.access.log;
error_log /var/log/nginx/zabbix.error.log;
ssl_certificate /etc/letsencrypt/live/zabbix.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/zabbix.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/zabbix.example.com/chain.pem;
ssl_session_timeout 5m;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
location = /favicon.ico {
log_not_found off;
}
location / {
try_files $uri $uri/ =404;
}
location /assets {
access_log off;
expires 10d;
}
location ~ \.ht {
deny all;
}
location ~ /(api/|conf[^\.]|include|locale) {
deny all;
return 404;
}
location /vendor {
deny all;
return 404;
}
location ~ [^/]\.php(/|$) {
fastcgi_pass unix:/run/php-fpm/zabbix.sock;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
fastcgi_param DOCUMENT_ROOT /usr/share/zabbix;
fastcgi_param SCRIPT_FILENAME /usr/share/zabbix$fastcgi_script_name;
fastcgi_param PATH_TRANSLATED /usr/share/zabbix$fastcgi_script_name;
include fastcgi_params;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_intercept_errors on;
fastcgi_ignore_client_abort off;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
}
}
# enforce HTTPS
server {
listen 80;
listen [::]:80;
server_name zabbix.example.com;
return 301 https://$host$request_uri;
}
Sobald Sie fertig sind, speichern Sie die Datei, indem Sie Ctrl + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Öffnen Sie die Datei /etc/nginx/nginx.conf zur Bearbeitung.
$ sudo nano /etc/nginx/nginx.conf
Fügen Sie die folgende Zeile vor der Zeile include /etc/nginx/conf.d/*.conf; hinzu.
server_names_hash_bucket_size 64;
Speichern Sie die Datei, indem Sie Ctrl + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Überprüfen Sie Ihre Nginx-Konfiguration.
$ sudo nginx -t
Starten und aktivieren Sie den Nginx-Dienst.
$ sudo systemctl enable nginx --now
Schritt 9 - Zugriff auf das Zabbix-Frontend
Bevor Sie das Zabbix-Frontend installieren, setzen Sie die Berechtigung für das Verzeichnis /etc/zabbix/web, damit Nginx darauf zugreifen kann.
$ sudo chown -R nginx:nginx /etc/zabbix/web
Öffnen Sie die URL https://zabbix.example.com in Ihrem Browser und Sie erhalten den folgenden Bildschirm.

Klicken Sie auf die Schaltfläche Nächster Schritt, um die Installation von Zabbix abzuschließen. Die nächste Seite überprüft die Systemanforderungen und ob sie alle erfüllt sind.

Wenn es kein Problem gibt, klicken Sie auf die Schaltfläche Nächster Schritt, um fortzufahren. Als Nächstes werden Sie aufgefordert, Ihre Datenbankanmeldeinformationen einzugeben. Deaktivieren Sie die Option Datenbank-TLS-Verschlüsselung, da wir sie nicht konfiguriert haben.

Drücken Sie die Schaltfläche Nächster Schritt, um fortzufahren. Geben Sie den Namen Ihres Zabbix-Servers ein. Es ist jedoch optional, aber wenn es konfiguriert ist, wird es in der Menüleiste und in den Seitentiteln angezeigt.

Drücken Sie die Schaltfläche Nächster Schritt, um fortzufahren. Sie werden aufgefordert, alle Einstellungen zu bestätigen.

Wenn alles in Ordnung ist, drücken Sie die Schaltfläche Nächster Schritt, um fortzufahren. Sie sollten die Nachricht sehen, die Ihnen mitteilt, dass die Installation erfolgreich war.

Klicken Sie auf die Schaltfläche Fertigstellen, um den Prozess abzuschließen. Sie werden zur Anmeldeseite weitergeleitet.

Der Standardbenutzername ist Admin und das Passwort ist zabbix. Geben Sie die Anmeldeinformationen ein und klicken Sie auf die Schaltfläche Anmelden, um auf das Zabbix-Dashboard zuzugreifen.

Schritt 10 - SELinux konfigurieren
Aktivieren Sie den HTTP-Daemon, um eine Verbindung zu Zabbix herzustellen.
$ sudo setsebool -P httpd_can_connect_zabbix 1
Erlauben Sie Zabbix, sich mit allen TCP-Ports zu verbinden.
$ sudo setsebool -P zabbix_can_network on
Aktivieren Sie daemons_enable_cluster_mode, um Fehler des HA-Managers zu vermeiden.
$ sudo setsebool -P daemons_enable_cluster_mode on
Erstellen Sie ein benutzerdefiniertes SELinux-Richtlinienpaket mit dem Audit-Protokoll.
$ sudo grep "denied.*zabbix" /var/log/audit/audit.log | audit2allow -M zabbix_policy
****************** WICHTIG *********************
Um dieses Richtlinienpaket aktiv zu machen, führen Sie aus:
semodule -i zabbix_policy.pp
Installieren Sie das erstellte benutzerdefinierte SELinux-Richtlinienpaket.
$ sudo semodule -i zabbix_policy.pp
Führen Sie den Befehl aus, um nach Datenbankfehlern zu suchen.
$ sudo sealert -a /var/log/audit/audit.log
Es wird Ihnen viele Regeln vorschlagen, die Sie anwenden können.
Führen Sie die folgenden Befehle aus.
$ sudo ausearch -c 'php-fpm' --raw | audit2allow -M my-phpfpm
$ sudo semodule -X 300 -i my-phpfpm.pp
$ sudo ausearch -c 'zabbix_agentd' --raw | audit2allow -M my-zabbixagentd
$ sudo semodule -X 300 -i my-zabbixagentd.pp
Wenden Sie die Richtlinie an, um Nginx den Zugriff auf PostgreSQL zu ermöglichen.
$ sudo setsebool -P httpd_can_network_connect_db 1
Wenden Sie die Richtlinie an, um Verbindungen zu externen Hosts zu ermöglichen.
$ sudo setsebool -P httpd_can_network_connect 1
Setzen Sie SELinux in den Durchsetzungsmodus.
$ sudo setenforce 1 && sudo sed -i 's/^SELINUX=.*/SELINUX=enforcing/g' /etc/selinux/config
Schritt 11 - Zabbix-Agenten auf einem Remote-System installieren
Die Hauptaufgabe des Zabbix-Agenten besteht darin, Informationen vom System zu sammeln und sie an den zentralen Zabbix-Server zur Analyse zu senden. Wir werden den Agenten auf einem Rocky Linux 9-System installieren, aber Sie können dies auf jeder Distribution tun.
Schritt 11.1 - Firewall auf dem Remote-System konfigurieren
Öffnen Sie den Port 10050, um dem Zabbix-Agenten zu ermöglichen, eine Verbindung zum Server herzustellen.
$ sudo firewall-cmd --add-port=10050/tcp --permanent --zone=public
$ sudo firewall-cmd --reload
Schritt 11.2 - Zabbix-Agenten installieren
Sie müssen Schritt 4 wiederholen, mit Ausnahme der letzten Installationsanweisung. Das bedeutet, die Datei /etc/yum.repos.d/epel.repo zu bearbeiten und die folgende Zeile im Abschnitt [epel] hinzuzufügen.
[epel]
...
excludepkgs=zabbix*
Installieren Sie als Nächstes das Zabbix-Repository und bereinigen Sie den RPM-Cache.
$ sudo rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/9/x86_64/zabbix-release-6.0-4.el9.noarch.rpm
$ sudo dnf clean all
Installieren Sie den Zabbix-Agenten.
$ sudo dnf install zabbix-agent
Schritt 11.3 - Zabbix-Agenten konfigurieren
Zabbix unterstützt die zertifikatsbasierte Verschlüsselung, aber um die Einfachheit dieses Tutorials zu wahren, verwenden wir jedoch vorab geteilte Schlüssel (PSK), um die Verbindung zwischen dem Server und dem Agenten zu sichern.
Generieren Sie eine PSK-Datei.
$ sudo sh -c "openssl rand -hex 32 > /etc/zabbix/zabbix_agentd.psk"
Zeigen Sie den Schlüssel zum Kopieren an.
$ cat /etc/zabbix/zabbix_agentd.psk
797c84746dfe86f71b0f207785906d2bb886be27149b296d86df6b1ec9de6bbe
Kopieren Sie diesen Schlüssel, da wir ihn später benötigen.
Der Zabbix-Agent speichert seine Konfiguration in der Datei /etc/zabbix/zabbix-agentd.conf. Öffnen Sie sie zur Bearbeitung.
$ sudo nano /etc/zabbix/zabbix_agentd.conf
Kommentieren Sie die folgenden Variablen aus und aktualisieren Sie deren Werte wie unten gezeigt.
Server=
ServerActive=
HostMetadata=ZabbixLinuxClient
Hostname=zabbixclient.example.com
Geben Sie die IP-Adresse Ihres Zabbix-Servers als Wert für die Variablen Server und ServerActive an. Die Variable HostMetadata kann alles sein, was Sie verwenden können, um das System zu identifizieren. Sie wird auch im Auto-Registrierungsprozess im Zabbix-Frontend verwendet, über den wir später sprechen werden. Der Hostname-Eintrag bezieht sich auf den System-Hostnamen des Zabbix-Agentenknotens.
Sie können den Hostnamen mit dem folgenden Befehl herausfinden.
$ cat /etc/hostname
Suchen Sie als Nächstes den Abschnitt, der eine sichere Verbindung zwischen dem Server und dem Agenten konfiguriert. Suchen Sie die Variable TLSConnect und ändern Sie ihren Wert von unencrypted in psk, wie unten gezeigt.
...
### Option: TLSConnect
# Wie der Agent eine Verbindung zum Server oder Proxy herstellen soll. Wird für aktive Überprüfungen verwendet.
# Es kann nur ein Wert angegeben werden:
# unencrypted - Verbindung ohne Verschlüsselung herstellen
# psk - Verbindung mit TLS und einem vorab geteilten Schlüssel herstellen
# cert - Verbindung mit TLS und einem Zertifikat herstellen
#
# Pflicht: ja, wenn TLS-Zertifikat oder PSK-Parameter definiert sind (auch für 'unencrypted' Verbindung)
# Standard:
# TLSConnect=psk
...
Suchen Sie als Nächstes den Abschnitt TLSAccept und ändern Sie dessen Wert in psk, wie unten gezeigt.
...
### Option: TLSAccept
# Welche eingehenden Verbindungen akzeptiert werden sollen.
# Mehrere Werte können angegeben werden, durch Komma getrennt:
# unencrypted - Verbindungen ohne Verschlüsselung akzeptieren
# psk - Verbindungen akzeptieren, die mit TLS und einem vorab geteilten Schlüssel gesichert sind
# cert - Verbindungen akzeptieren, die mit TLS und einem Zertifikat gesichert sind
#
# Pflicht: ja, wenn TLS-Zertifikat oder PSK-Parameter definiert sind (auch für 'unencrypted' Verbindung)
# Standard:
# TLSAccept=psk
...
Suchen Sie als Nächstes den Abschnitt TLSPSKIdentity und ändern Sie dessen Wert in PSK 001, wie gezeigt.
...
### Option: TLSPSKIdentity
# Eindeutiger, großgeschriebener String, der verwendet wird, um den vorab geteilten Schlüssel zu identifizieren.
#
# Pflicht: nein
# Standard:
# TLSPSKIdentity=PSK 001
...
Dies ist die PSK-ID, die Sie verwenden werden, um den Host über das Zabbix-Webfrontend hinzuzufügen.
Schließlich suchen Sie den Abschnitt TLSPSKFile und ändern Sie dessen Wert in den Speicherort der PSK-Datei, wie gezeigt.
...
### Option: TLSPSKFile
# Vollständiger Pfadname einer Datei, die den vorab geteilten Schlüssel enthält.
#
# Pflicht: nein
# Standard:
# TLSPSKFile=/etc/zabbix/zabbix_agentd.psk
...
Sobald Sie fertig sind, speichern Sie die Datei, indem Sie Ctrl + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Schritt 11.4 - Zabbix-Agenten starten
Starten und aktivieren Sie den Zabbix-Agentendienst.
$ sudo systemctl enable zabbix-agent --now
Schritt 12 - Fügen Sie den Zabbix-Client zum Zabbix-Frontend zur Überwachung hinzu
Wir können einen neuen Host zu den bereits definierten Hostgruppen hinzufügen oder eine neue Hostgruppe erstellen. Hostgruppen ermöglichen es Ihnen, die Arten von Knoten, die Sie überwachen, zu kategorisieren. Um eine neue Hostgruppe zu erstellen, öffnen Sie die Option Hostgruppen im Menü Konfiguration.
Fügen Sie den Namen der Gruppe in das Feld ein und klicken Sie auf die Schaltfläche Übernehmen, um die Gruppe zu erstellen.
Um einen neuen Host zu erstellen, klicken Sie auf die Option Hosts im Menü Konfiguration und klicken Sie auf die Schaltfläche Host erstellen oben rechts.

Fügen Sie den Hostnamen des Zabbix-Knotens hinzu.
Geben Sie Linux by Zabbix agent im Abschnitt Vorlagen ein und wählen Sie die Vorlage aus dem Dropdown-Menü aus.
Geben Sie ebenfalls Linux-Server im Abschnitt Gruppen ein und wählen Sie es aus.
Klicken Sie auf die Schaltfläche Hinzufügen im Abschnitt Schnittstellen und wählen Sie Agent aus.
Fügen Sie dann die IP-Adresse des Zabbix-Clientknotens hinzu. Sobald Sie fertig sind, sollte das vollständige Popup Neuer Host wie folgt aussehen.

Wechseln Sie als Nächstes zur Registerkarte Verschlüsselung. Wählen Sie PSK für die Optionen Verbindungen zum Host und Verbindungen vom Host aus. Setzen Sie die PSK-ID auf PSK 001, was der Wert ist, den wir in Schritt 11.3 für die Variable TLSPSKIdentity festgelegt haben. Setzen Sie dann den PSK-Wert auf den Schlüssel, den Sie zuvor auf der Agentenmaschine generiert haben.

Sobald Sie fertig sind, klicken Sie auf die Schaltfläche Hinzufügen, um den Host hinzuzufügen.
Sie sollten den neuen Host in der Liste mit einem grünen Label sehen, das anzeigt, dass der Agent mit dem Server verbunden ist und wie erwartet funktioniert.

Schritt 13 - E-Mail-Benachrichtigungen konfigurieren
Zabbix unterstützt viele Arten von Benachrichtigungen wie E-Mail, Slack, Telegram, SMS usw. Für die Zwecke unseres Tutorials werden wir E-Mail-Benachrichtigungen konfigurieren. Besuchen Sie das Zabbix-Frontend, klicken Sie auf Verwaltung und dann auf Medientypen im linken Menü. Sie sehen zwei E-Mail-Typen, einen für Text-E-Mails und den anderen für HTML-E-Mails.

Klicken Sie auf die Option E-Mail (HTML) und Sie erhalten die folgende Seite.

Geben Sie die Details Ihres SMTP-Servers ein. Für unser Tutorial verwenden wir den Amazon SES-Dienst. Klicken Sie auf die Schaltfläche Aktualisieren, wenn Sie fertig sind, um die Details zu speichern. Sie werden zurück zur Seite Medientypen geleitet. Klicken Sie auf die Schaltfläche Test, um die E-Mail-Einstellungen zu testen. Es wird ein Popup erstellt. Geben Sie Ihre E-Mail-Adresse ein und klicken Sie auf die Schaltfläche Test, um eine Test-E-Mail zu senden.

Sie sollten eine erfolgreiche Nachricht im Popup sehen, die Ihnen mitteilt, dass es gut funktioniert hat, und Sie sollten die folgende E-Mail in Ihrem Posteingang erhalten. Schließen Sie das Popup, indem Sie auf die Schaltfläche Abbrechen klicken.

Schritt 14 - Erstellen Sie einen neuen Benutzer
Der Standardbenutzer von Zabbix ist nicht konfiguriert, um eine Art von Benachrichtigung zu erhalten. Während wir dies tun können, ist der Standardbenutzer auch unsicher zu verwenden. Die beste Option ist, einen neuen Benutzer zu erstellen und dann den Standardbenutzer zu deaktivieren.
Besuchen Sie den Abschnitt Verwaltung >> Benutzer im Menü und klicken Sie auf die Schaltfläche Benutzer erstellen oben rechts, um die folgende Seite zu öffnen.

Füllen Sie die Benutzerdetails aus. Wählen Sie Zabbix-Administratoren als Benutzergruppe aus. Klicken Sie, wenn Sie fertig sind, auf die Registerkarte Medien. Klicken Sie auf die Schaltfläche Hinzufügen und wählen Sie E-Mail (HTML) als Typ aus.

Geben Sie Ihre E-Mail-Adresse im Feld Senden an ein und klicken Sie auf die Schaltfläche Hinzufügen, um die E-Mail-Option hinzuzufügen. Wechseln Sie als Nächstes zur Registerkarte Berechtigungen und klicken Sie auf die Schaltfläche Auswählen, um die Super-Admin-Rolle hinzuzufügen.

Klicken Sie auf die Schaltfläche Hinzufügen, um den Benutzer hinzuzufügen. Als Nächstes müssen Sie sich vom Frontend abmelden, sich erneut als neuer Benutzer anmelden und zur Benutzerseite zurückkehren. Klicken Sie auf den Benutzer Admin, wählen Sie die Gruppe Deaktiviert aus und aktualisieren Sie den Benutzer. Dadurch wird der Standardbenutzer deaktiviert.
Schritt 15 - Senden Sie einen Testalarm
Standardmäßig verfolgt Zabbix die Menge an freiem Speicherplatz auf dem Server. Es erkennt alle Festplatteneinbindungen und führt regelmäßig Überprüfungen durch.
Der erste Schritt besteht darin, den Benachrichtigungs-Trigger zu aktivieren, der es Zabbix ermöglicht, Benachrichtigungen an alle Administratoren zu senden. Zabbix hat den Standard-Trigger bereits konfiguriert. Wir müssen ihn aktivieren, damit er funktioniert. Besuchen Sie Konfiguration >> Aktionen >> Triggeraktionen und klicken Sie auf den Status Deaktiviert, um ihn in Aktiviert zu ändern, wie gezeigt.

Melden Sie sich als Nächstes am Zabbix-Knoten an und erstellen Sie eine temporäre Datei, die groß genug ist, um einen Alarm für die Festplattenspeicherung auszulösen.
Bestimmen Sie zuerst den freien Speicherplatz auf dem Server.
$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 780M 51M 730M 7% /run
/dev/vda2 94G 12G 78G 13% /
/dev/vda1 260M 7.0M 253M 3% /boot/efi
tmpfs 390M 4.0K 390M 1% /run/user/1001
Dies zeigt, dass wir etwa 78 GB freien Speicherplatz haben. Verwenden Sie als Nächstes den Befehl fallocate, um mehr als 80 % des Speicherplatzes vorab zuzuweisen. Es ist groß genug, um den Alarm auszulösen.
$ fallocate -l 74G /tmp/temp.img
Überprüfen Sie die Festplattenspeicherung erneut.
$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 780M 54M 726M 7% /run
/dev/vda2 94G 86G 3.9G 96% /
/dev/vda1 260M 7.0M 253M 3% /boot/efi
tmpfs 390M 4.0K 390M 1% /run/user/1001
Zabbix wird einen Alarm über den Speicherplatz auslösen und eine E-Mail-Benachrichtigung darüber senden. Die E-Mail wird wie folgt aussehen.

Sie können auch das Dashboard für den Alarm überprüfen, der innerhalb von Sekunden erscheinen sollte.

Löschen Sie die temporäre Datei, wenn Sie fertig sind.
$ rm -f /tmp/temp.img
Sie sollten eine weitere E-Mail erhalten, die Ihnen mitteilt, dass das Problem behoben wurde.

Schritt 16 - Automatische Registrierung für Linux-Knoten konfigurieren
Wenn Sie mehrere Knoten zum Zabbix-Server hinzufügen müssen, kann der Prozess etwas mühsam werden. Glücklicherweise ermöglicht das Zabbix-Frontend, den Prozess mithilfe der automatischen Registrierung zu automatisieren.
Besuchen Sie Aktionen >> Autoregistrierungsaktionen und klicken Sie auf die Schaltfläche Aktion erstellen oben rechts.

Sobald Sie auf dem neuen Bildschirm sind, geben Sie der Aktion einen Namen (Automatische Registrierung von Linux-Servern).
Klicken Sie auf die Schaltfläche Hinzufügen unter Bedingungen, um eine Bedingung hinzuzufügen, und wählen Sie Host-Metadaten als Typ, enthält als Operator und Linux als Wert.

Klicken Sie auf Hinzufügen, um fortzufahren, und die Seite zur Erstellung der Aktion sollte wie folgt aussehen.

Klicken Sie auf die Registerkarte Operationen, wählen Sie Zu Hostgruppe hinzufügen als Operation aus und wählen Sie Linux-Server als Hostgruppen aus. Klicken Sie auf die Schaltfläche Hinzufügen, um den Vorgang abzuschließen.

Wenn Sie PSK-Verschlüsselung verwenden möchten, können Sie dies ebenfalls konfigurieren. Besuchen Sie das Menü Verwaltung >> Allgemein >> Autoregistrierung und aktivieren Sie beide Verschlüsselungsoptionen. Geben Sie eine PSK-ID und einen PSK-Schlüssel ein, die auf dem Zabbix-Server erstellt wurden. Sie können diese PSK-ID und den Schlüssel auf jedem Knoten verwenden, und sie werden mit diesen Werten verschlüsselt.

Von nun an wird jeder Zeitpunkt, zu dem Sie den Zabbix-Agenten auf einem Linux-Server installieren und konfigurieren, automatisch zum Zabbix-Frontend hinzugefügt.
Fazit
Damit endet unser Tutorial zur Installation und Konfiguration eines Zabbix-Servers auf einem Rocky Linux 9-System. Wir haben auch einen Zabbix-Agenten auf einem Remote-Server installiert, um eine Verbindung zum Server herzustellen. Wenn Sie Fragen haben, posten Sie diese in den Kommentaren unten.
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.