- 8 Bekannte Probleme
- Bekannte Probleme in 7.0.20
- Upgrade
- Vorlagen
- Versehentliche Installation von EPEL-Zabbix-Paketen
- Zabbix-Pakete für RHEL in Red Hat UBI-Umgebungen
- Abgelaufener Signaturschlüssel für RHEL-Pakete
- Datenbank-TLS-Verbindung mit MariaDB
- Mögliche Deadlocks mit MySQL/MariaDB
- Globale Ereigniskorrelation
- Numerischer (Float-)Datentypbereich mit PostgreSQL 11 und früher
- NetBSD 8.0 und neuer
- Einschränkungen regulärer Ausdrücke in Zabbix Agent 2
- IPMI-Prüfungen
- IPMI — nicht vertrauenswürdige Hosts können OpenIPMI zum Absturz bringen
- SSH-Prüfungen
- ODBC-Prüfungen
- Falscher Parameter für die Anfragemethode in Datenpunkten
- Web-Überwachung und HTTP-Agent
- Einfache Prüfungen
- Fehler bei der Ausführung von fping in rootless-Containern
- SNMP-Prüfungen
- SNMP-Datenspitzen
- SNMP-Traps
- Absturz des Alerter-Prozesses in RHEL 7
- Upgrade von Zabbix Agent 2 (6.0.5 oder älter)
- Wechselnde Frontend-Gebietsschemas
- Diagramme
- Überwachung von Protokolldateien
- Langsame MySQL-Abfragen
- Langsame Konfigurationssynchronisierung mit Oracle
- Persistente Filtereinstellungen aus Links
- Problem mit IPv6-Adressen in SNMPv3-Traps
- Gekürzte lange IPv6-IP-Adresse in Informationen zu fehlgeschlagenen Anmeldungen
- Zabbix-Agent-Prüfungen unter Windows
- YAML-Export/-Import
- Einrichtungsassistent unter SUSE mit NGINX und php-fpm
- Weiterleitung des Authorization-Headers
- Chromium für den Zabbix-Web-Service unter Ubuntu 20
- Benutzerdefinierte MySQL-Fehlercodes
- Ungültige reguläre Ausdrücke nach dem Wechsel zu PCRE2
- Geomap-Widget-Fehler
- Vorverarbeitung — globale Variablen sind unsicher
- Server-Absturz mit TimescaleDB nach dem Upgrade von 7.0
- Datenbank-Wiederherstellungsfehler mit PostgreSQL/TimescaleDB nach Upgrade von 7.0.0-7.0.4
- Prozessorguppen unter Windows
- Einschränkungen beim Filtern mit utf8mb4-Collations
- Falsche Informationen aus verschachtelten Host-Gruppen in Karten
- Defekte LLD-Regel-Overrides in 7.0.7
- Leistungsproblem des Preprocessing-Managers in Zabbix 7.0.14
- Makrofunktionen
- Zugriff auf UI-Elemente mit MariaDB 10.5.1-10.5.9
- Profiling übermäßiger Speichernutzung mit tcmalloc
- MySQL 8.0 Group Replication im Multi-Primary-Modus
8 Bekannte Probleme
Siehe auch: Kompilierungsprobleme.
Bekannte Probleme in 7.0.20
Von einem Upgrade auf diese Version wird abgeraten, da:
- es zu plötzlichen CPU-Spitzen kommen kann, wenn Sie das Zabbix agent 2 MySQL-Plugin verwenden (siehe ZBX-27156)
- bei Diagrammen für aktive Zabbix-Agent-Datenpunkte eine Warnung "Undefined array key" angezeigt wird, verursacht durch einen Fehler mit einem undefinierten Index (siehe ZBX-27153)
Upgrade
SQL-Modus-Einstellung für ein erfolgreiches Upgrade
Die Einstellung sql_mode in MySQL/MariaDB muss den Modus "STRICT_TRANS_TABLES" gesetzt haben.
Falls dieser fehlt, schlägt das Upgrade der Zabbix-Datenbank fehl (siehe auch ZBX-19435).
Upgrade mit MariaDB 10.2.1 und früher
Das Upgrade von Zabbix kann fehlschlagen, wenn Datenbanktabellen mit MariaDB 10.2.1 oder früher erstellt wurden, da in diesen Versionen das Standard-Zeilenformat compact ist. Dies kann behoben werden, indem das Zeilenformat auf dynamic geändert wird (siehe auch ZBX-17690).
Vorlagen
Vorlagenkompatibilität in Dual-Stack-Umgebungen (IPv4/IPv6)
In Dual-Stack-Umgebungen (Systeme, die sowohl IPv4 als auch IPv6 unterstützen) wird der Hostname localhost in der Regel sowohl in IPv4- als auch in IPv6-Adressen aufgelöst.
Aufgrund der bei vielen Betriebssystemen und DNS-Resolvern üblichen Priorisierung von IPv6 gegenüber IPv4 funktionieren Zabbix Vorlagen möglicherweise nicht korrekt, wenn der überwachte Dienst so konfiguriert ist, dass er nur auf IPv4 lauscht.
Dienste, die nicht für das Lauschen auf IPv6-Adressen konfiguriert sind, können unerreichbar werden, was zu Überwachungsfehlern führt. Benutzer konfigurieren den Zugriff möglicherweise korrekt für IPv4, haben aber dennoch Verbindungsprobleme, weil standardmäßig IPv6 priorisiert wird.
Eine mögliche Umgehung besteht darin, sicherzustellen, dass die Dienste (Nginx, Apache, PostgreSQL usw.) so konfiguriert sind, dass sie sowohl auf IPv4- als auch auf IPv6-Adressen lauschen, und dass der Zabbix Server/Agent über IPv6 zugreifen darf.
Verwenden Sie außerdem in Zabbix Vorlagen und Konfigurationen ausdrücklich localhost anstelle von 127.0.0.1, um die Kompatibilität mit IPv4 und IPv6 sicherzustellen.
Zum Beispiel müssen Sie beim Überwachen von PostgreSQL mit der Vorlage PostgreSQL by Zabbix agent 2 möglicherweise die Datei pg_hba.conf bearbeiten, um Verbindungen für den Benutzer zbx_monitor zuzulassen.
Wenn in der Dual-Stack-Umgebung IPv6 priorisiert wird (das System löst localhost zu ::1 auf) und Sie localhost konfigurieren, aber nur einen IPv4-Eintrag (127.0.0.1/32) hinzufügen, schlägt die Verbindung fehl, weil kein passender IPv6-Eintrag vorhanden ist.
Das folgende Beispiel für die Datei pg_hba.conf stellt sicher, dass sich der Benutzer zbx_monitor von der lokalen Maschine aus mit unterschiedlichen Authentifizierungsmethoden über IPv4 und IPv6 mit jeder Datenbank verbinden kann:
# TYPE DATABASE USER ADDRESS METHOD
host all zbx_monitor localhost trust
host all zbx_monitor 127.0.0.1/32 md5
host all zbx_monitor ::1/128 scram-sha-256
Falls erforderlich, können Sie bei der Konfiguration des Makros der Vorlage PostgreSQL by Zabbix agent 2 für die Verbindungszeichenfolge auch direkt die IPv4-Adresse (127.0.0.1) verwenden.
Versehentliche Installation von EPEL-Zabbix-Paketen
Wenn das EPEL-Repository installiert und aktiviert ist, kann die Installation von Zabbix-Paketen dazu führen, dass EPEL-Versionen anstelle der offiziellen Zabbix-Pakete installiert werden. So beheben Sie das Problem:
1. Entfernen Sie alle Zabbix-Pakete, die aus EPEL installiert wurden:
dnf remove zabbix-server-mysql
2. Schließen Sie Zabbix-Pakete aus EPEL aus, indem Sie die folgende Zeile zur Datei /etc/yum.repos.d/epel.repo hinzufügen:
[epel]
...
excludepkgs=zabbix*
3.\ Installieren Sie das offizielle Zabbix-Server-Paket erneut:
dnf install zabbix-server-mysql
Während der Installation enthalten offizielle Zabbix-Pakete das Wort release in ihrer Versionszeichenfolge (z. B. 7.0.0-release1.el8), wodurch sie sich von EPEL-Paketen unterscheiden.
Zabbix-Pakete für RHEL in Red Hat UBI-Umgebungen
Beim Installieren von Zabbix aus Red Hat Enterprise Linux-Paketen in Red Hat Universal Base Image-Umgebungen müssen Sie sicherstellen, dass Zugriff auf die erforderlichen Repositories und Abhängigkeiten besteht.
Zabbix-Pakete hängen von den Bibliotheken libOpenIPMI.so und libOpenIPMIposix.so ab, die von keinem Paket in den standardmäßig auf UBI-Systemen aktivierten Paketmanager-Repositories bereitgestellt werden und daher zu Installationsfehlern führen.
Die Bibliotheken libOpenIPMI.so und libOpenIPMIposix.so sind im Paket OpenIPMI-libs verfügbar, das vom Repository redhat-#-for-<arch>-appstream-rpms bereitgestellt wird.
Der Zugriff auf dieses Repository wird durch Abonnements gesteuert, die in UBI-Umgebungen durch das Einbinden der Verzeichnisstrukturen für Repository-Konfiguration und Secrets des RHEL-Hosts in den Container-Dateisystem-Namespace weitergegeben werden.
Weitere Informationen finden Sie unter ZBX-24291.
Abgelaufener Signaturschlüssel für RHEL-Pakete
Beim Upgrade von Zabbix auf Red Hat Enterprise Linux oder dessen Derivaten kann ein Problem mit einem abgelaufenen Signaturschlüssel für Pakete im Zabbix-Repository auftreten. Wenn ein Signaturschlüssel abläuft, führen Versuche, Paket-Signaturen zu überprüfen, zu einem Fehler, der darauf hinweist, dass das Zertifikat oder der Schlüssel nicht mehr gültig ist. Zum Beispiel:
error: Verifying a signature using certificate D9AA84C2B617479C6E4FCF4D19F2475308EFA7DD (Zabbix LLC (Jul 2022) <[email protected]>):
1. Certificate 19F2475308EFA7DD invalid: certificate is not alive
because: The primary key is not live
because: Expired on 2024-07-04T11:41:23Z
2. Key 19F2475308EFA7DD invalid: key is not alive
because: The primary key is not live
because: Expired on 2024-07-04T11:41:23Z
Um solche Probleme zu beheben, installieren Sie das neueste zabbix-release-Paket für Ihre spezifische RHEL-Variante manuell neu (ersetzen Sie den untenstehenden Link durch den passenden aus dem Zabbix-Repository).
Beispielsweise führen Sie auf RHEL 9 Folgendes aus:
rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rhel/9/x86_64/zabbix-release-latest.el9.noarch.rpm
Aktualisieren Sie anschließend die Repository-Informationen:
dnf update
Weitere Informationen finden Sie unter ZBX-24761.
Datenbank-TLS-Verbindung mit MariaDB
Die Datenbank-TLS-Verbindung wird mit der Option 'verify_ca' für den DBTLSConnect Parameter nicht unterstützt, wenn MariaDB verwendet wird.
Mögliche Deadlocks mit MySQL/MariaDB
Bei Betrieb unter hoher Last und wenn mehr als ein LLD-Worker beteiligt ist, kann es zu einem Deadlock kommen, der durch einen InnoDB-Fehler im Zusammenhang mit der Strategie zur Sperrung von Zeilen verursacht wird (siehe upstream bug). Der Fehler wurde in MySQL ab Version 8.0.29 behoben, jedoch nicht in MariaDB. Weitere Details finden Sie unter ZBX-21506.
Globale Ereigniskorrelation
Ereignisse werden möglicherweise nicht korrekt korreliert, wenn das Zeitintervall zwischen dem ersten und dem zweiten Ereignis sehr klein ist, d. h. eine halbe Sekunde oder weniger.
Numerischer (Float-)Datentypbereich mit PostgreSQL 11 und früher
PostgreSQL 11 und frühere Versionen unterstützen nur einen Bereich von Gleitkommawerten von ungefähr -1.34E-154 bis 1.34E+154.
NetBSD 8.0 und neuer
Verschiedene Zabbix-Prozesse können auf NetBSD-Versionen 8.X und 9.X beim Start zufällig abstürzen. Dies ist auf die zu kleine Standard-Stackgröße (4 MB) zurückzuführen, die durch Ausführen von Folgendem erhöht werden muss:
ulimit -s 10240
Weitere Informationen finden Sie im zugehörigen Problembericht: ZBX-18275.
Einschränkungen regulärer Ausdrücke in Zabbix Agent 2
Zabbix Agent 2 unterstützt aufgrund der Einschränkungen der standardmäßigen Go-regexp-Bibliothek keine Lookaheads und Lookbehinds in regulären Ausdrücken.
IPMI-Prüfungen
IPMI-Prüfungen funktionieren nicht mit dem standardmäßigen OpenIPMI-Bibliothekspaket unter Debian vor 9 (stretch) und Ubuntu vor 16.04 (xenial). Um dies zu beheben, kompilieren Sie die OpenIPMI-Bibliothek mit aktivierter OpenSSL-Unterstützung neu, wie in ZBX-6139 beschrieben.
IPMI — nicht vertrauenswürdige Hosts können OpenIPMI zum Absturz bringen
Es gibt einen Fehler in der von Zabbix für das Abrufen von IPMI-Daten verwendeten OpenIPMI-Bibliothek, der durch speziell präparierte Antworten eines nicht vertrauenswürdigen Geräts ausgelöst werden kann.
Ein nicht vertrauenswürdiges IPMI-Gerät kann präparierte Daten senden, die dazu führen, dass die OpenIPMI-Bibliothek abstürzt, was wiederum dazu führen kann, dass der Zabbix-Serverprozess, der das IPMI-Polling durchführt, beendet wird.
SSH-Prüfungen
- Einige Linux-Distributionen wie Debian und Ubuntu unterstützen keine verschlüsselten privaten Schlüssel (mit Passphrase), wenn die Bibliothek libssh2 aus Paketen installiert wurde. Weitere Details finden Sie unter ZBX-4850.
- Bei Verwendung von libssh 0.9.x auf einigen Linux-Distributionen mit OpenSSH 8 können SSH-Prüfungen gelegentlich „Cannot read data from SSH server“ melden. Dies wird durch ein libssh-Problem verursacht (ausführlicherer Bericht). Es wird erwartet, dass der Fehler mit der stabilen Veröffentlichung von libssh 0.9.5 behoben wurde. Siehe auch ZBX-17756 für Details.
- Die Verwendung der Pipe „|“ im SSH-Skript kann zu einem Fehler „Cannot read data from SSH server“ führen. In diesem Fall wird empfohlen, die Version der libssh-Bibliothek zu aktualisieren. Siehe auch ZBX-21337 für Details.
ODBC-Prüfungen
-
Der MySQL unixODBC-Treiber sollte nicht mit einem Zabbix Server oder einem Zabbix Proxy verwendet werden, der gegen die MariaDB-Connector-Bibliothek kompiliert wurde, und umgekehrt. Wenn möglich, ist es außerdem besser, denselben Connector wie den Treiber zu vermeiden, da ein Upstream-Fehler vorliegt. Empfohlene Konfiguration:
PostgreSQL-, SQLite- oder Oracle-Connector → MariaDB- oder MySQL-unixODBC-Treiber
MariaDB-Connector → MariaDB-unixODBC-Treiber
MySQL-Connector → MySQL-unixODBC-TreiberWeitere Informationen und verfügbare Workarounds finden Sie unter ZBX-7665.
-
Von Microsoft SQL Server abgefragte XML-Daten können unter Linux- und UNIX-Systemen auf verschiedene Weise abgeschnitten werden.
-
Es wurde beobachtet, dass die Verwendung von ODBC-Prüfungen zur Überwachung von Oracle-Datenbanken mit verschiedenen Versionen des Oracle Instant Client für Linux dazu führt, dass der Zabbix Server abstürzt.
Siehe auch: ZBX-18402, ZBX-20803. -
Wenn Sie den FreeTDS-UnixODBC-Treiber verwenden, müssen Sie einer SQL-Abfrage eine Anweisung 'SET NOCOUNT ON' voranstellen (zum Beispiel
SET NOCOUNT ON DECLARE @strsql NVARCHAR(max) SET @strsql = ....). Andernfalls kann das Datenbanküberwachungs-Datenpunkt in Zabbix die Informationen nicht abrufen und meldet den Fehler "SQL query returned empty result".
Weitere Informationen finden Sie unter ZBX-19917.
Falscher Parameter für die Anfragemethode in Datenpunkten
Der Parameter für die Anfragemethode, der nur in HTTP-Prüfungen verwendet wird, kann infolge eines Upgrades von einer Zabbix-Version vor 4.0 fälschlicherweise auf „1“ gesetzt sein, einen Nicht-Standardwert für alle Datenpunkte. Einzelheiten zur Behebung dieser Situation finden Sie unter ZBX-19308.
Web-Überwachung und HTTP-Agent
Der Zabbix Server verliert auf einigen Linux-Distributionen aufgrund eines Upstream-Fehlers Speicher, wenn „SSL verify peer“ in Webszenarien oder im HTTP-Agent aktiviert ist. Weitere Informationen und verfügbare Behelfslösungen finden Sie unter ZBX-10486.
Einfache Prüfungen
In fping-Versionen vor v3.10 gibt es einen Fehler, durch den doppelte Echo-Reply-Pakete falsch verarbeitet werden.
Dies kann zu unerwarteten Ergebnissen bei den Datenpunkten icmpping, icmppingloss, icmppingsec führen.
Es wird empfohlen, die neueste Version von fping zu verwenden.
Weitere Informationen finden Sie unter ZBX-11726.
Fehler bei der Ausführung von fping in rootless-Containern
Wenn Container im rootless-Modus oder in einer Umgebung mit spezifischen Einschränkungen ausgeführt werden, können bei der Durchführung von ICMP-Prüfungen Fehler im Zusammenhang mit der Ausführung von fping auftreten, z. B. fping: Operation not permitted oder der Verlust aller Pakete an alle Ressourcen.
Um dieses Problem zu beheben, fügen Sie --cap-add=net_raw zu den Befehlen „docker run“ oder „podman run“ hinzu.
Zusätzlich kann die Ausführung von fping in Nicht-Root-Umgebungen eine sysctl-Änderung erfordern, z. B.:
sudo sysctl -w "net.ipv4.ping_group_range=0 1995"
wobei „1995“ die zabbix-GID ist. Weitere Details finden Sie unter ZBX-22833.
SNMP-Prüfungen
Wenn das Betriebssystem OpenBSD verwendet wird, kann ein Use-after-free-Fehler in der Net-SNMP-Bibliothek bis einschließlich Version 5.7.3 einen Absturz des Zabbix Server verursachen, wenn der Parameter SourceIP in der Konfigurationsdatei des Zabbix Server gesetzt ist. Als Behelfslösung setzen Sie bitte den Parameter SourceIP nicht. Dasselbe Problem betrifft auch Linux, führt dort jedoch nicht dazu, dass der Zabbix Server nicht mehr funktioniert. Ein lokaler Patch für das net-snmp-Paket unter OpenBSD wurde angewendet und wird mit OpenBSD 6.3 veröffentlicht.
SNMP-Datenspitzen
Es wurden Spitzen in SNMP-Daten beobachtet, die mit bestimmten physischen Faktoren wie Spannungsspitzen im Stromnetz zusammenhängen können. Siehe ZBX-14318 für weitere Details.
SNMP-Traps
Das Paket "net-snmp-perl", das für SNMP-Traps benötigt wird, wurde in RHEL 8.0-8.2 entfernt und in RHEL 8.3 wieder hinzugefügt.
Wenn Sie also RHEL 8.0-8.2 verwenden, ist die beste Lösung ein Upgrade auf RHEL 8.3.
Weitere Informationen finden Sie auch unter ZBX-17192.
Absturz des Alerter-Prozesses in RHEL 7
In RHEL 7 wurden Fälle eines Absturzes des Alerter-Prozesses eines Zabbix-Servers festgestellt. Weitere Informationen finden Sie unter ZBX-10461.
Upgrade von Zabbix Agent 2 (6.0.5 oder älter)
Beim Upgrade von Zabbix Agent 2 (Version 6.0.5 oder älter) aus Paketen kann ein pluginbezogener Dateikonfliktfehler auftreten. Um den Fehler zu beheben, sichern Sie Ihre Agent-2-Konfiguration (falls erforderlich), deinstallieren Sie Agent 2 und installieren Sie ihn erneut.
Führen Sie auf RHEL-basierten Systemen Folgendes aus:
dnf remove zabbix-agent2
dnf install zabbix-agent2
Führen Sie auf Debian-basierten Systemen Folgendes aus:
apt remove zabbix-agent2
apt install zabbix-agent2
Weitere Informationen finden Sie unter ZBX-23250.
Wechselnde Frontend-Gebietsschemas
Es wurde beobachtet, dass Frontend-Gebietsschemas scheinbar ohne erkennbare Logik wechseln, d. h. einige Seiten (oder Teile von Seiten) werden in einer Sprache angezeigt, während andere Seiten (oder Teile von Seiten) in einer anderen Sprache angezeigt werden. Typischerweise kann das Problem auftreten, wenn es mehrere Benutzer gibt, von denen einige ein Gebietsschema verwenden, während andere ein anderes verwenden.
Eine bekannte Behelfslösung besteht darin, Multithreading in PHP und Apache zu deaktivieren.
Das Problem hängt damit zusammen, wie das Setzen des Gebietsschemas in PHP funktioniert: Informationen zum Gebietsschema werden pro Prozess und nicht pro Thread verwaltet. In einer Multithreading-Umgebung ist es daher möglich, dass bei mehreren Projekten, die im selben Apache-Prozess ausgeführt werden, das Gebietsschema in einem anderen Thread geändert wird und dies beeinflusst, wie Daten im Zabbix-Thread verarbeitet werden.
Weitere Informationen finden Sie in den zugehörigen Problemberichten:
- ZBX-10911 (Problem mit wechselnden Frontend-Gebietsschemas)
- ZBX-16297 (Problem bei der Zahlenverarbeitung in Diagrammen bei Verwendung der
bcdiv-Funktion aus den BC-Math-Funktionen)
Diagramme
Probleme mit Diagrammen (klassisch)
Wenn Probleme mit klassischen Diagrammen auftreten, wird empfohlen, die GD-Bibliothek (libgd) auf Version 2.3.3-13 oder höher und PHP auf Version 8.0.19, 8.1.33, 8.2.29, 8.3.25, 8.4.12 oder höher zu aktualisieren.
Sommerzeit
Änderungen durch die Sommerzeit (DST) führen zu Unregelmäßigkeiten bei der Anzeige der Beschriftungen der X-Achse (doppelte Datumsangaben, fehlende Datumsangaben usw.).
Summenaggregation
Bei Verwendung der Summenaggregation in einem Diagramm für einen Zeitraum von weniger als einer Stunde zeigen Diagramme falsche (multiplizierte) Werte an, wenn die Daten aus Trends stammen.
Textüberlappung
Bei einigen Frontend-Sprachen (z. B. Japanisch) können lokale Schriftarten zu Textüberlappungen in der Diagrammlegende führen. Um dies zu vermeiden, verwenden Sie Version 2.3.0 (oder höher) der PHP-GD-Erweiterung.
Überwachung von Protokolldateien
log[]- und logrt[]-Datenpunkte lesen die Protokolldatei wiederholt vom Anfang an erneut, wenn das Dateisystem zu 100 % voll ist und die Protokolldatei erweitert wird (weitere Informationen finden Sie unter ZBX-10884).
Langsame MySQL-Abfragen
Der Zabbix Server erzeugt langsame SELECT-Abfragen, wenn für Datenpunkte keine Werte vorhanden sind.
Dieses Problem tritt bekanntermaßen in den MySQL-Versionen 5.6/5.7 auf (eine ausführlichere Diskussion finden Sie unter ZBX-10652) und kann in bestimmten Fällen auch in späteren MySQL-Versionen auftreten.
Eine mögliche Umgehung besteht darin, den Optimizer index_condition_pushdown oder prefer_ordering_index in MySQL zu deaktivieren.
Beachten Sie jedoch, dass diese Umgehung nicht alle Probleme im Zusammenhang mit langsamen Abfragen beheben kann.
Langsame Konfigurationssynchronisierung mit Oracle
Die Konfigurationssynchronisierung kann in Zabbix-Installationen mit Oracle DB, die eine hohe Anzahl von Datenpunkten und Datenpunkt-Vorverarbeitungsschritten haben, langsam sein. Dies wird durch die Verarbeitung von Feldern des Typs nclob durch die Oracle-Datenbank-Engine verursacht.
Um die Leistung zu verbessern, können Sie die Feldtypen von nclob auf nvarchar2 umstellen, indem Sie den Datenbank-Patch items_nvarchar_prepare.sql manuell anwenden. Beachten Sie, dass diese Umstellung die maximale Feldgrößenbegrenzung für Datenpunkt-Vorverarbeitungsparameter und Datenpunktparameter wie Description, das Feld Script des Script-Datenpunkts, die Felder Request body und Headers des HTTP agent-Datenpunkts sowie das Feld SQL query des Database monitor-Datenpunkts von 65535 Bytes auf 4000 Bytes reduziert. Abfragen zum Ermitteln von Vorlagennamen, die vor dem Anwenden des Patches gelöscht werden müssen, sind im Patch als Kommentar enthalten. Alternativ können Sie, wenn MAX_STRING_SIZE gesetzt ist, in den Patch-Abfragen nvarchar2(4000) in nvarchar2(32767) ändern, um die Feldgrößenbegrenzung von 32767 Bytes festzulegen.
Eine ausführlichere Diskussion finden Sie unter ZBX-22363.
Persistente Filtereinstellungen aus Links
Beim Öffnen eines Links zu einer Zabbix-Frontend-Seite, der Filtereinstellungen einschließlich des Zeitauswahlfelds enthält, wird der Filter automatisch für den Benutzer in der Datenbank gespeichert und ersetzt die zuvor gespeicherten Filter- und/oder Zeitauswahleinstellungen für diese Seite. Diese Einstellungen bleiben aktiv, bis der Benutzer sie manuell aktualisiert oder zurücksetzt.
Problem mit IPv6-Adressen in SNMPv3-Traps
Aufgrund eines Fehlers in net-snmp wird die IPv6-Adresse bei der Verwendung von SNMPv3 in SNMP-Traps möglicherweise nicht korrekt angezeigt. Weitere Informationen sowie eine mögliche Behelfslösung finden Sie unter ZBX-14541.
Gekürzte lange IPv6-IP-Adresse in Informationen zu fehlgeschlagenen Anmeldungen
Eine Meldung über einen fehlgeschlagenen Anmeldeversuch zeigt nur die ersten 39 Zeichen einer gespeicherten IP-Adresse an, da dies die Zeichenbegrenzung des Datenbankfelds ist. Das bedeutet, dass IPv6-IP-Adressen mit mehr als 39 Zeichen unvollständig angezeigt werden.
Zabbix-Agent-Prüfungen unter Windows
Nicht vorhandene DNS-Einträge im Parameter Server der Zabbix-Agent-Konfigurationsdatei (zabbix_agentd.conf) können die Antwortzeit des Zabbix-Agenten unter Windows erhöhen.
Dies geschieht, weil der Windows-DNS-Caching-Dienst negative Antworten für IPv4-Adressen nicht zwischenspeichert.
Für IPv6-Adressen werden negative Antworten jedoch zwischengespeichert, daher besteht eine mögliche Umgehungslösung darin, IPv4 auf dem Host zu deaktivieren.
YAML-Export/-Import
Es gibt einige bekannte Probleme mit YAML-Export/Import:
- Fehlermeldungen sind nicht übersetzbar;
- Gültiges JSON mit der Dateierweiterung .yaml kann manchmal nicht importiert werden;
- Nicht in Anführungszeichen gesetzte menschenlesbare Datumsangaben werden automatisch in Unix-Zeitstempel umgewandelt.
Einrichtungsassistent unter SUSE mit NGINX und php-fpm
Der Frontend-Einrichtungsassistent kann die Konfigurationsdatei unter SUSE mit NGINX + php-fpm nicht speichern.
Dies wird durch eine Einstellung in der Unit /usr/lib/systemd/system/php-fpm.service verursacht, die verhindert, dass Zabbix nach /etc schreiben kann. (eingeführt in PHP 7.4).
Es gibt zwei verfügbare Umgehungslösungen:
- Setzen Sie die Option ProtectSystem in der php-fpm-systemd-Unit auf
truestatt auffull. - Speichern Sie die Datei
/etc/zabbix/web/zabbix.conf.phpmanuell.
Weiterleitung des Authorization-Headers
In einigen Fällen kann Apache oder NGINX verhindern, dass der Authorization-Header in API-Anfragen Zabbix erreicht. Dies kann zu Authentifizierungsproblemen führen, wenn die Zabbix API oder Single Sign-on-(SSO)-Dienste verwendet werden, z. B. SAML mit Okta.
Um dies zu beheben, aktualisieren Sie die Konfiguration Ihres Webservers.
Für Apache: Wenn Sie Apache als Reverse Proxy verwenden (Nicht-CGI-Setup), fügen Sie die folgende Direktive zu /etc/httpd/conf/httpd.conf (auf RHEL-basierten Systemen) oder /etc/apache2/apache2.conf (auf Debian/Ubuntu) hinzu:
SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1
Wenn Apache Skripte direkt zur Verarbeitung von Anfragen ausführt (z. B. mit mod_cgi), fügen Sie stattdessen die folgende Direktive hinzu:
CGIPassAuth On
Im Gegensatz dazu verarbeitet NGINX den Authorization-Header automatisch.
Wenn NGINX jedoch als Reverse Proxy fungiert, können Sie den Authorization-Header explizit weiterleiten, indem Sie die folgenden Direktiven zu /etc/nginx/nginx.conf hinzufügen (für den Speicherort Ihres Zabbix Frontend):
...
location / {
...
proxy_set_header Authorization $http_authorization;
proxy_pass http://backend_server;
...
}
Starten Sie nach der Aktualisierung der Konfiguration Ihren Webserver neu.
Weitere Informationen finden Sie unter:
- ZBX-22952
- Apache 2.4 + PHP-FPM and Authorization headers
- Die Direktiven SetEnvIfNoCase und CGIPassAuth
- NGINX Reverse Proxy
Chromium für den Zabbix-Web-Service unter Ubuntu 20
Obwohl der Zabbix-Web-Service in den meisten Fällen mit Chromium ausgeführt werden kann, verursacht die Verwendung von Chromium unter Ubuntu 20.04 den folgenden Fehler:
Cannot fetch data: chrome failed to start:cmd_run.go:994:
WARNING: cannot create user data directory: cannot create
"/var/lib/zabbix/snap/chromium/1564": mkdir /var/lib/zabbix: permission denied
Sorry, home directories outside of /home are not currently supported. See https://forum.snapcraft.io/t/11209 for details.
Dieser Fehler tritt auf, weil /var/lib/zabbix als Home-Verzeichnis des Benutzers „zabbix“ verwendet wird.
Benutzerdefinierte MySQL-Fehlercodes
Wenn Zabbix erkennt, dass die Backend-Datenbank nicht erreichbar ist, sendet es eine Benachrichtigung und versucht weiterhin, eine Verbindung herzustellen. Für bestimmte Datenbank-Engines werden spezifische Fehlercodes erkannt. In MySQL umfassen diese erkannten Fehlercodes:
- CR_CONN_HOST_ERROR
- CR_SERVER_GONE_ERROR
- CR_CONNECTION_ERROR
- CR_SERVER_LOST
- CR_UNKNOWN_HOST
- ER_SERVER_SHUTDOWN
- ER_ACCESS_DENIED_ERROR
- ER_ILLEGAL_GRANT_FOR_TABLE
- ER_TABLEACCESS_DENIED_ERROR
- ER_UNKNOWN_ERROR
Zusätzlich kann bei der Verwendung von Zabbix mit einer MySQL-Installation auf Azure die allgemeine Fehlermeldung [9002] Some errors occurred in den Zabbix-Protokollen erscheinen. Diese Meldung wird von der Datenbank an den Zabbix Server oder Proxy gesendet. Um die Ursache des Fehlers zu ermitteln, prüfen Sie bitte die Azure-Protokolle.
Ungültige reguläre Ausdrücke nach dem Wechsel zu PCRE2
In Zabbix 6.0 wurde Unterstützung für PCRE2 hinzugefügt. Obwohl PCRE weiterhin unterstützt wird, wurden die Zabbix-Installationspakete für RHEL 7 und neuer, SLES (alle Versionen), Debian 9 und neuer sowie Ubuntu 16.04 und neuer auf die Verwendung von PCRE2 aktualisiert. Obwohl der Wechsel zu PCRE2 viele Vorteile bietet, kann er dazu führen, dass bestimmte vorhandene PCRE-Regexp-Muster ungültig werden oder sich anders verhalten. Dies betrifft insbesondere das Muster \^[\w-\.]. Um diesen regulären Ausdruck wieder gültig zu machen, ohne die Semantik zu verändern, ändern Sie den Ausdruck in \^[-\w\.] . Dies liegt daran, dass PCRE2 das Minuszeichen als Trennzeichen behandelt und dadurch einen Bereich innerhalb einer Zeichenklasse erstellt.
Geomap-Widget-Fehler
Die Karten im Geomap-Widget werden möglicherweise nicht korrekt geladen, wenn Sie von einer älteren Zabbix-Version mit NGINX aktualisiert haben und während des Upgrades nicht zur neuen NGINX-Konfigurationsdatei gewechselt sind.
Um das Problem zu beheben, können Sie die alte Konfigurationsdatei verwerfen, die Konfigurationsdatei aus dem Paket der aktuellen Version verwenden und sie wie in den Download-Anweisungen im Abschnitt e. PHP für das Zabbix-Frontend konfigurieren beschrieben neu konfigurieren.
Alternativ können Sie eine vorhandene NGINX-Konfigurationsdatei manuell bearbeiten (typischerweise /etc/zabbix/nginx.conf). Öffnen Sie dazu die Datei und suchen Sie den folgenden Block:
location ~ /(api\/|conf[^\.]|include|locale|vendor) {
deny all;
return 404;
}
Ersetzen Sie diesen Block dann durch:
location ~ /(api\/|conf[^\.]|include|locale) {
deny all;
return 404;
}
location /vendor {
deny all;
return 404;
}
Vorverarbeitung — globale Variablen sind unsicher
JavaScript in der Vorverarbeitung wird pro Anfrage ausgeführt, aber Zuweisungen an nicht deklarierte Bezeichner (zum Beispiel secret = value) erzeugen implizite globale Variablen, die über die aktuelle Ausführung hinaus bestehen bleiben können.
Das Speichern sensibler Daten (Tokens, Passwörter usw.) in impliziten globalen Variablen erhöht das Risiko einer unbeabsichtigten Offenlegung oder Wiederverwendung durch nachfolgende Vorverarbeitungsdurchläufe oder andere Integrationen, die in derselben Umgebung ausgeführt werden.
Verlassen Sie sich nicht auf implizite globale Variablen.
Deklarieren Sie Variablen immer mit var oder const, und vermeiden Sie es, Geheimnisse an globale Objekte anzuhängen (zum Beispiel globalThis oder window).
Es gibt keine unterstützte Möglichkeit, integrierte globale Objekte innerhalb der Vorverarbeitung zu überschreiben.
Sicheres Beispiel:
var apiToken = payload.token;
var count = 1;
return JSON.stringify({ token: apiToken, calls: count });
Server-Absturz mit TimescaleDB nach dem Upgrade von 7.0
Das Upgrade von Zabbix 7.0.1 (oder höher) von Zabbix 7.0.0 mit TimescaleDB führt zu einem Server-Absturz.
Dieses Problem wird durch einen Workaround für ein Problem mit einem Komprimierungsjob in der Tabelle auditlog in Zabbix 7.0 verursacht, der die Komprimierungsrichtlinie der Tabelle auditlog irreversibel geändert hat.
Um das Problem zu beheben, führen Sie bitte einen manuellen Neuaufbau der Tabelle auditlog durch.
Die fehlerhafte Tabelle auditlog kann mit dieser Abfrage erkannt werden:
SELECT config FROM timescaledb_information.jobs WHERE application_name LIKE 'Compression%' AND hypertable_schema='public' AND hypertable_name='auditlog';.
Wenn sie ein JSON-Objekt zurückgibt, das die Eigenschaft compress_after enthält (z. B. {"hypertable_id": 14, "compress_after": 612000}), sollten Sie die Tabelle neu aufbauen.
Stellen Sie sicher, dass der Zabbix Server mindestens Version 7.0.1rc2 (oder höher) hat; andernfalls wird erneut die falsche Komprimierungsrichtlinie gesetzt.
Beenden Sie außerdem den Zabbix Server, bevor Sie das Skript ausführen, und stellen Sie sicher, dass auditlog dem Benutzer zabbix gehört.
Der einfachste Weg, die Tabelle auditlog neu aufzubauen, ist:
CREATE TABLE auditlog_tmp (
LIKE auditlog INCLUDING DEFAULTS INCLUDING CONSTRAINTS INCLUDING INDEXES
);
SELECT create_hypertable('auditlog_tmp', 'auditid', chunk_time_interval => 604800,
time_partitioning_func => 'cuid_timestamp', migrate_data => true, if_not_exists => true);
WITH moved_rows AS (
DELETE FROM auditlog
RETURNING *
)
INSERT INTO auditlog_tmp
SELECT * FROM moved_rows;
DROP TABLE auditlog;
ALTER TABLE auditlog_tmp RENAME TO auditlog;
Siehe auch die TimescaleDB-Dokumentation für optimiertere Möglichkeiten zur Datenmigration.
Da der für die Partitionierung erforderliche Zeitstempel mit einer speziell entwickelten Funktion aus dem Feld auditid extrahiert wird, funktionieren die Hilfsprozeduren, die für die Datenmigration aus timescaledb-extras verwendet werden, nicht.
Datenbank-Wiederherstellungsfehler mit PostgreSQL/TimescaleDB nach Upgrade von 7.0.0-7.0.4
Die Verwendung von pg_restore zum Wiederherstellen eines PostgreSQL- oder TimescaleDB-Backups, das in Zabbix 7.0.0-7.0.4 erstellt wurde, führt zu einem Fehler wegen der fehlenden Funktion base36_decode, wodurch die Wiederherstellung fehlschlägt:
ERROR: function base36_decode(text) does not exist
LINE 1: CAST(base36_decode(substring(cuid FROM 2 FOR 8))/1000 AS int...
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
Dieser Fehler tritt beim Wiederherstellen eines mit pg_dump erstellten Backups auf.
Um dieses Problem zu beheben, ersetzen Sie bitte die Funktion cuid_timestamp in Ihrer Zabbix-Datenbank vor dem Erstellen des Backups (es wird empfohlen, PostgreSQL/TimescaleDB vor dem Ausführen des Skripts zu stoppen):
CREATE OR REPLACE FUNCTION cuid_timestamp(cuid varchar(25)) RETURNS integer AS $$
DECLARE
base36 varchar;
a char[];
ret bigint;
i int;
val int;
chars varchar;
BEGIN
base36 := substring(cuid FROM 2 FOR 8);
chars := '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
FOR i IN REVERSE char_length(base36)..1 LOOP
a := a || substring(upper(base36) FROM i FOR 1)::char;
END LOOP;
i := 0;
ret := 0;
WHILE i < (array_length(a, 1)) LOOP
val := position(a[i + 1] IN chars) - 1;
ret := ret + (val * (36 ^ i));
i := i + 1;
END LOOP;
RETURN CAST(ret/1000 AS integer);
END;
$$ LANGUAGE 'plpgsql' IMMUTABLE;
DROP FUNCTION IF EXISTS base36_decode(character varying);
Siehe auch ZBX-24955 (für zusätzliche Details zum Fehler) und die TimescaleDB-Dokumentation (für weitere Optionen zur Sicherung und Wiederherstellung).
Prozessorguppen unter Windows
Die Microsoft-Dokumentation besagt, dass Systeme mit weniger als 64 logischen Prozessoren immer nur eine einzige Prozessorguppe, Gruppe 0, haben. Zabbix-Benutzer haben jedoch einen seltenen Fehler ZBX-20260 gemeldet, bei dem auf Systemen mit 64 oder weniger logischen Prozessoren zwei Prozessorguppen vorhanden sind. Dadurch waren die Leistungsindikatoren "\Processor(n)" nur für eine von zwei Prozessorguppen verfügbar. Die eigentliche Ursache dieses Fehlers ist nicht bekannt. Ein ähnlicher Fall wurde jedoch auf stackoverflow.com beschrieben, und die Ursache lag dort in der Interaktion zwischen BIOS und Windows.
Einschränkungen beim Filtern mit utf8mb4-Collations
Filter (z. B. unter Datenerfassung > Wartung) funktionieren möglicherweise nicht korrekt, wenn sie auf Entitäten mit bestimmten Unicode-Zeichen angewendet werden (z. B. ȼ, ɇ). Dieses Problem entsteht dadurch, wie die standardmäßige utf8mb4_bin-Collation für MySQL- oder MariaDB-Datenbanken die Sortierung und den Vergleich von Unicode-Zeichen behandelt.
Um diese Einschränkung zu beheben, können Benutzer die Collation von Datenbankspalten auf Alternativen wie utf8mb4_0900_bin, utf8mb4_0900_ai_ci oder utf8mb4_unicode_520_ci ändern. Beachten Sie jedoch, dass das Ändern der Collation zu unerwartetem Verhalten bei der Behandlung von Leerzeichen sowie bei der Sortierung und dem Filtern anderer Zeichen führen kann.
Weitere Informationen zum Ändern von Collations finden Sie in der MySQL-Dokumentation oder in der MariaDB-Dokumentation. Details zu Unterschieden zwischen Collations finden Sie unter Unicode Character Sets in der MySQL-Dokumentation.
Falsche Informationen aus verschachtelten Host-Gruppen in Karten
Informationen aus verschachtelten Host-Gruppen werden in Karten falsch angezeigt, zum Beispiel:
- Die Beschriftung der Host-Gruppe zeigt die Problemzusammenfassung an, wobei nicht alle Hosts in den verschachtelten Host-Gruppen berücksichtigt werden;
- Die Ansicht "Host group elements" zeigt kein separates Kartenelement für jeden Host in den verschachtelten Host-Gruppen an;
- Die Kartenbeschriftung zeigt die Zusammenfassung aller Probleme an, wobei die in den verschachtelten Host-Gruppen enthaltenen Probleme nicht berücksichtigt werden.
Defekte LLD-Regel-Overrides in 7.0.7
In Version 7.0.7 stürzt der Zabbix-Server beim Verarbeiten von Low-Level-Discovery-Regel-Overrides ab. Als Workaround deaktivieren Sie LLD-Regeln, die Overrides enthalten. Das Problem wurde in Zabbix 7.0.8rc2 behoben.
Leistungsproblem des Preprocessing-Managers in Zabbix 7.0.14
In Version 7.0.14 kann der Zabbix-Preprocessing-Manager eine hohe CPU-Auslastung verursachen, wenn mehrere Werte gleichzeitig für einen einzelnen Datenpunkt empfangen werden (z. B. bei der Protokollüberwachung) und mehr als ein Preprocessing-Worker konfiguriert ist.
Als vorübergehende Umgehungslösung setzen Sie den Konfigurationsparameter StartPreprocessors für Server/Proxy auf 1.
Das Problem wurde in Zabbix 7.0.15 behoben.
Makrofunktionen
Makrofunktionen funktionieren nicht in Parametern von Skript-Datenpunkten und Skriptparametern von Browser-Datenpunkten. Behoben in Zabbix 7.0.7.
Zugriff auf UI-Elemente mit MariaDB 10.5.1-10.5.9
Beim Zugriff auf das Zabbix Frontend mit einer Rolle, die nicht Super Admin ist, kann die Meldung angezeigt werden: "Systemfehler aufgetreten. Bitte wenden Sie sich an den Zabbix-Administrator.". Dieses Problem betrifft Installationen, die MariaDB-Versionen von 10.5.1 bis 10.5.9 verwenden.
Um dieses Problem zu vermeiden, aktualisieren Sie MariaDB auf eine Version höher als 10.5.9. Weitere Informationen finden Sie unter ZBX-25746.
Profiling übermäßiger Speichernutzung mit tcmalloc
Wenn Sie vermuten, dass Ihre Zabbix-Installation zu viel Speicher verwendet, können Sie die Speicherprofilierungsfunktion von tcmalloc nutzen, um den Speicherverbrauch von Zabbix Server/Proxy zu untersuchen.
1. Wenn Sie Zabbix aus den Quellen installieren, konfigurieren Sie zusätzliche Flags:
export CFLAGS="-std=gnu99 -g -O0"
Das Flag -std=gnu99 ist für das Erstellen von Zabbix Server, Zabbix Proxy oder Zabbix Agent erforderlich.
Das Flag -g fügt zusätzliche Debugging-Informationen hinzu, während -O0 Optimierungen deaktiviert, die die Profilierung von tcmalloc beeinträchtigen können.
2. Setzen Sie vor dem Starten des Zabbix Server die folgenden Umgebungsvariablen. Diese Variablen teilen tcmalloc mit, wie die Speichernutzung verfolgt und gemeldet werden soll:
LD_PRELOAD="/usr/lib/aarch64-linux-gnu/libtcmalloc.so" \
HEAPPROFILE=./heap_profile \
HEAP_PROFILE_ALLOCATION_INTERVAL=0 \
HEAP_PROFILE_INUSE_INTERVAL=4294967296 \
HEAPPROFILESIGNAL=5 \
MALLOCSTATS=1 \
./sbin/zabbix_server -f -c /etc/zabbix/zabbix_server.conf
3. Lösen Sie einen Profil-Dump aus, indem Sie Signal 5 an den Zielprozess senden. Ersetzen Sie 1234 durch die tatsächliche Prozess-ID (PID):
kill -5 1234
4. Geben Sie das erzeugte Profil aus:
pprof-symbolize -text ./sbin/zabbix_server ./heap_profile.0001.heap
Using local file ./sbin/zabbix_server.
Using local file ./heap_profile.0001.heap.
Total: 1078.1 MB
1076.8 99.9% 99.9% 1076.8 99.9% zbx_malloc2
1.0 0.1% 100.0% 1.0 0.1% __GI___strdup
0.2 0.0% 100.0% 0.2 0.0% CRYPTO_zalloc@@OPENSSL_3.0.0
0.1 0.0% 100.0% 0.1 0.0% OPENSSL_LH_insert@@OPENSSL_3.0.0
0.0 0.0% 100.0% 0.0 0.0% zbx_realloc2
0.0 0.0% 100.0% 0.1 0.0% PKCS7_decrypt@@OPENSSL_3.0.0
0.0 0.0% 100.0% 0.0 0.0% find_best_tree_node
0.0 0.0% 100.0% 0.0 0.0% CRYPTO_strndup@@OPENSSL_3.0.0
...
0.0 0.0% 100.0% 0.0 0.0% preprocessing_flush_value
0.0 0.0% 100.0% 1074.0 99.6% preprocessor_add_request
In diesem Beispiel ist zbx_malloc2 für fast alle Speicherzuweisungen verantwortlich.
Siehe auch:
- ZBX-25050 und ZBX-25584 für die zugehörigen Problemberichte.
- GCC Option Summary zu Kompilierungsoptionen (
-std=gnu99,-g,-O0usw.). - Gperftools Heap Profiler zur Dokumentation der Umgebungsvariablen für die tcmalloc-Profilierung.
MySQL 8.0 Group Replication im Multi-Primary-Modus
Bei der Verwendung von MySQL 8.0 Group Replication im Multi-Primary-Modus kann beim Commit von Transaktionen ein Fehler auftreten, der dem folgenden ähnelt:
1531697:20250128:064734.697 query [txnlev:1] [update alerts set status=1,retries=0,error='' where alertid=154618;
1531697:20250128:064734.713 query [txnlev:1] [commit;]
1531697:20250128:064734.753 [Z3005] query failed: [3101] Plugin instructed the server to rollback the current transaction. [commit;]
Dieser Fehler scheint durch Probleme bei Rollback-Operationen im Zusammenhang mit Fremdschlüsselbeschränkungen ausgelöst zu werden.
Siehe auch:
- ZBX-26060 für den zugehörigen Problembericht.
- MySQL Bug #96758 "Rollbacks with Foreign Keys on single node" für das Upstream-Problem.