Невозможно получить vm-list для KVM с помощью nrpe check

Я создал проверку на виртуализированном хосте 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 -

Пожалуйста, посоветуйте ....

1
задан 8 April 2017 в 13:24
1 ответ

Для запуска инструмента 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
1
ответ дан 3 December 2019 в 23:32

Теги

Похожие вопросы