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:

  1. (empfohlen) Verwenden Sie das zabbix-Konto nur für Zabbix-Prozesse und erstellen Sie ein separates Konto für andere Aufgaben.
  2. (nicht empfohlen) Setzen Sie RemoveIPC=no in /etc/systemd/logind.conf und starten Sie das System neu. Beachten Sie, dass RemoveIPC ein 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
# ..