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

Параметры проверки NRPE теряются

Я использую Shinken, и у меня есть пакет, который включает в себя несколько команд, запускающих сценарии bash на контролируемом хосте через NRPE. У меня есть проверка на хосте, который запускает сценарий bash, который принимает 4 параметра. Когда он запускает только 1 из 4 параметров, которые я передаю в command.cfg, он попадает на хост для использования скриптом.

Я много искал по этой проблеме и не смог найти решения. Из того, что я читал, большинство проблем, о которых сообщают люди с передачей параметров в NRPE, происходят из-за неправильной установки "dont_blame_nrpe" или из-за того, что nrpe не скомпилирован с поддержкой параметров. В моей ситуации это не так. dont_blame_nrpe установлен в 1, и модуль был скомпилирован с поддержкой параметров. Более того, у меня есть проверка на том же хосте (настроенная в одном пакете), которая принимает один параметр и работает нормально.

Вот мой файл commands.cfg в пакете:

define command {
    command_name   check_nrpe
    command_line   $PLUGINSDIR$/check_nrpe -u -H $HOSTADDRESS$ -c $ARG1$ -a '$ARG2$ $ARG3$ $ARG4$ $ARG5$'
}

Я также пробовал описанное выше с двойными кавычками вокруг всего набора аргументов и двойными кавычками вокруг каждого отдельного аргумента. Я получаю тот же результат, несмотря ни на что.

И определение услуги:

define service{
    service_description check-worker-count
    use            generic-service
    register       0
    host_name      nrpe-pack
    check_command  check_nrpe!check-worker-count!worker-name!12!90!80
}

И /etc/nrpe.d/check-worker-count.cfg на хосте:

command[check-worker-count]=/usr/lib64/nagios/plugins/check_worker_count.sh -n $ARG1$ -p $ARG2$ -w $ARG3$ -c $ARG4$

У меня есть сценарий на хосте, выводящий $ * в самом начале, и вот что он получает:

-n имя-работника -p -w -c

Сравните с запуском скрипта локально с параметрами, переданными в командной строке:

-n имя-работника -p 12 -w 90 -c 80

Не беспокойтесь о разделении всех -a ARG на отдельные ARG в Nagios conf. Вы сведете себя с ума цитатами. Для простоты сделайте свой command_line что-то вроде:

$PLUGINSDIR$/check_nrpe -u -t 30 -H $HOSTADDRESS$ -c $ARG1$ -a $ARG2$

А затем используйте это так:

check_command  check_nrpe!check-worker-count!worker-name 12 90 80

По крайней мере, так вы бы сделали это в Nagios / Icinga. То же самое должно быть и с Синкеном.