如何允许 Nagios 中的用户查看某些服务器的状态,但不禁用/启用任何内容?
答案1
在 /usr/local/nagios/etc/cgi.cfg(或系统上的任何位置)中定义只读用户:
# A comma-delimited list of usernames that have read-only rights in
# the CGIs. This will block any service or host commands normally shown
# on the extinfo CGI pages. It will also block comments from being shown
# to read-only users.
authorized_for_read_only=viewer
当然,必须先将查看者定义为具有适当 htpasswd 身份验证的联系人。在服务/主机详细信息页面中,通常有命令的右侧将显示:
您的帐户没有执行命令的权限。
答案2
如果我正确理解了您的问题,您可能想向 nagios 添加只能查看部分服务器且无权执行任何管理任务(启动/停止监控或警报)的用户。
要实现这一点,您需要将用户添加到 nagios 的 .htpasswd 文件中,然后在 nagios 中创建一个联系人,其 contact_name 与 .htpasswd 中设置的用户名相匹配,然后将该联系人仅添加到您希望他们看到的主机。请记住,当您将模板中定义的内容添加到主机配置时,它会覆盖模板而不是添加到模板中,因此您还需要重新添加主机在模板中已有的任何联系人。
答案3
允许用户仅对某些主机具有只读访问权限在 Nagios webview 中你必须实现以下更改:
笔记:跳到3.如果您已经启用密码保护的身份验证:
编辑
cgi.cfg
nagios 安装中的文件(例如/usr/local/nagios/etc
)以启用密码保护登录:use_authentication=1
在 Apache 安装目录中的文件中
nagios.conf
,验证是否包含以下行来指向该htpasswd.users
文件:AuthName "Nagios Access" AuthType Basic AuthUserFile /usr/local/nagios/etc/htpasswd.users Require valid-user
htpasswd.users
使用命令和 Apache HTTPD 密码管理器将用户添加到文件htpasswd
。位置可能因您的系统而异;它的一些常见位置是/usr/bin
和/usr/local/apache/bin
:# htpasswd /usr/local/nagios/etc/htpasswd.users testuser01 New password: Re-type new password: Adding password for user testuser01
编辑
cgi.cfg
位于您的 nagios 安装中的;取消注释authorized_for_read_only
并添加您想要授予访问权限的用户名:authorized_for_read_only=testuser1
objects/contacts.cfg
从您的 nagios 安装中为用户创建一个条目:define contact { contact_name testuser01 use generic-contact alias Test User 01 email [email protected] }
同样,
objects/contacts.cfg
定义一个组来容纳需要相同主机相同访问权限的用户和其他未来用户 - 当用户包含在组中时更容易管理:define contactgroup { contactgroup_name view-only-host01 alias View Only access to alarms for Host01 members testuser01 }
获取先前定义的联系人组,
view-only-host01
并在您的主机的 .cfg 中(例如objects/host01.cfg
)将其添加到您想要授予仅查看访问权限的每个服务中:define service{ service_description Alarm for Test service - Metric 01 check_command webinject!test/test.xml servicegroups availability contact_groups admins,view-only-host01 }
重启 nagios
答案4
在您的 cgi.cfg 文件中,有以下几行:
authorized_for_all_services=*
authorized_for_all_hosts=*
通常这些配置如上,因此所有用户至少可以查看您的所有主机和服务。因此,如果您将新用户添加到 htpasswd 文件中,他们应该默认获得所需的行为。