14 Другие проблемы
Вход в систему и 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 в файле конфигурации прокси необходимо переписать так, чтобы он соответствовал пути, используемому при обратном проксировании. См. примеры ниже. Если путь 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
# ..