13 Andere Probleme
Login und systemd
Wir empfehlen, einen zabbix-Benutzer anzulegen als Systembenutzer, also ohne die Möglichkeit, sich anzumelden. Einige Benutzer ignorieren diese Empfehlung und verwenden dasselbe Konto für die Anmeldung (z. B. per SSH) an dem Host, auf dem Zabbix läuft. Dies kann beim Abmelden den Zabbix-Daemon zum Absturz bringen. In diesem Fall sehen Sie im Zabbix-Server-Log etwa Folgendes:
zabbix_server [27730]: [file:'selfmon.c',line:375] lock failed: [22] Invalid argument
zabbix_server [27716]: [file:'dbconfig.c',line:5266] lock failed: [22] Invalid argument
zabbix_server [27706]: [file:'log.c',line:238] lock failed: [22] Invalid argument
und im Zabbix-Agent-Log:
zabbix_agentd [27796]: [file:'log.c',line:238] lock failed: [22] Invalid argument
Dies geschieht aufgrund der standardmäßigen systemd-Einstellung RemoveIPC=yes,
die in /etc/systemd/logind.conf konfiguriert ist. Wenn Sie sich vom System
abmelden, werden die zuvor von Zabbix erstellten Semaphoren entfernt, was den
Absturz verursacht.
Ein Zitat aus der systemd-Dokumentation:
RemoveIPC=
Steuert, ob System-V- und POSIX-IPC-Objekte, die dem Benutzer gehören, entfernt werden sollen, wenn sich der
Benutzer vollständig abmeldet. Erwartet ein boolesches Argument. Wenn aktiviert, darf der Benutzer nach dem
Beenden der letzten Sitzung des Benutzers keine IPC-Ressourcen mehr verwenden. Dies umfasst System-V-Semaphoren,
Shared Memory und Message Queues sowie POSIX Shared Memory und Message Queues. Beachten Sie, dass IPC-Objekte
des root-Benutzers und anderer Systembenutzer von dieser Einstellung ausgenommen sind. Standardwert ist "yes".
Es gibt 2 Lösungen für dieses Problem:
- (empfohlen) Verwenden Sie das zabbix-Konto nur für Zabbix-Prozesse und erstellen Sie ein separates Konto für andere Aufgaben.
- (nicht empfohlen) Setzen Sie
RemoveIPC=noin/etc/systemd/logind.confund starten Sie das System neu. Beachten Sie, dassRemoveIPCein systemweiter Parameter ist; eine Änderung wirkt sich auf das gesamte System aus.
Zabbix Frontend hinter Proxy verwenden
Wenn das Zabbix Frontend hinter einem Proxy-Server ausgeführt wird, muss der Cookie-Pfad in der Proxy-Konfigurationsdatei umgeschrieben werden, damit er dem per Reverse-Proxy weitergeleiteten Pfad entspricht. Siehe die folgenden Beispiele. Wenn der Cookie-Pfad nicht umgeschrieben wird, können bei Benutzern Autorisierungsprobleme auftreten, wenn sie versuchen, sich am Zabbix Frontend anzumelden.
Beispielkonfiguration für nginx
# ..
location / {
# ..
proxy_cookie_path /zabbix /;
proxy_pass http://192.168.0.94/zabbix/;
# ..
Beispielkonfiguration für Apache
# ..
ProxyPass "/" http://host/zabbix/
ProxyPassReverse "/" http://host/zabbix/
ProxyPassReverseCookiePath /zabbix /
ProxyPassReverseCookieDomain host zabbix.example.com
# ..