Monit仅使用HTTP监控HTTPS网站

3
我正在尝试通过Monit监控本地Apache实例上的一个VHost。同一个域名接受httphttps流量,因此我想要同时监控两者。此外,该域名解析的IP地址指向一个服务器,该服务器在当前Apache实例和运行Apache的另一台服务器之间负载均衡流量。我需要Monit监控本地实例,并希望避免在/etc/hosts文件中添加任何记录,因此我认为Monits配置设置with http headers []就足够了。我认为它是(仅监视localhost,但将头信息Host设置为vhost域)。无论如何,我遇到的主要问题似乎是,即使我配置Monit通过httphttps协议监控主机,它仅通过http监控两个主机,但需要使用https协议设置端口为443。 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状态:

[root@server 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存储库中创建一个问题,但我想确保它不是我忽视的某些小问题。

谢谢!

1个回答

1
迟来的回复,但我认为我会为那些遇到相同问题的读者发帖。
问题似乎并不是Monit使用HTTP端口而不是已配置HTTPS检查。它总是在状态中报告HTTP协议(显示错误)。
真正的问题可能是Monit不支持SSL的SNI,因此它忽略了在https检查中的with http headers [Host:www.domain.com ...。因此,检查失败,因为Monit实际上正在测试https://localhost
我已向Monit开发人员提出了错误

遇到了完全相同的问题。我希望这只是我做错了什么...显然不是,这只是monit的一个bug。 - jaywilliams

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接