前提
- Nagios 4系でしか試していません
- 管理画面へのログインはBasic認証で制限しています
やりたいこと
管理画面のログインユーザーごとに、表示されるホスト・サービスを制限したい
設定方法
- contact_nameと同じユーザー名でBasic認証ユーザーを追加する
詳細
管理画面の表示権限オプションについて
ログインユーザーの権限に関する設定は cgi.cfg で以下のようなオプションで設定されている
- authorized_for_all_hosts
- authorized_for_all_host_commands
- authorized_for_all_services
- authorized_for_all_service_commands
- authorized_for_read_only
authorized_for_all_* とあるとおり、オプションにユーザーを定義すると、
全てのhost、serviceが管理画面に表示される。
このほかに個別ユーザーアクセス権限を制限するオプションが見当たらなかったため、
ユーザーごとに表示可能なhost、serviceの制限は出来ないものと思っていた
contact_name
define contact{}
で設定されている、通知先名の定義です。
Basic認証にこの定義で設定したユーザー名で登録すると、管理画面にログインできます。
表示されるのは、このcontact_name
が通知先として設定されている host、service のみとなります
コマンド実行の制限
authorized_for_read_onlyと同じように、コマンド実行を制限したい場合は
define contact{}
で can_submit_commands を 1
とします。
省略時は 0
なので、コマンド実行可能な状態となっています。
通知先定義ごとの設定のため、同じユーザーで host、service のコマンド実行可否を分けることは出来無そうです
contactgroup_nameでは制限できない?
contactgroup_nameにの設定値をBasic認証ユーザーに追加したところ
ログイン可能だが、1つも host、service が表示されない状態となった。
おそらく、Basic認証の承認だけで、Nagios側の権限のあるユーザーとして認識されない状態と思われます。