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エージェントのログには次のように表示されます。
これは、/etc/systemd/logind.confで設定されているデフォルトのsystemd設定RemoveIPC=yesが原因です。システムからログアウトすると、Zabbixが以前に作成したセマフォが削除され、クラッシュの原因となります。
systemdドキュメントからの引用:
RemoveIPC=
Controls whether System V and POSIX IPC objects belonging to the user shall be removed when the
user fully logs out. Takes a boolean argument. If enabled, the user may not consume IPC resources
after the last of the user's sessions terminated. This covers System V semaphores, shared memory
and message queues, as well as POSIX shared memory and message queues. Note that IPC objects of the
root user and other system users are excluded from the effect of this setting. Defaults to "yes".この問題には2つの解決策があります:
/etc/systemd/logind.confでRemoveIPC=noを設定し、システムを再起動します。RemoveIPCはシステム全体のパラメータであり、変更するとシステム全体に影響します。Zabbixフロントエンドがプロキシサーバーの背後で実行されている場合、リバースプロキシパスと一致させるために、プロキシ設定ファイルのCookieパスを書き換える必要があります。 以下の例を参照してください。 Cookieパスが書き換えられていない場合、ユーザーがZabbixフロントエンドにログインしようとしたときに認証の問題が発生する可能性があります。