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

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

Выдержка из документации по systemd:

RemoveIPC=
       
       Controls whether System V and POSIX IPC objects belonging to the user shall be removed when the
       user fully logs out. Takes a boolean argument. If enabled, the user may not consume IPC resources
       after the last of the user's sessions terminated. This covers System V semaphores, shared memory
       and message queues, as well as POSIX shared memory and message queues. Note that IPC objects of the
       root user and other system users are excluded from the effect of this setting. Defaults to "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
       # ..