我有以下服务定义:
define service{
use my-service ; Name of service template to use
host_name dra
service_description https://www.example.com
check_command check_http!-I my.ip.address --ssl -H www.example.com
notifications_enabled 1
retry_check_interval 2
normal_check_interval 5
contact_groups myadmins
}
服务检查一直失败
Name or service not known
HTTP CRITICAL - Unable to open TCP socket
但是,如果我从命令行运行 http_check,我会得到 200 OK 结果:
/usr/lib/nagios/plugins/check_http -I my.ip.address --ssl -H www.example.com -v
.....
HTTP OK: HTTP/1.1 200 OK - 9176 bytes in 0.074 second response time |time=0.073543s;;;0.000000 size=9176B;;;0
另请注意,有问题的 URL 在浏览器中可以正常工作,证书有效等。我还对一堆其他站点使用完全相同的服务定义,它们都可以正常工作。我唯一能想到的是这个远程主机在 DigitalOcean 上运行,并且分配了一个“浮动 IP”。我尝试用my.ip.address分配给主机的浮动 IP 或“标准”IP 替换上面(以及在 nagios 配置文件的主机定义中),这没有区别。
nagios运行相同的命令时如何可能会失败,但手动运行时会成功?