Nagios

check_http!–ssl 實際上檢查 http

  • July 18, 2017

在執行 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
}

引用自:https://serverfault.com/questions/614570