14 その他の問題
ログインとsystemd
zabbix ユーザーは、ログインできないシステムユーザーとして 作成することを推奨します。一部のユーザーは この推奨を無視し、Zabbix を実行しているホストにログインするために (例: SSH を使用して)同じアカウントを使用しています。これにより、ログ アウト時に 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
これは、/etc/systemd/logind.conf で設定されているデフォルトの systemd 設定
RemoveIPC=yes が原因で発生します。システムからログアウトすると、
Zabbix が以前に作成したセマフォが削除され、これがクラッシュの原因となります。
systemd のドキュメントからの引用:
RemoveIPC=
ユーザーが完全にログアウトしたときに、そのユーザーに属する System V および POSIX の IPC オブジェクトを削除するかどうかを制御します。
ブール値の引数を取ります。有効な場合、ユーザーの最後のセッションが終了した後、そのユーザーは IPC リソースを消費できません。
これには、System V のセマフォ、共有メモリ、メッセージキューに加え、POSIX の共有メモリおよびメッセージキューが含まれます。
なお、root ユーザーおよびその他のシステムユーザーの IPC オブジェクトは、この設定の影響を受けません。デフォルトは "yes" です。
この問題には 2 つの解決策があります:
- (推奨)zabbix アカウントを Zabbix プロセス以外の用途に使用するのをやめ、その他の用途には専用アカウントを作成します。
- (非推奨)
/etc/systemd/logind.confでRemoveIPC=noを設定し、システムを再起動します。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
# ..