我最近在运行 AmazonLinux(据我所知,基本上是 SuSe)的 EC2 实例上安装了 Nagios。我使用lighttpd
并mod_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” )