我遵循networking指南中的简单步骤:
a)通过命令htpasswd htpasswd.users username将用户添加到Nagios
b)在cgi.cfg文件中添加这个用户到行:
authorized_for_system_information=nagiosadmin, username authorized_for_configuration_information=nagiosadmin, username authorized_for_system_commands=nagiosadmin, username authorized_for_all_services=nagiosadmin, username authorized_for_all_hosts=nagiosadmin, username authorized_for_all_service_commands=nagiosadmin, username authorized_for_all_host_commands=nagiosadmin, username
c)重新启动nagios3服务,甚至重新启动apache2服务
但是当我尝试从nagios的web界面列出任何东西,它仍然给我这个令人讨厌的消息:
It appears as though you do not have permission to view information for any of the services you requested... If you believe this is an error, check the HTTP server authentication requirements for accessing this CGI and check the authorization options in your CGI configuration file.
哪里可能是个问题?
查看Nagios常见问题无权查看configuration ,其中说:
描述:如果你点击“查看configuration”,你会得到:“”“看起来好像你没有权限查看你请求的configuration信息。如果你认为这是一个错误,请检查HTTP服务器validation要求访问这个CGI并检查CGIconfiguration文件中的授权选项。“”“
解决scheme:您需要在cgi.cfg中设置“authorized_for_configuration_information”
在我的EL6系统默认情况下,'authorized_for_configuration_information'被设置为'nagiosadmin'。 许多网站将其设置为authorized_for_configuration_information=* ,这可以解决您的问题。
另外,请确保您正确使用HTTP身份validation。 请参阅http://nagios.sourceforge.net/docs/3_0/cgiauth.html
在CGI中启用身份validation/授权function
接下来,您需要确保CGI被configuration为使用身份validation和授权function来确定用户有权访问哪些信息和/或命令。 这是通过将CGIconfiguration文件中的use_authenticationvariables设置为非零值来完成的。 例:
use_authentication = 1
编辑/usr/local/nagios/etc/cgi.cfg
添加用户名,没有这样的空间
authorized_for_system_information=nagiosadmin,username,username2
保存文件并使用服务nagios重新启动重新启动nagios服务
我也面临同样的问题,我解决了运行命令
sudo htpasswd -b -c /usr/local/nagios/etc/htpasswd.users nagiosadmin nagiosadmin