Nagios Giám sát văn bản trên một trang web


10

Tôi đã tự hỏi nếu tôi có thể nhận được một số trợ giúp với văn bản giám sát trên một trang web. IE Nếu tôi muốn theo dõi google.com cho văn bản "Quyền riêng tư", tôi nghĩ rằng tôi sẽ sử dụng lệnh sau:

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

Nhưng nó không hoạt động. Tôi nhận được "OK" bất kể tôi đặt dấu ngoặc kép là gì. Tôi rõ ràng là sử dụng lệnh sai hoặc tùy chọn sai. Xin vui lòng giúp đỡ.

Câu trả lời:


7

Hãy thử đặt -u. -u đưa ra đường dẫn (trang) để truy xuất, mặc định là "/", nó không lấy toàn bộ URL. Đây là đầu ra của tôi khi tôi rời khỏi nó.

$ ./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

Nếu bạn muốn có một trang cụ thể, hãy sử dụng -u như thế này

$ ./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

Tôi vẫn gặp sự cố với trang web thực tế của mình mà tôi đang cố gắng theo dõi, đây là những gì tôi nhận được ./check_http -H mysite.myschool.edu -u "/ cp / home / displaylogin" -s "dsklajfdl" HTTP OK - Đã tìm thấy HTTP / 1.1 302 - Thời gian phản hồi 0,003 giây | time = 0,003486s ;;; 0,000000 size = 104B ;;; 0
IOTAMAN

Hoặc một ví dụ khác là ./check_http -H mysite.myschool.edu -u "/index.html" -s "dsklajfdl" HTTP OK - Tìm thấy HTTP / 1.1 302 - Thời gian phản hồi 0,003 giây | time = 0,003466s ;;; = 94B ;;; 0
IOTAMAN

Có, có vẻ như nếu một chuyển hướng (301 hoặc 302) là phản hồi mà kiểm tra bỏ qua chuỗi tìm kiếm, điều này có thể đúng. Câu trả lời là tìm url chính xác mà bạn đang được chuyển hướng đến. Bạn sẽ có thể làm điều đó bằng cách đi đến trang trong trình duyệt. Nếu điều đó không hiệu quả, hãy thử truy cập nó qua telnet để xem giá trị tiêu đề Locaction: là gì.
nhợt nhạt

1

Một tùy chọn khác là sử dụng check_curl từ theo dõiexchange.org. Trong thực tế, điều này quá phức tạp đối với những gì bạn đang cố gắng thực hiện, nhưng tôi đã tìm thấy nó mở rộng tính hợp lệ khi bạn cần nó để phân tích dữ liệu từ các trang web và chèn đầu vào

Nội dung của check_curl không biến tùy chỉnh của tôi dưới đây:

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

Chúng tôi đã viết một tập lệnh perl tùy chỉnh bằng cách sử dụng LWP và HTML :: Tree để tìm kiếm các chuỗi cụ thể. Chúng tôi cũng chỉ md5sum một số trang mà nội dung không thay đổi.


1
Bản thân tôi hài lòng với check_http nhưng nếu bạn đề xuất phương pháp này như một giải pháp, có lẽ cung cấp tập lệnh perl?
đắt tiền

0

Nếu tôi gặp vấn đề như thế này với plugin check_http, tôi thường quên URL tôi đang tìm văn bản và sau đó kiểm tra đầu ra.

Nếu bạn muốn một cái gì đó nhiều hơn một chút so với check_http, chẳng hạn như đăng nhập vào một trang web hoặc kiểm tra nhiều chuỗi, hãy xem WebInject - đó là một plugin hay.


0

Bạn cần chỉ định -etùy chọn cho -stùy chọn để có hiệu ứng mong muốn:

$ ./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

Dưới đây là một vài kiểm tra tôi sử dụng.

Đầu tiên tìm văn bản CCServerServicevà báo lỗi nếu nó không nhìn thấy:

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
}

Kiểm tra thứ hai cho văn bản errorvà báo lỗi nếu thấy nó:

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
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.