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