check_http!–ssl 實際上檢查 http
在執行 HTTPS 但不執行 HTTP 的主機上監控 SSL 服務時,Icinga 會警告 403 Forbidden 返回碼。但該警告是針對 HTTP 的,而不是針對 HTTPS 的。
使用 -S 或 –ssl 手動執行 check_http 命令會返回 200 OK 程式碼(以及僅針對 HTTP 執行時的 403 Forbidden 響應)。
但是自動服務檢查使用任一開關返回 403 錯誤 – check_http!-S 或 check_http!–ssl。
Icinga 不會抱怨使用此服務檢查監控的其他 SSL 主機,可能是因為它們也都執行 HTTP。
Icinga 使用 Nagios 外掛,所以我認為這要麼是 Nagios,要麼(更有可能)是配置問題。
如何修復這個錯誤的報告?SSL 服務正在主機上執行。
這適用於在 Debian wheezy 上執行的 Icinga 1.7.1-7。謝謝!
您不能只將“-S”或“–ssl”作為 ARG 傳遞給檢查,除非它是專門編寫的。
去看看
/etc/nagios-plugins/config/http.cfg
,應該都清楚了。Debian 軟體包附帶了十幾個不同的 check_http 命令,用於不同的案例。您可能想要使用check_https
它或它的變體。有關背景資訊,請參閱宏及其工作方式文件。
基思回答的小附錄:如今,Debian 上的 Icinga2 可以包含
/usr/share/icinga2/include/command-plugins.conf
而不是/etc/nagios-plugins
,它不會自動複製該選項的$HOSTADDRESS$
宏。-H
所以 check_http 最終會查詢主機名 IP 的預設 vhost,這可能會默默地給出意想不到的結果。
從這個錯誤中吸取教訓後,我的基本服務配置。現在看起來像這樣:
apply Service "check_https" { import "generic-service" check_command = "http" vars.http_warn_time = 10 vars.http_critical_time = 50 vars.http_vhost = "$address$" vars.http_ssl = true vars.http_sni = true vars.sla = "24x7" check_interval = 5m retry_interval = 2m assign where "https-website" in host.groups }