Як я можу вирішити результати "(перевірка сервісу не вийшла належним чином)" та "(нуль)" за допомогою моїх послуг?


10

Я використовую деякі сценарії на основі Perl для перевірки обслуговування в Nagios, і я отримую, (Service check did not exit properly)і (null)як результат, в Nagios, але сценарій чудово працює в командному рядку.

Я бачив рішення в Інтернеті, які пропонують відключити внутрішній інтерпретатор Perl, встановивши enable_embedded_perl=0в конфігурації Nagios або чітко вказавши шлях до перекладача. Це не допомогло в питанні.

Що ще могло бути?


Чи можете ви показати приклад того, як це "чудово працює" через CLI?
Кіт

Відповіді:


11

У Nagios є власний вбудований перекладач perl. Можливо, ваш плагін не сумісний із epn.

Ви можете вимкнути його глобально або просто відключити його для свого сценарію. Унизу сторінки документів показано, як це зробити.

В основному, додайте # nagios: -epnйого власний рядок десь у перші десять рядків сценарію. Це повинно вирішити вашу проблему.

Ви також можете зробити це сумісним , але це майже точно не варте клопоту.


Так, дякую за пропозицію. Незважаючи на те, що я прямо заявив, що це не вплинуло на конкретну проблему, з якою я стикався.
Der Hochstapler

Це справжня рішучість для нагіосів. без -epn, плагін включається і виконується внутрішньо нагіосами. з -epn, він завантажується як зовнішній виконуваний файл, подібний до бінарних файлів або скриптів bash. Див. Сторінку: nagios.sourceforge.net/docs/3_0/embeddedperl.html та розглядай скаргу
epn

1
Товста кишка потрібна в # nagios: -epnдокументах і на мої тести.
idupree

1
Як не дивно, у поточній версії Ubuntu LTS (18.04) нагіо-плагінів (2.2-3ubuntu2) є ця проблема. Речі працювати , якщо я або змінити які поставлені плагінів, наприклад , check_disk_smbі check_file_age, або , якщо я викладуuse_embedded_perl_implicitly=0
Akom

Виправлено це для мене! Дякую ...
Оскар Браво

3

Деякі сценарії Perl з Nagios Exchange намагаються включити utils.pmмодуль Perl. Ви знайдете такий рядок десь у ньому:

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

Під час встановлення Nagios на Debian стандартним є розташування utils.pmфайлу /usr/lib/nagios/plugins/utils.pm. Тож use libдиректива повинна бути:

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

Виконання команди з командного рядка, швидше за все, спрацювало тому, що ви були /usr/lib/nagios/plugins/, редагуючи свій плагін.


2

Префікс команди з /usr/bin/perl.

Це рішення є скоріше обхідним рішенням, можливо, це не дуже добре, але принаймні ваш плагін повинен працювати так само, як і при запуску з терміналу.

ПРИМІТКА: На мій досвід # nagios -epnпрацює досить часто, але іноді це здається недостатньо. Я помітив, що коли це відбувається, несправні плагіни повідомляють про багато попереджень (коли викликається сценарій perl -w).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.