Добрый день читатель.
Сегодня я расскажу о своем опыте мониторинга виртуальных машин VirtualBox с Nagios под OS Ubuntu Linux 10.10.
Задача
Обеспечить проверку наличия запущенного окружения VirtualBox в режиме Headless на Ubuntu с помощью существующей системы мониторинга Nagios. Виртуальныя машина работает на локалку и имеет фейковый IP, поэтому прямой мониторниг хоста из Интернет затруднителен. Прогуглив тему, обнаружил готовый плагин для Nagios check_vbox. Данный плагин написан на bash, и не представляет трудностей для прочтения и понимания. Однако, написан он под версию VirtualBox 4.x. Так же, по всей видимости заточен под CentOS. Для корректной работы в окружении Ubuntu 10.10 и VirtualBox 4.0.x потребовалась легкая доработка напильником. Вот об этом я сейчас расскажу подробнее.
Получение и настройка плагина
Предполагается, что у вас уже имеется установленный и настроенный Nagios и NRPE. Запускать плагин мы будем именно через NRPE.
Для начала, качаем плагин с официального сайта Nagios Exchange.
Пропатченную версию плагина можно взять тут. Изменения приводятся ниже.
wget "http://exchange.nagios.org/components/com_mtree/attachment.php?link_id=1860&cf_id=24" -O /root/check_vbox.tgz
или у меня:
wget "https://blog.msmsoft.info/upload/check_vbox.tgz" -O /root/check_vbox.tgz
и распаковываем его. В случае с ubuntu в /usr/lib/nagios/plugins
cd /usr/lib/nagios/plugins tar -zxvf /root/check_vbox.tgz
Далее производим изменения согласно данному патчу:
1c1 < #!/bin/sh --- > #!/bin/bash 111c111 < VBM="$SUDO -u $USER $VBM" --- > VBM="$SUDO -H -u $USER $VBM" 116c116 < NAMES=$($VBM list -l vms|$GREP -e Name|cut -d : -f 2|sed 's/^ *//g'|tr '\n' $VMSEPERATOR) --- > NAMES=$($VBM list -l vms|$GREP -e "Name:"|cut -d : -f 2|sed 's/^ *//g'|tr '\n' $VMSEPERATOR)
В результате, плагин будет поддерживать VirtualBox v 4.x.x. и корректно работать с шеллом Ubuntu.
Далее в локальный файл /etc/nagios/nrpe.cfg прописываем:
command[check_vbox]=/usr/lib/nagios/plugins/check_vbox -u vbox -V $ARG1$
и рестартуем:
/etc/init.d/nagios-nrpe-server restart
Предполагается, что VirtualBox окружения работают под пользователем vbox.
И добавляем следующую строчку в /etc/sudoers используя visudo:
nagios ALL=(vbox) NOPASSWD: /usr/bin/VBoxManage
Опять же, предполагается что NRPE в вашей системе работает под пользователем nagios, как и настроено по умолчанию.
Настройка Nagios
Теперь настало время настроить собственно Nagios сервер для опроса состояния VirtualBox. Для этого, мы добавляем в /usr/local/nagios/etc/objects/commands.cfg следующий код:
# 'check_vbox' command definition define command{ command_name check_vbox command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c check_vbox -a $ARG1$ }
В данном случае, в параметре -a передается одно или несколько, через запятую, имен виртуальных машин состояние которых требуется проверять.
Далее, можно создать проверку для конкретного хоста примерно следующим образом:
define service{ use generic-service host_name your.vboxhost.com service_description vbox check_command check_vbox!Asterisk }
На этом собственно все. Надеюсь статья будет полезна.
Комментарии как всегда приветствуются.
Спасибо за внимание 🙂
[ad#ad-horizontal-big]