Я создал проверку на виртуализированном хосте KVM, чтобы получить список доступных виртуальных машин в гипервизоре KVM, используя следующую команду.
$ cat /usr/local/nagios/libexec/check_kvm
#!/bin/sh
val=`virsh list --all | sed '1,2d' | sed '/^$/d'| awk '{print $2":"$3}'`
echo "VM List is" - $val
exit 0
Выполнение сценария локально извлекает данные, как показано ниже.
# sh /usr/local/nagios/libexec/check_kvm
VM List is - oy06b:running .......
В то время как получение данных с сервера nagios используя nrpe, я не могу получить список виртуальных машин. Я получаю следующее: «Список виртуальных машин», а $ val не отображается.
/usr/local/nagios/libexec/check_nrpe -H <Host IP> -c check_kvm
VM List is -
Пожалуйста, посоветуйте ....
Для запуска инструмента virsh
требуются привилегии суперпользователя, и это то, что вы фактически делаете, выполняя его непосредственно из оболочки.
Однако он выполняется как ] пользователь nagios
при запуске через демон NRPE. Чтобы исправить это, вам нужно добавить sudo
в определение команды в nrpe.cfg
:
command[check_kvm]=sudo /usr/local/nagios/libexec/check_kvm
И добавить пользователя nagios
в файл sudoers, чтобы разрешить выполнение этой команды / script без запроса пароля:
nagios ALL = NOPASSWD: /usr/local/nagios/libexec/check_kvm