我目前正在设置 Icinga 监控系统,但是我不知道如何访问通过 http 访问时要求进行身份验证的特定页面,主要是 Icinga 上的“所有问题”选项。
有没有什么方法可以绕过身份验证(想法是将该页面放在我的第二个屏幕上显示的旋转页面上)?
提前致谢
答案1
我猜这是典型的仪表板问题,这个问题在过去一直很棘手。
您正在寻找的选项是 cgi.cfg 中的 use_authentication=0 - 但是,考虑到您当前的设置以及现有用户的授权等,这实际上是一个坏主意。
还有另一种方法可以实现这一点,而不会损害您现有的安装 - 在“/icinga-dashboard”下创建另一个服务于您的 Classic UI 的 apache 配置,并使用 Satisfy Any 进行授权,例如您的本地网络。不过,REMOTE_USER 的 SetEnvIf 也是必需的,并且通常需要一些更高级的 apache 知识(或您首选的 Web 服务器)。
一种更简单的方法(但开销更大)是将 Classic UI 安装为独立应用程序,拥有自己的 cgis/html 并仅从 Icinga Core 读取数据源,仅提供您需要的内容。由于我们在开发 Icinga2 兼容层时使用了 Classic UI,我们最终在 Icinga 1.9 版本中实现了这一点 - 您可以按照以下文档安装 Classic UI Standalone:https://wiki.icinga.org/display/howtos/Setting+up+Icinga+Classic+UI+Standalone
答案2
我建议你使用检查http插件来监控要求您进行身份验证的网页。Check_http
插件具有这样的功能,可以使用传递的参数检查网页健康状况。
Ex: check_http -I <ipaddress of server> -H host_name.com -u /index.html -a username:password
其中,-I = 服务器的 ipaddress
-H = 主机名
-u = 主机的 URL(如果有)。例如:www.myhost.com/index.html
-a = 用于身份验证。
定义这样的命令
# 'check_http' command definition
define command{
command_name check_http_test
command_line $USER1$/check_http -I $HOSTADDRESS$ $ARG1$ -a username:password
}
定义服务:
define service{
use local-service ; Name of service template to use
host_name hostname
service_description HTTP_AUTH
check_command check_http_test
notifications_enabled 0
}