404 पृष्ठ के साथ मोनीट http स्थिति की निगरानी करें


12

मैं 404 या 403 पेज के साथ HTTP स्थिति की निगरानी करने की कोशिश कर रहा हूं। जैसा कि आप सभी जानते हैं कि मोनित उन पृष्ठों को असफल कनेक्शन के रूप में लेता है, लेकिन मैं इसे कैसे बदल सकता था। मैं सिर्फ यह देखना चाहता हूं कि यह 404 या 403 पेज को दिखाता है।

अगर संभव हो तो मुझे इस कॉन्फिग के साथ इसकी जांच करनी होगी।

यह मेरा चेक कॉन्फिग है:

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;'"

जवाबों:


13

संस्करण 5.8 के बाद से, मोनेट के पास statusविकल्प है :

STATUS विकल्प का उपयोग HTTP सर्वर द्वारा दिए गए HTTP स्थिति कोड को स्पष्ट रूप से जांचने के लिए किया जा सकता है। यदि उपयोग नहीं किया जाता है, तो http प्रोटोकॉल परीक्षण विफल हो जाएगा यदि लौटाया गया स्थिति कोड 400 से अधिक या उसके बराबर है। आप इस व्यवहार को स्थिति क्वालिफायर का उपयोग करके ओवरराइड कर सकते हैं।

उदाहरण के लिए यह जांचने के लिए कि कोई पृष्ठ मौजूद नहीं है (404 इस मामले में वापस आ जाना चाहिए):

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

6

statusमेरे लिए काम (monit 5.6) नहीं किया। मैं इसे 5.8 से समर्थित है लगता है?

मैं एक स्क्रिप्ट के साथ समाप्त हुआ जो कर्ल का उपयोग करती है:

#!/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

फिर मैंने निम्नलिखित मॉनेट कॉन्फ़िगरेशन को जोड़ा

check program http-check with path "/etc/monit/bin/http-check.sh"
  if status != 0
  then alert
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.