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

Ошибка при использовании NRPE с Icinga2

У меня есть рабочий экземпляр Nagios, и я хотел бы запустить Icinga2 на другом компьютере. Nagios использует NRPE, поэтому я тоже хотел бы его использовать.

У меня в файлах есть следующая конфигурация:

object Service "NRPE check load" {
    import "generic-service"
    host_name = "agrippina"
    check_command = "nrpe-check-2arg"
    vars.host = "agrippina.domain.net"
    vars.check = "check_load"
    vars.loads = "'10' '20'"
    }

и

object CheckCommand "nrpe-check-2arg" {
    import "plugin-check-command"
    command = [PluginDir + "/check_nrpe" ]
    arguments = {
    "-H" = "$host$"
    "-c" = "$check$"
    "-a" = "$loads$"
    }
}

Когда я даю команду вручную:

/usr/lib/nagios/plugins/check_nrpe -H agrippina.domain.net -c 'check_load' -a '10' '20'

я получаю

ОК - средняя нагрузка: 0,98, 1,39, 3,79 | load1 = 0,980; 10.000; 20.000; 0; load5 = 1,390; 10,000; 20,000; 0; load15 = 3,790; 10,000; 20,000; 0;

Журналы Icinga2:

CHECK_NRPE: Received 0 bytes from daemon.  Check the remote server logs for error messages.

Где мне искать эти сообщения?

Поскольку когда я запускаю эту проверку вручную, и она работает, как исправить это в Icinga2?

+ Изменить vars.loads = "'10' '20'" к vars.loads = "10!20" потому что NRPE не может читать аргументы так, как вы объявили их в объекте Service.

Я бы не стал создавать собственные определения CheckCommand для нескольких случаев использования. Мы сосредоточились на том, чтобы сделать объекты CheckCommand более пригодными для повторного использования во время наших циклов разработки, и вы получите одну вещь - необязательные, а также условные аргументы.

http://docs.icinga.org/icinga2/latest/doc/module/icinga2/chapter/monitoring-basics#command-arguments

Кроме того, icinga2 уже поставляет определение команды проверки плагина nrpe, что также позволяет вам добавить несколько дополнительных аргументов -a), переданных в виде массива.

http://docs.icinga.org/icinga2/latest/doc/module/icinga2/chapter/plugin-check-commands#plugin-check-command-nrpe

Ваш пример:

vars.nrpe_arguments = [10, 20]

Лучше пойти этим путем, и в случае, если у вас будет больше определений CheckCommand для обмена, отправьте их вверх по течению - это, безусловно, помогает не заботиться об определениях CheckCommand, а только о хостах / сервисах и их настраиваемых атрибутах, используемых в качестве параметров команды :)

https://wiki.icinga.org/display/community/Contribute+Icinga+2+ITL+Plugin+Check+Command+Definitions