Nagios Memantau Teks di Situs Web


10

Saya bertanya-tanya apakah saya bisa mendapatkan bantuan dengan memonitor teks pada situs web. IE Jika saya ingin memonitor google.com untuk teks "Privasi", saya pikir saya akan menggunakan perintah berikut:

check_http -H google.com -u http://www.google.com -s "Privacy"

Tapi itu tidak berhasil. Saya mendapatkan "OK" tidak peduli apa yang saya kutip. Saya jelas menggunakan perintah yang salah atau opsi yang salah. Tolong bantu.

Jawaban:


7

Coba tinggalkan taruh -u. -u memberi path (halaman) untuk mengambil, defaultnya adalah "/", tidak mengambil seluruh URL. Ini adalah output saya ketika saya meninggalkannya.

$ ./check_http -H www.google.com -s "Privacy"
HTTP OK HTTP/1.0 200 OK - 0.041 second response time |time=0.040579s;;;0.000000 size=5257B;;;0
$ ./check_http -H www.google.com -s "Privacyblahdibla"
HTTP CRITICAL - string not found|time=0.048169s;;;0.000000 size=5257B;;;0

Jika Anda ingin mendapatkan halaman tertentu, gunakan -u seperti ini

$ ./check_http -H www.google.com -u "/ig" -s "Privacy"
HTTP OK HTTP/1.0 200 OK - 0.166 second response time |time=0.165896s;;;0.000000 size=87843B;;;0

Saya masih memiliki masalah dengan situs web saya yang sebenarnya yang saya coba pantau, inilah yang saya dapatkan ./check_http -H mysite.myschool.edu -u "/ cp / home / displaylogin" -s "dsklajfdl" HTTP OK - HTTP / 1.1 302 Ditemukan - 0,003 waktu respons kedua | waktu = 0,003486s ;;; 0,000000 size = 104B ;;; 0
IOTAMAN

Atau contoh lain adalah ./check_http -H mysite.myschool.edu -u "/index.html" -s "dsklajfdl" HTTP OK - HTTP / 1.1 302 Ditemukan - waktu respons 0,003 kedua | waktu = 0,003466s ;;; ukuran 0,000000; = 94B ;;; 0
IOTAMAN

Ya, tampaknya jika pengalihan (301 atau 302) adalah respons yang diabaikan oleh string pencarian, yang mungkin benar. Jawabannya adalah menemukan url persisnya yang sedang Anda arahkan. Anda harus dapat melakukannya dengan membuka halaman di browser. Jika itu tidak berhasil, cobalah mengaksesnya melalui telnet untuk melihat apa nilai header Lokasi:.
palehorse

1

Opsi lain adalah menggunakan check_curl dari monitoringexchange.org. Pada kenyataannya, ini adalah masalah yang terlalu rumit untuk apa yang Anda coba lakukan, tetapi saya telah menemukan itu memperluas fungsi ketika Anda membutuhkannya untuk mem-parsing data dari situs web dan memasukkan input

Isi check_curl non-variabel khusus saya di bawah:

 #!/bin/bash
 PROG=/usr/local/bin/curl
 FILE=/tmp/check_curl
 HALT=PRIVACY

 $PROG -k -s http://www.google.com > $FILE

 STATUS=`grep Error $FILE | awk '{ print $0 }'`

 grep -w $HALT $FILE > /dev/null
 if [ $? -eq 0 ]
    then
      WORKING=`grep Privacy $FILE | awk '{ print $5 }'`
      echo "Works, Returns data of $WORKING"
      rm $FILE
 else echo "Doesn't return $WORKING"| $STATUS"
      exit 2
  fi


0

Kami menulis skrip perl khusus menggunakan LWP dan HTML :: Tree untuk mencari string tertentu. Kami juga hanya md5sum beberapa halaman di mana konten tidak berubah.


1
Saya sendiri senang dengan check_http tetapi jika Anda menyarankan metode ini sebagai solusi, mungkin berikan skrip perl?
Mahal

0

Jika saya mendapatkan masalah seperti ini dengan plugin check_http, saya biasanya meletakkan URL yang saya cari di teks dan kemudian memeriksa hasilnya.

Jika Anda menginginkan sesuatu yang sedikit lebih dari check_http, seperti masuk ke situs web atau memeriksa lebih dari satu string, lihat di WebInject - ini adalah plugin yang bagus.


0

Anda harus menentukan -eopsi agar -sopsi memiliki efek yang diinginkan:

$ ./check_http -H "www.eurocarparts.com" -u / -s "no such string"
OK - HTTP/1.1 302 Found - 0.476 second response time |time=0.475776s;;;0.000000 size=17701B;;;0

$ ./check_http -H "www.eurocarparts.com" -u / -s "no such string" -e 302
CRITICAL - string not found|time=1.633004s;;;0.000000 size=17701B;;;0

$ ./check_http -H "www.eurocarparts.com" -u / -s "0870" -e 302
HTTP OK HTTP/1.1 302 Found - 4.032 second response time |time=4.032120s;;;0.000000 size=17701B;;;0

0

Berikut adalah beberapa cek yang saya gunakan.

Yang pertama mencari teks CCServerServicedan melaporkan kesalahan jika tidak melihatnya:

define command {
    command_name  check_cc_v5
    command_line  /usr/local/nagios/libexec/check_http -H $HOSTADDRESS$ -p 8080 -u /CCServer/CCServer --regex=CCServerService -w 3 -c 5 -t 10
}

Yang kedua memeriksa teks errordan melaporkan kesalahan jika melihatnya:

define command {
    command_name  check_wb_pps
    command_line  /usr/local/nagios/libexec/check_http -S -H $HOSTADDRESS$ -u /onlinestore/booking.php --regex=error --invert-regex -w 30 -c 60 -t 90
}
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.