Làm cách nào tôi có thể giải quyết các kết quả (Kiểm tra dịch vụ không thoát đúng)


10

Tôi đang sử dụng một số tập lệnh dựa trên Perl để kiểm tra dịch vụ ở Nagios và tôi nhận được (Service check did not exit properly)(null)kết quả là ở Nagios, nhưng tập lệnh hoạt động rất tốt trên dòng lệnh.

Tôi đã thấy các giải pháp trực tuyến đề xuất vô hiệu hóa trình thông dịch Perl nội bộ bằng cách cài đặt enable_embedded_perl=0cấu hình Nagios hoặc bằng cách chỉ định rõ ràng đường dẫn đến trình thông dịch. Điều này đã không giúp đỡ với vấn đề.

Nó có thể là gì khác?


Bạn có thể đưa ra một ví dụ về cách nó "hoạt động tuyệt vời" thông qua CLI không?
Keith

Câu trả lời:


11

Nagios bao gồm trình thông dịch perl nhúng riêng của nó. Plugin của bạn có thể không tuân thủ epn.

Bạn có thể muốn vô hiệu hóa nó trên toàn cầu hoặc chỉ vô hiệu hóa nó cho tập lệnh của bạn. Phần dưới cùng của trang tài liệu đó cho bạn thấy làm thế nào để làm điều này.

Về cơ bản, hãy thêm # nagios: -epnvào dòng riêng của nó ở đâu đó trong mười dòng đầu tiên của tập lệnh của bạn. Điều này sẽ khắc phục vấn đề của bạn.

Bạn cũng có thể làm cho nó tuân thủ , nhưng nó gần như chắc chắn không đáng để gặp rắc rối.


Vâng, cảm ơn vì lời đề nghị. Mặc dù tôi đã tuyên bố rõ ràng rằng điều này không có bất kỳ tác động nào đến vấn đề cụ thể mà tôi đang gặp phải.
Der Hochstapler

Đây là giải quyết thực sự cho nagios. không có -epn, plugin được bao gồm và được thực thi bởi nagios. với -epn, nó được tải dưới dạng thực thi bên ngoài, tương tự như nhị phân hoặc tập lệnh bash. Xem trang: nagios.sourceforge.net/docs/3_0/embeddedperl.html và xem xét khiếu nại
epn

1
Dấu hai chấm là bắt buộc # nagios: -epn, theo các tài liệu và theo các bài kiểm tra của tôi.
idupree

1
Thật kỳ lạ, phiên bản Ubuntu LTS (18.04) hiện tại của nagios-plugins-standard (2.2-3ubfox2) có vấn đề này. Mọi thứ hoạt động nếu tôi sửa đổi các plugin bị ảnh hưởng, ví dụ check_disk_smbcheck_file_age, hoặc nếu tôi đặtuse_embedded_perl_implicitly=0
Akom

Đã sửa nó cho tôi! Cảm ơn ...
Oscar Bravo

3

Một số tập lệnh Perl từ Nagios Exchange sẽ cố gắng bao gồm utils.pmmô-đun Perl. Bạn sẽ tìm thấy một dòng như thế này ở đâu đó trong đó:

use lib "/usr/local/nagios/libexec";

Khi cài đặt Nagios trên Debian, vị trí mặc định của utils.pmtệp là /usr/lib/nagios/plugins/utils.pm. Vì vậy, use libchỉ thị nên là:

use lib "/usr/lib/nagios/plugins";

Thực thi lệnh từ dòng lệnh rất có thể đã hoạt động vì bạn đã vào /usr/lib/nagios/plugins/, chỉnh sửa plugin của mình.


2

Tiền tố lệnh với /usr/bin/perl.

Giải pháp này là một cách giải quyết khác, có lẽ không nên làm như vậy nhưng ít nhất plugin của bạn sẽ hoạt động giống như khi bạn khởi chạy nó từ thiết bị đầu cuối.

LƯU Ý: Theo kinh nghiệm của tôi # nagios -epnhoạt động khá thường xuyên, nhưng đôi khi dường như không đủ. Tôi nhận thấy rằng khi điều này xảy ra, các plugin bị lỗi báo cáo nhiều cảnh báo (khi tập lệnh được gọi với perl -w).

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.