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 решения этой проблемы:
- (рекомендуется) Не использовать учетную запись zabbix ни для чего, кроме процессов Zabbix, и создать отдельную учетную запись для других задач.
- (не рекомендуется) Установить
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
# ..