Lighttpd 发送 Nagios 命令行输出而不是 Web 界面

Lighttpd 发送 Nagios 命令行输出而不是 Web 界面

我最近在运行 AmazonLinux(据我所知,基本上是 SuSe)的 EC2 实例上安装了 Nagios。我使用lighttpdmod_cgi服务于 Web 界面。

当我导航到某个页面时,我没有获得实际的内容,而是获得了以下内容:

Nagios 核心 3.3.1
版权所有 (c) 2009-2011 Nagios 核心开发团队和社区贡献者
版权所有 (c) 1999-2009 Ethan Galstad
最后修改时间:2011-07-25
许可证:GPL

网站:http://www.nagios.org
用法:/usr/sbin/nagios [选项]

选项:

  -v, --verify-config 验证所有配置数据
  -s, --test-scheduling 显示预计/推荐的检查安排和其他
                               根据当前配置文件的诊断信息。
  -x, --dont-verify-paths 不检查循环对象路径 - 谨慎使用!
  -p, --precache-objects 预缓存对象配置 - 与 -v 或 -s 选项一起使用
  -u, --use-precached-objects 使用预缓存对象配置文件
  -d, --daemon 以守护进程模式启动 Nagios,而不是作为前台进程

访问 Nagios 网站 http://www.nagios.org/ 以获取错误修复、新
发布、在线文档、常见问题解答、订阅信息
Nagios 的邮件列表和商业支持选项。

这似乎是命令行版本的帮助文档。以下是我的相关部分lighttpd.conf

alias.url = (
                "/nagios/cgi-bin" => "/usr/sbin/nagios",
                "/nagios" => "/usr/share/nagios/html"
)

$HTTP["url"] =~ "^/nagios/cgi-bin" {
        cgi.assign = ( "" => "" )
}

$HTTP["url"] =~ "^/nagios/cgi-bin" {
        auth.backend = "htpasswd"
        auth.backend.htpasswd.userfile = "/etc/nagios/passwd"
        auth.require = ( "" => (
                "method" => "basic",
                "realm" => "Nagios Access",
                "require" => "user=nagiosadmin"
                )
        )
}

$HTTP["url"] =~ "^/nagios" {
        auth.backend = "htpasswd"
        auth.backend.htpasswd.userfile = "/etc/nagios/passwd"
        auth.require = ( "" => (
                "method" => "basic",
                "realm" => "Nagios Access",
                "require" => "user=nagiosadmin"
                )
        )
}

我究竟做错了什么?

答案1

我找到了答案。对于在 Google 或其他网站上找到此内容的人:

由于某种原因,cgi-bin 目录实际上安装在 中/usr/lib64/nagios/。我将 lighttpd 指向 Nagios 的实际可执行文件,这就是它吐出帮助文档的原因。

这是需要更改的部分:

别名.url = (
                "/nagios/cgi-bin" => "/usr/lib64/nagios/cgi-bin",
                /nagios” => “/usr/share/nagios/html”

相关内容