14 Altri problemi

Accesso e systemd

Raccomandiamo di creare un utente zabbix come utente di sistema, cioè senza possibilità di effettuare l'accesso. Alcuni utenti ignorano questa raccomandazione e usano lo stesso account per accedere (ad es. tramite SSH) all'host che esegue Zabbix. Questo potrebbe causare l'arresto anomalo del demone Zabbix al momento della disconnessione. In questo caso nel log del server Zabbix verrà visualizzato qualcosa di simile:

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

e nel log di Zabbix agent:

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

Questo accade a causa dell'impostazione predefinita di systemd RemoveIPC=yes configurata in /etc/systemd/logind.conf. Quando ci si disconnette dal sistema, i semafori creati in precedenza da Zabbix vengono rimossi, causando l'arresto anomalo.

Una citazione dalla documentazione di systemd:

RemoveIPC=

Controlla se gli oggetti IPC System V e POSIX appartenenti all'utente debbano essere rimossi quando
l'utente termina completamente la sessione. Accetta un argomento booleano. Se abilitato, l'utente non può consumare risorse IPC
dopo la terminazione dell'ultima sessione dell'utente. Questo include semafori System V, memoria condivisa
e code di messaggi, nonché memoria condivisa POSIX e code di messaggi. Si noti che gli oggetti IPC dell'utente
root e di altri utenti di sistema sono esclusi dall'effetto di questa impostazione. Il valore predefinito è "yes".

Esistono 2 soluzioni a questo problema:

  1. (consigliata) Smettere di usare l'account zabbix per qualsiasi altra cosa diversa dai processi di Zabbix e creare un account dedicato per altre attività.
  2. (sconsigliata) Impostare RemoveIPC=no in /etc/systemd/logind.conf e riavviare il sistema. Si noti che RemoveIPC è un parametro valido per l'intero sistema; modificarlo influenzerà l'intero sistema.

Utilizzo del frontend di Zabbix dietro proxy

Se il frontend di Zabbix viene eseguito dietro un server proxy, il percorso del cookie nel file di configurazione del proxy deve essere riscritto in modo che corrisponda al percorso del reverse proxy. Vedere gli esempi riportati di seguito. Se il percorso del cookie non viene riscritto, gli utenti potrebbero riscontrare problemi di autorizzazione durante il tentativo di accesso al frontend di Zabbix.

Esempio di configurazione per nginx
# ..
location / {
# ..
proxy_cookie_path /zabbix /;
proxy_pass http://192.168.0.94/zabbix/;
# ..
Configurazione di esempio per Apache
# ..
ProxyPass "/" http://host/zabbix/
ProxyPassReverse "/" http://host/zabbix/
ProxyPassReverseCookiePath /zabbix /
ProxyPassReverseCookieDomain host zabbix.example.com
# ..