2016-04-27 115 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提交了錯誤。