Tôi đã thử sử dụng check_http nhưng tôi vẫn thành công ngay cả khi trang web được chuyển hướng đến một trang lỗi
Điều này có thể được giải quyết với check_http --expect
. Đây là tài liệu từ check_http --help :
-e, --Exect = STRING Danh sách các chuỗi được phân tách bằng dấu phẩy, ít nhất một trong số chúng được mong đợi trong dòng (trạng thái) đầu tiên của phản hồi máy chủ (mặc định: HTTP / 1.) Nếu được chỉ định bỏ qua tất cả logic dòng trạng thái khác ( ví dụ: 3xx, 4xx, 5xx đang xử lý)
Ví dụ sau sẽ trả về 'OK' cho mã phản hồi HTTP 200 OK , nhưng sẽ gây ra lỗi nghiêm trọng cho chuyển hướng 302.
host % check_http --expect=200
HTTP CRITICAL - Invalid HTTP response received from host: HTTP/1.0 301 OK
Để có một trang web an toàn (qua SSL) và xác thực, hãy kiểm tra check_http --ssl
và các --authorization
cờ.
-S, --ssl Kết nối qua SSL. Cổng mặc định là 443
-a, - Authorization = AUTH_PAIR Tên người dùng: mật khẩu trên các trang web có xác thực cơ bản
Hoặc, có lẽ bạn không thực sự muốn đăng nhập vào hệ thống mà chỉ muốn đảm bảo rằng trang yêu cầu tên người dùng / mật khẩu, vì tên người dùng / mật khẩu đó có thể trở thành mối quan tâm bảo mật. Trong trường hợp đó, hãy thử một cái gì đó như sau / 401
là mã phản hồi HTTP cho 'Không được phép' hoặc 'Yêu cầu ủy quyền' - 401
là bắt buộc, chuỗi văn bản sau đó là tùy chọn và có thể nói một trong nhiều điều khác nhau, vì vậy tôi chỉ nói với Nagios mong đợi 401
.
check_http --expect="401"
check_http
Plugin hỗ trợ các-s string
tùy chọn cho phép bạn tìm kiếm chuỗi nhất định phản hồi HTTP. Nếu trang đang in một chuỗi cụ thể khi thành công, bạn có thể kiểm tra nó để phân biệt với lỗi.