У меня есть рабочий экземпляр 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), переданных в виде массива.
Ваш пример:
vars.nrpe_arguments = [10, 20]
Лучше пойти этим путем, и в случае, если у вас будет больше определений CheckCommand для обмена, отправьте их вверх по течению - это, безусловно, помогает не заботиться об определениях CheckCommand, а только о хостах / сервисах и их настраиваемых атрибутах, используемых в качестве параметров команды :)
https://wiki.icinga.org/display/community/Contribute+Icinga+2+ITL+Plugin+Check+Command+Definitions