Я установил свой первый плагин на сервер 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».