14 Andere Probleme

Anmeldung und systemd

Wir empfehlen, einen zabbix-Benutzer als Systembenutzer zu erstellen, also ohne die Möglichkeit, sich anzumelden. Einige Benutzer ignorieren diese Empfehlung und verwenden dasselbe Konto zur Anmeldung (z. B. per SSH) an dem Host, auf dem Zabbix läuft. Dies kann beim Abmelden zum Absturz des Zabbix-Daemons führen. In diesem Fall erhalten 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 Semaphore entfernt, was den Absturz verursacht.

Ein Zitat aus der systemd-Dokumentation:

RemoveIPC=

Steuert, ob dem Benutzer gehörende System-V- und POSIX-IPC-Objekte entfernt werden sollen, wenn sich der
Benutzer vollständig abmeldet. Akzeptiert ein boolesches Argument. Falls aktiviert, darf der Benutzer nach
Beendigung der letzten Sitzung des Benutzers keine IPC-Ressourcen mehr verwenden. Dies umfasst System-V-Semaphore,
Shared Memory und Nachrichtenwarteschlangen sowie POSIX-Shared-Memory und Nachrichtenwarteschlangen. Beachten Sie,
dass IPC-Objekte des root-Benutzers und anderer Systembenutzer von dieser Einstellung nicht betroffen sind.
Standardwert ist "yes".

Für dieses Problem gibt es 2 Lösungen:

  1. (empfohlen) Verwenden Sie das zabbix-Konto ausschließlich für Zabbix-Prozesse und erstellen Sie für andere Zwecke ein dediziertes Konto.
  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
# ..