13. Другие проблемы

Вход в систему и systemd

Мы рекомендуем создать пользователя zabbix как системного пользователя, то есть без возможности входа в систему. Некоторые пользователи игнорируют эту рекомендацию и используют ту же учетную запись для входа в систему (например, через SSH) на узел сети, где работает Zabbix. Это может привести к аварийному завершению демона Zabbix при выходе из системы. В этом случае в журнале сервера Zabbix вы увидите что-то вроде следующего:

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

а в журнале агента Zabbix:

zabbix_agentd [27796]: [file:'log.c',line:238] lock failed: [22] Invalid argument

Это происходит из-за настройки systemd по умолчанию RemoveIPC=yes, заданной в /etc/systemd/logind.conf. Когда вы выходите из системы, семафоры, ранее созданные Zabbix, удаляются, что и вызывает сбой.

Цитата из документации systemd:

RemoveIPC=

Управляет тем, будут ли объекты IPC System V и POSIX, принадлежащие пользователю, удаляться при
полном выходе пользователя из системы. Принимает логическое значение. Если включено, пользователь не
сможет использовать ресурсы IPC после завершения последней из его сессий. Это относится к семафорам
System V, разделяемой памяти и очередям сообщений, а также к разделяемой памяти POSIX и очередям
сообщений. Обратите внимание, что объекты IPC пользователя root и других системных пользователей
исключены из действия этой настройки. По умолчанию значение равно "yes".

Есть 2 решения этой проблемы:

  1. (рекомендуется) Не использовать учетную запись zabbix ни для чего, кроме процессов Zabbix, и создать отдельную учетную запись для других задач.
  2. (не рекомендуется) Установить RemoveIPC=no в /etc/systemd/logind.conf и перезагрузить систему. Обратите внимание, что RemoveIPC — это системный параметр, и его изменение повлияет на всю систему.

Использование веб-интерфейса Zabbix за прокси

Если веб-интерфейс Zabbix работает за прокси-сервером, cookie path (путь cookie) в файле конфигурации прокси необходимо переписать, чтобы он соответствовал reverse-proxied path (обратному пути прокси). См. примеры ниже. Если путь cookie не переписан, пользователи могут столкнуться с проблемами авторизации при попытке войти в веб-интерфейс Zabbix.

Пример конфигурации для nginx
# ..
location / {
# ..
proxy_cookie_path /zabbix /;
proxy_pass http://192.168.0.94/zabbix/;
# ..
Пример конфигурации для Apache
# ..
ProxyPass "/" http://host/zabbix/
ProxyPassReverse "/" http://host/zabbix/
ProxyPassReverseCookiePath /zabbix /
ProxyPassReverseCookieDomain host zabbix.example.com
# ..