2016-04-27 116 views
2

我试图通过Monit监视本地Apache实例上的VHost。相同的域同时接受httphttps流量,所以我想要同时监控。Monit只为HTTPS网站使用HTTP

此外,域解析的IP转到负载平衡当前Apache实例与运行Apache的另一个服务器之间的通信量的服务器。我需要monit的监视当地情况下,我希望能避免在/etc/hosts中添加任何记录文件,所以我在想,Monits配置设置with http headers []就足够了,我认为这是(只是监控localhost,但将头文件Host设置为虚拟域名)。

不管怎么说,主要的问题我似乎遇到了,就是即使我配置monit的监测经过主机都HTTPHTTPS协议,它可以监控通过只是HTTP两台主机,但是端口设置为443我需要使用https协议。

针对Apache的monit的配置文件是:

check process httpd with pidfile /var/run/httpd/httpd.pid 
    start program = "/bin/systemctl restart httpd.service" with timeout 60 seconds 
    stop program = "/bin/systemctl stop httpd.service" 

check host localhost with address localhost 
    if failed 
     port 80 
     protocol http 
     with http headers [Host: www.domain.com, Cache-Control: no-cache] 
     and request/with content = "www.domain.com" 
      then restart 
    if failed 
     port 443 
     protocol https 
     with http headers [Host: www.domain.com, Cache-Control: no-cache] 
     and request/with content = "www.domain.com" 
      then restart 
    if 5 restarts within 5 cycles 
     then timeout 

下面是该检查monit的状态:

[[email protected] enabled-monitors]# monit status localhost 
The Monit daemon 5.14 uptime: 14m 

Remote Host 'localhost' 
    status       Connection failed 
    monitoring status     Monitored 
    port response time    FAILED to [localhost]:443/ type TCPSSL/IP protocol HTTP 
    port response time    0.001s to [localhost]:80/ type TCP/IP protocol HTTP 
    data collected     Tue, 26 Apr 2016 10:44:32 

所以这是很明显,我认为https的失败,因为它仍然在努力使用端口HTTP,即使我在配置中有protocol https

任何输入将不胜感激。我有一种感觉,这可能是一个错误,并在Monit Github回购中造成一个问题,但我不想确定它不是我忽略的那种愚蠢的东西。

谢谢!

回答

0

这里的最新回复,但我想我仍然会为偶然遇到同样问题的读者发帖。

尽管为HTTPS配置了检查,但使用端口HTTP的Monit似乎并未出现问题。它总是会报告HTTP协议的状态(一个显示错误)。

真正的问题可能是Monit不支持SSL的SNI,所以它会在您的https检查中忽略with http headers [Host: www.domain.com ...。因此检查失败,因为Monit实际上正在测试https://localhost

我向Monit开发者here提交了错误。