404 sayfalık monitör monitörü http durumu


12

404 veya 403 sayfa ile HTTP durumunu izlemeye çalışıyorum. Hepinizin bildiği gibi Monit bu sayfaları başarısız bağlantı olarak alıyor, ancak bunu nasıl değiştirebilirim. Sadece 404 veya 403 sayfasını gösterdiğini izlemek istiyorum.

Mümkünse bu yapılandırma ile kontrol etmeliyim.

Bu benim kontrol yapılandırma:

check process httpd with pidfile /var/run/httpd.pid
  start program = "/etc/init.d/httpd start"
  stop program = "/etc/init.d/httpd stop"
    if failed host hostname port 80
    protocol HTTP request "/"
    then exec "/bin/bash -c '/bin/echo -e "hostname\thttpd\t3\tFAILED" | /usr/sbin/send_nsca -H nagiosserver -c /etc/send_nsca.cfg; /usr/bin/monit restart nginx;'"

Yanıtlar:


13

5.8 sürümünden bu yana, Monit şu statusseçeneğe sahiptir :

DURUM seçeneği, HTTP sunucusu tarafından döndürülen HTTP durum kodunu açıkça test etmek için kullanılabilir. Kullanılmazsa, döndürülen durum kodu 400'den büyük veya ona eşitse http protokol testi başarısız olur. Durum niteleyicisini kullanarak bu davranışı geçersiz kılabilirsiniz.

Örneğin, bir sayfanın mevcut olmadığını test etmek için (bu durumda 404 döndürülmelidir):

if failed
   port 80
   protocol http
   request "/non/existent.php"
   status = 404
then alert

6

statusBenim için işleri (monit 5.6) yoktu. Sanırım 5.8'den destekleniyor mu?

Ben curl kullanan bir komut dosyası ile sona erdi:

#!/bin/bash
# source: /etc/monit/bin/http-check.sh

url="http://user:password@domain.com/test_link/index.php"

response=$(curl -sL -w "%{http_code}\\n" $url | grep 404)

if [ "$response" = "404" ]
then
  exit 0
else
  exit 1
fi

Sonra aşağıdaki monit yapılandırmasını ekledim

check program http-check with path "/etc/monit/bin/http-check.sh"
  if status != 0
  then alert
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.