14 Inne problemy
Logowanie i systemd
Zalecamy utworzenie użytkownika zabbix jako użytkownika systemowego, to znaczy bez możliwości logowania. Niektórzy użytkownicy ignorują to zalecenie i używają tego samego konta do logowania (np. przez SSH) na host uruchamiający Zabbix. Może to spowodować awarię demona Zabbix przy wylogowaniu. W takim przypadku w logu serwera Zabbix pojawi się coś podobnego do poniższego:
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
a w logu agenta Zabbix:
zabbix_agentd [27796]: [file:'log.c',line:238] lock failed: [22] Invalid argument
Dzieje się tak z powodu domyślnego ustawienia systemd RemoveIPC=yes
skonfigurowanego w /etc/systemd/logind.conf. Po wylogowaniu z systemu
utworzone wcześniej przez Zabbix semafory są usuwane, co powoduje
awarię.
Cytat z dokumentacji systemd:
RemoveIPC=
Określa, czy obiekty IPC System V i POSIX należące do użytkownika mają być usuwane, gdy
użytkownik całkowicie się wyloguje. Przyjmuje argument logiczny. Jeśli opcja jest włączona,
użytkownik nie może korzystać z zasobów IPC po zakończeniu ostatniej sesji użytkownika.
Obejmuje to semafory System V, pamięć współdzieloną
i kolejki komunikatów, a także pamięć współdzieloną POSIX i kolejki komunikatów. Należy pamiętać, że obiekty IPC
użytkownika root i innych użytkowników systemowych są wyłączone spod działania tego ustawienia. Domyślnie ustawione na „yes”.
Istnieją 2 rozwiązania tego problemu:
- (zalecane) Przestań używać konta zabbix do czegokolwiek innego niż procesy Zabbix, utwórz osobne konto do innych celów.
- (niezalecane) Ustaw
RemoveIPC=now/etc/systemd/logind.confi uruchom ponownie system. Zwróć uwagę, żeRemoveIPCjest parametrem obejmującym cały system, a jego zmiana wpłynie na cały system.
Używanie frontend Zabbix za proxy
Jeśli frontend Zabbix działa za serwerem proxy, ścieżka cookie w pliku konfiguracyjnym proxy musi zostać przepisana tak, aby odpowiadała ścieżce reverse proxy. Zobacz przykłady poniżej. Jeśli ścieżka cookie nie zostanie przepisana, użytkownicy mogą napotkać problemy z autoryzacją podczas próby logowania do frontend Zabbix.
Przykładowa konfiguracja dla nginx
# ..
location / {
# ..
proxy_cookie_path /zabbix /;
proxy_pass http://192.168.0.94/zabbix/;
# ..
Przykładowa konfiguracja dla Apache
# ..
ProxyPass "/" http://host/zabbix/
ProxyPassReverse "/" http://host/zabbix/
ProxyPassReverseCookiePath /zabbix /
ProxyPassReverseCookieDomain host zabbix.example.com
# ..