我已经设置了一个 monit 来检查 http 服务器的几个子域。
目前,它们是多个检查主机语句,如下所示:
CHECK HOST a.example.com with address 1.2.3.4
if failed url https://blah then alert
CHECK HOST b.example.com with address 1.2.3.4
if failed url https://blah then alert
整个服务器或任何子域都可能处于故障状态。
在整个服务器瘫痪或丢失负载均衡器的情况下,我不希望收到十几个单独子域的通知。
一次失败的测试是否会禁用后续测试?是否可以将所有这些 URL 分组到单个 HOST 部分下并将它们组合在 OR 中?
答案1
一次失败的测试会导致后续测试失败吗?
据我所知,Monit 无法做到这一点。
是否可以将所有这些 URL 分组到单个 HOST 部分下并将它们组合在 OR 中?
是的,您可以随意添加if
规则(或者您的硬盘会存储 ;-))。由于每个if
规则都有自己的规则,因此会自动OR
连接。
我总是将它们链接到我的 httpd 进程,如下所示:
check process "nginx" with pidfile /var/run/nginx.pid
start program = "/bin/systemctl start nginx.service"
restart program = "/bin/systemctl restart nginx.service"
stop program = "/bin/systemctl stop nginx.service"
if failed
host glances.boppy.eu
port 443
protocol https
request "/.well-known/nitmo-ping.txt"
with ssl options {verify: enable}
ssl certificate valid 5 days
then alert
因此,它不仅检查域/路径/文件的可用性,如果我的愚蠢的 cronjob 更新证书没有完成,它还会通知我。