Nagios
Lighttpd 發送 Nagios 命令行輸出而不是 Web 界面
我最近在一個執行 AmazonLinux 的 EC2 實例上安裝了 Nagios(據我了解,它基本上是 SuSe)。我正在使用
lighttpd
並mod_cgi
服務於 Web 界面。當我導航到一個頁面時,我得到的不是實際內容,而是:
Nagios 核心 3.3.1 版權所有 (c) 2009-2011 Nagios 核心開發團隊和社區貢獻者 版權所有 (c) 1999-2009 Ethan Galstad 最後修改時間:2011 年 7 月 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" ) ) }
我究竟做錯了什麼?
我想到了。對於在 Google 或其他網站上找到此內容的人:
由於某種原因,cgi-bin 目錄實際上安裝在
/usr/lib64/nagios/
. 我將 lighttpd 指向 Nagios 的實際執行檔,這就是它吐出幫助文件的原因。這是需要更改的部分:
別名.url = ( "/nagios/cgi-bin" => "/usr/lib64/nagios/cgi-bin", "/nagios" => "/usr/share/nagios/html" )