Назад | Перейти на главную страницу

Передача аргументов в плагин nagios

Я установил свой первый плагин на сервер Nagios, но у меня проблемы с аргументацией. Я пробовал кое-что с $ ARG1 $, но, по сути, просто провалился.

Возможно, есть одна сложность: этот плагин должен работать на самом сервере nagios; нет вызова npre к удаленному ящику.

Плагин представляет собой сценарий оболочки, который выполняет вызов curl для удаленного ящика под капотом. Типичное использование командной строки с флагами будет выглядеть так:

my_shell_script.sh -H my.server.of.interest -P 9000 -I ./tmp/settings_file -timeout 80

(да, у него есть собственный флаг '-H', не связанный с флагом имени хоста nagios.)

Вот скелет, который у меня сейчас есть. Нагиос, кажется, думает, что все мои флаги - один гигантский.

define command {
   command_name    my_command
   command_line    $USER1$/my_shell_script.sh $ARG1$
}

define service {
   use                  generic-service;
   host_name            {{what do I put here?  This is supposed to run on the nagios box itself. My shell script is installed on it.}};
   service_description      some description
   check_command         my_command!{{what goes here?}}
}

Вышесказанное немного урезано для удобства чтения, но в этом суть. У меня проблемы с именем хоста, аргументами и битами в «что я здесь помещаю». Я могу подтолкнуть меня, и спасибо за предложения.

[Edit] похоже, цель моего сообщения была неправильно понята на моем родном языке.

Когда я говорю, что «по сути шатаюсь», это происходит после нескольких попыток использования макросов $ ARG $ и перестановки вещей разными способами и осознания того, что то, что я пробовал, просто не работает. Я намеренно разместил упрощенную версию кода своего плагина, пытаясь понять правильное направление.

В определении службы вы указываете host_name хоста, на котором работает служба, которую вы хотите проверить.

Определение check_command my_command!whatever пройдет whatever к определению команды как $ ARG1 $. Добавить больше !more за $ ARG2 $ и т. д.

Вам необходимо передать необходимые параметры в my_shell_script.sh в определении команды. У вас есть доступ к таким вещам, как $ HOSTNAME $ и $ HOSTADDRESS $; команда, которую вы определяете в define command раздел будет запущен локально на сервере nagios; для таких вещей, как nrpe, есть определение команды, которая подключается к серверу nrpe ... следовательно, команда запускается локально!

Начало Вот для документации nagios, например «Основы» и «Стандартные макросы в Nagios».