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

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

Я создал проверку на виртуализированном хосте 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 требует привилегий root, и это то, что вы на самом деле делаете, выполняя его непосредственно из оболочки.

Однако он выполнен как nagios пользователь при запуске через демон NRPE. Чтобы исправить это, вам нужно добавить sudo к определению команды в nrpe.cfg:

command[check_kvm]=sudo /usr/local/nagios/libexec/check_kvm

И добавить nagios пользователь в файл sudoers, чтобы разрешить выполнение этой команды / скрипта без запроса пароля:

nagios  ALL = NOPASSWD: /usr/local/nagios/libexec/check_kvm