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