четверг, 30 сентября 2010 г.

Хочу всё знать или уведомления через SMS

Данный пост является продолжение  Vmware ESXi 4.1 и APC Smart-UPS 1000VA USB & Serial RM 2U
Путей реализации отправки уведомлений через SMS много.
И так цели:
Необходимо получать SMS на сотовый в случаи пропадания питания на APC-UPS и выключении виртуальных машин на гипервизоре ESXi.
Одно из решений:
1. Регистрируем почтовый аккаунт на mail.ru
2. Скачиваем архив с скриптом на Python отсюда http://file.qip.ru/file/kv2u-TVD/sms_send.html
3. Закачиваем архив sms_send.zip на vMA через winSCP
    или делаем так  (в обоих местах лежит один и тот же скрипт)

 В конечном итоге архив должен оказаться на vMA
4. Распаковываем  и проверяем содержимое
[vi-admin@vma ~]$ unzip ./sms_send.zip
[vi-admin@vma ~]$ cd sms_send
[vi-admin@vma sms_send]$ ls

mrimsmssender  send.py

5. Немного правим скрипт под vMA
[vi-admin@vma sms_send]$ nano /home/vi-admin/sms_send/send.py

делаем первые строки такие
#!/usr/bin/python
# -*- coding: utf-8 -*-

6. делаем скрипты для отправки уведомлений
[vi-admin@vma sms_send]$ sudo nano /opt/APC/PowerChuteBusinessEdition/Agent/cmdfiles/send_sms_no_power.sh
с таким содержимым

#!/bin/sh
/home/vi-admin/sms_send/send.py -n +79534xxxxx6 -t "нет напряжения на ESXi" -l tvoi-email@mail.ru -p tvoi-password > /dev/null 2>&1
[vi-admin@vma ~]$ sudo nano /opt/APC/PowerChuteBusinessEdition/Agent/cmdfiles/send_sms_power_off.sh
с таким содержимым

#!/bin/sh
/home/vi-admin/sms_send/send.py -n +
79534xxxxx6 -t "ESXi-выключается" -l tvoi-email@mail.ru -p tvoi-password > /dev/null 2>&1

79534xxxxx6 - это номер куда отправлять SMS
tvoi-email@mail.ru - это твой адрес на mail.ru
tvoi-password - это твой пароль от от твоего почтового ящика

7. Делаем скрипты исполняемым
[vi-admin@vma sms_send]$ sudo chmod +x /opt/APC/PowerChuteBusinessEdition/Agent/cmdfiles/send_sms_no_power.sh
[vi-admin@vma ~]$ sudo chmod +x /opt/APC/PowerChuteBusinessEdition/Agent/cmdfiles/send_sms_power_off.sh
8. Добавляем в defaut.sh выполнение скрипта с отсылкой SMS о выключении
[vi-admin@vma ~]$ sudo nano /opt/APC/PowerChuteBusinessEdition/Agent/cmdfiles/default.sh
 
Должно быть вот так:
# If this does not work please contact your system administrator.
#
/opt/APC/PowerChuteBusinessEdition/Agent/cmdfiles/send_sms_power_off.sh
/home/vi-admin/upsVIShutdown.pl
Сначала отсылаем SMS, а потом выключаем виртуальные машины.
9. Указываем в качестве события пропадания напряжения на APC-UPS  скрипт send_sms_no_power.sh
Вот и все - теперь при пропадании напряжения будут идти увидомления на сотовый телефон. Так же можно сделать еще десяток скриптов и повесить их на разные события  - дело только в фантазии.

среда, 1 сентября 2010 г.

Vmware ESXi 4.1 и APC Smart-UPS 1000VA USB & Serial RM 2U

Каждому администратору использующему виртуализацию всегда доставляла боль защита виртуальных машин при отключении питания. Использование UPS спасало на половину, потому что обратной связи не было. В версии ESXi 4.1 появилась возможность проброса USB или COM  устройств на конкретную виртуальную машину.
И так имеем:
1. Smart APC  (по сути модел не имеет значения, главное наличие обратной связи)
2. Сервер виртуализации с установленным ESXi 4.1

Задача состоит в то чтобы при достижении  минимального значения заряда батарей UPS, происходило выключение виртуальных машин средствами ESXi.

1.  Необходимо скачать vMA vSphere Management Assistan
2.  Скачать с сайта http://www.apc.com для своего источника бесперебойного питания, программу PowerChute Business Edition 8.0.1 - Single Node Agen для Linux, найти её можно зарегистрировавшись и пройдя по ссылкам.
3. Понадобятся скрипты upsVIShutdown.pl и ghettoShutdown.pl

И так по порядку:
Делаем установку vMA на ESXi
 Производим запуск vMA, делаем сетевые настройки и задаем пароль юзера vi-admin  (пароль должен быть сложным).

С помощью WinSCP закидываем в домашний каталог наши 2 скрипта (upsVIShutdown.pl и ghettoShutdown.pl)  и pcbe801_linux.tar.gz скачанный с сайта APC.

Делаем наши скрипты исполняемыми.
[vi-admin@vma ~]$ chmod +x upsVIShutdown.pl
[vi-admin@vma ~]$ chmod +x ghettoShutdown.pl

Распаковываем наш PCBE и устанавливаем
[vi-admin@vma ~]$ tar -xzvf pcbe801_linux.tar.gz
[vi-admin@vma ~]$ cd Linux/
[vi-admin@vma ~]$ sudo rpm -ivh pbeagent-8.0.1-609.i386.rpm

Переименовываем файл /etc/vima-release:
[vi-admin@vma ~]$ sudo mv /etc/vima-release /etc/vima-rel

Производим настройку агента
[vi-admin@vma ~]$ sudo /opt/APC/PowerChuteBusinessEdition/Agent/config.sh
С нас потребуется ввод пароля и имени пользователя для доступа через WEB, а так же указание на каком COM порту находится наш UPS


Далее запускаем наш агент.
[vi-admin@vma ~]$ sudo /etc/init.d/PBEAgent start

Выключаем фаервол
[vi-admin@vma ~]$ sudo chkconfig iptables off 
[vi-admin@vma ~]$ sudo service iptables save 
[vi-admin@vma ~]$ sudo service iptables stop

Пробуем увидеть нашу панель управления через WEB http://10.129.0.9:3052 , у меня vMA находится на 10.129.0.9. На машине администратора должна быть установлена JAVA

Вводим пароль и имя пользователя который вносили при конфигурирование и видим наше чудо
Теперь остается дело за малым, указать нашему событию скрипт который будет гасить наши виртуальные машины.
 [vi-admin@vma /]$ sudo nano /opt/APC/PowerChuteBusinessEdition/Agent/cmdfiles/default.sh
 и добавляем туда наш скрипт
/home/vi-admin/upsVIShutdown.pl



теперь надо настроить наш скрипт что бы он гасил наши машины
[vi-admin@vma /]$ sudo nano /home/vi-admin/upsVIShutdown.pl


Последний шаг - привязываем хосты, чтобы гостевая ОС имела право их гасить:
[vi-admin@vma /]$ sudo bash
[root@vma /]# vifp addserver 10.129.0.2
[root@vma /]# vifp listservers
[root@vma /]# vifpinit

При срабатывании, скрипт отдаст команду погасить виртуальные машины и хосты, прописанные в конфиге.


P/S Устанавливать можно любую систему мониторинга написанную на JAVA, не обязательно это будет APC