Monitor status http monitor dengan 404 halaman


12

Saya mencoba memonitor status HTTP dengan halaman 404 atau 403. Seperti yang Anda ketahui, Monit menganggap halaman-halaman itu sebagai koneksi yang gagal, tetapi bagaimana saya bisa mengubahnya. Saya hanya ingin memantau bahwa itu menunjukkan halaman 404 atau 403.

Saya perlu memeriksanya dengan konfigurasi ini jika memungkinkan.

Ini konfigurasi cek saya:

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

Jawaban:


13

Sejak versi 5.8, Monit memiliki statusopsi :

Opsi STATUS dapat digunakan untuk secara eksplisit menguji kode status HTTP yang dikembalikan oleh server HTTP. Jika tidak digunakan, uji protokol http akan gagal jika kode status yang dikembalikan lebih besar atau sama dengan 400. Anda bisa mengganti perilaku ini dengan menggunakan kualifikasi status.

Misalnya untuk menguji bahwa halaman tidak ada (404 harus dikembalikan dalam kasus ini):

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

6

Itu statustidak berhasil untuk saya (monit 5.6). Saya pikir itu didukung dari 5,8?

Saya berakhir dengan skrip yang menggunakan curl:

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

Kemudian saya menambahkan konfigurasi monit berikut

check program http-check with path "/etc/monit/bin/http-check.sh"
  if status != 0
  then alert
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.