如何让Nagios用户查看某些服务器的状态,但不禁用/启用任何东西?
在/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
当然,观众必须先被定义为与适当的htpasswdauthentication联系。 在服务/主机详细信息页面中,通常有命令的右侧会说:
您的帐户无权执行命令。
如果我正确理解你的问题,你想添加用户到Nagios,只能看到一些服务器,并没有权限做任何pipe理任务(开始/停止监视或警报)。
要完成此操作,您需要将用户添加到nagios的.htpasswd文件,然后在nagios中创build一个名为contact_name的匹配在.htpasswd中设置的用户名的联系人,然后仅将该联系人添加到您希望他们查看的主机。 请记住,当您将模板中定义的主机configuration添加到主机configuration中时,它将覆盖模板而不是添加到模板,因此您还需要添加模板中已有主机的所有联系人。
为了允许用户仅查看 Nagios webview中的某些主机 ,您必须执行以下更改:
注意:如果您已经启用了密码保护authentication,则跳转到3.
编辑位于您的nagios安装(例如/usr/local/nagios/etc )中的cgi.cfg以启用密码保护login:
use_authentication=1
在Apache安装目录的nagios.conf文件中,validation是否包含以下行来指向htpasswd.users文件:
AuthName "Nagios Access" AuthType Basic AuthUserFile /usr/local/nagios/etc/htpasswd.users Require valid-user
使用htpasswd命令和Apache HTTPD密码pipe理器将用户添加到htpasswd.users文件中。 位置可能因系统而异; 一些常见的位置是/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
编辑位于您的nagios安装中的cgi.cfg ; 取消对authorized_for_read_only注释并添加要授予访问权限的用户名:
authorized_for_read_only=testuser1
在nagios安装中为objects/contacts.cfg的用户创build一个条目:
define contact { contact_name testuser01 use generic-contact alias Test User 01 email [email protected] }
在相同的objects/contacts.cfg还定义了一个组,用于保存用户和将来需要同一主机访问的其他用户 – 当用户包含在组中时更易于pipe理:
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 }
重新开始
在你的cgi.cfg文件中,有以下几行:
authorized_for_all_services=*
authorized_for_all_hosts = *
通常这些configuration如上,所以所有的用户至less可以查看所有的主机和服务。 所以如果你把你的新用户添加到你的htpasswd文件中,默认情况下他们应该得到所需的行为。