尝试配置 monit 以使用 https 协议,但它坚持使用 http

尝试配置 monit 以使用 https 协议,但它坚持使用 http

我正在尝试通过 Monit 监控本地 Apache 实例上的 VHost。同一个域同时接受http https流量,所以我想监控两者。

此外,域名解析的 IP 会转到一个服务器,该服务器会对当前 Apache 实例和另一个运行 Apache 的服务器之间的流量进行负载平衡。我需要 Monit 来监控当地的例如,我希望避免在/etc/hosts文件,所以我想 Monits 配置设置with http headers []就足够了,我认为是的(只是监控本地主机,但将标头设置Host为 vhost 域)。

无论如何,我遇到的主要问题是,尽管我将 Monit 配置为通过以下方式监控主机:httphttps协议,它通过以下方式监控两个主机http但是我需要使用的端口设置为 443https协议。

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

这是该检查的监控状态:

[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

标题在这里不起作用,所以我只使用一个简单的检查:

...
  if failed host www.host.com port 80 protocol http
    and request "/index.html"
    with timeout 25 seconds
    for 4 times within 5 cycles
    then restart
  if failed host www.host.com port 443 protocol https
    and request "/index.html"
    with timeout 25 seconds
    for 4 times within 5 cycles
    then restart
...

相关内容