Примеры применения
13.08.2018

Пример интеллектуального управления питанием группы серверов при помощи NetPing

Пример интеллектуального управления питанием группы серверов при помощи NetPing

Очень часто электропитание объектов IT-инфраструктуры малых и средних офисов является узким местом. Серверные комнаты малых и средних компаний часто не организованы, не соответствуют требованиям безопасности – как информационной, так и пожарной, и электротехнической и находятся в очень ограниченном пространстве. Такие условия могут приводить к аварийным ситуациям, чреватым простоями оборудования или, как минимум, к потенциальным опасностям, что может быть причиной лишнего беспокойства как за безопасность сотрудников, так и за безопасность бизнеса в целом. Для решения таких проблем предоставляется ряд эффективных практических методов улучшения работоспособности информационного оборудования в малых серверных комнатах. В данной статье мы рассмотрим возможность интеллектуального управления питанием небольшой группы серверов при помощи устройств распределённого питания NetPing

Задача

Необходимо обеспечить длительную работу небольшой группы серверов от источника бесперебойного питания, учитывая следующие условия:

  1. Если электропитание будет отключено в нерабочее время, необходимо исключить ситуацию, при которой аккумуляторы к началу рабочего дня (9:00) будут полностью разряжены. Т.е. отключить большинство потребителей и оставить только дежурные устройства. Возобновить работу оборудования нужно в случае восстановления электропитания серверной или в начале рабочего дня (9:00). В начале рабочего дня сервера должны быть включены вне зависимости от наличия электропитания;
  2. Если электропитание будет отключено в рабочее время, оборудование серверной комнаты должно работать до окончания рабочего дня (18:00 часов) или до полного разряда батарей ИБП;
  3. В случае отключения электропитания серверной IT-специалисты организации и заинтересованные лица должны получить SMS-уведомление на мобильный телефон.

Необходимое оборудование

  • Устройство распределённого питания NetPing 8/PWR-220 v3/SMS – 1 шт.;
  • Датчик наличия 220V – 1 шт.;
  • ИБП  1 шт.;
  • ПК или сервер с низким энергопотреблением для работы управляющего скрипта  1 шт.;
  • Сервера-потребители – 4 шт.;
  • Локальная сеть

Схема подключения оборудования

Схема подключения оборудования к NetPing

Алгоритм работы решения

  1. Скрипт на управляющем компьютере раз в 5 минут опрашивает при помощи URL-encoded команды состояние датчика наличия 220V, который подключён к устройству NetPing 8/PWR-220 v3/SMS;
  2. Если датчик наличия 220V сообщает о наличии питания – ничего не происходит;
  3. Если датчик наличия 220V сообщает об отключении питания, и событие отключения произошло в рабочее время – устройство распределённого питания NetPing 8/PWR-220 v3/SMS отправляет SMS-уведомление о событии. Скрипт на управляющем компьютере не отправляет серверам команду на выключение. Оборудование работает до полного разряда батарей, до возобновления питания или до окончания рабочего дня;
  4. Если датчик наличия 220V сообщает об отключении питания, и событие отключения произошло в нерабочее время - устройство распределённого питания NetPing 8/PWR-220 v3/SMS отправляет SMS-уведомление о событии. Скрипт на управляющем компьютере отправляет серверам команду на выключение. При возобновлении электропитания или в начале рабочего дня скрипт отправляет на устройство распределённого питания NetPing 8/PWR-220 v3/SMS команду включить розетки, к которым подключены сервера.

Реализация решения

Настройка устройства распределённого питания NetPing 8/PWR-200 v3/SMS

Считаем, что устройство NetPing 8/PWR-220 v3/SMS настроено на работу в вашей локальной сети, и вам доступен его web-интерфейс. Ознакомиться с настройками устройства NetPing 8/PWR-220 v3/SMS можно в документации к устройству. Также к NetPing 8/PWR-220 v3/SMS необходимо подключить датчик наличия 220V. С правилами подключения датчиков к NetPing 8/PWR-220 v3/SMS можно ознакомиться в руководстве пользователя.

В нашей статье будем использовать следующие параметры:

Параметр

Устройство NetPing 8/PWR-220 v3/SMS

IP адрес

192.168.1.203

Логин

visor

Пароль

ping

IO линия с датчиком наличия 220V

IO 1

Розетки, к которым подключены сервера

Relay 1, Relay 2, Relay 3, Relay 4

Настроим уведомление по SMS для IT-специалистов и других заинтересованных лиц.

Переходим на страницу «SMS» через навигационное меню под шапкой web-интерфейса (1) и заполняем номера телефонов (2) в секции «Настройки GSM». Номера телефонов указываются в международном формате (начиная с +7). Всего можно указать 4 телефонных номера для получения уведомлений. Сохраняем введённые данные кнопкой «Применить изменения» (3):

NetPing8-PWR-220v3-SMS Настройка номеров для отправки sms уведомлений

Затем переходим на страницу «Ввод-вывод» через навигационное меню под шапкой web-интерфейса (1), нажимаем на кнопку «Настроить» для IO линии 1, к которой подключён датчик наличия 220V (2):

NetPing8-PWR-220v3-SMS Настройка датчика наличия 220V

В открывшемся окне указываем нужные типы уведомлений о событиях на IO линии 1 (1). Подтверждаем сохранение изменений нажатием кнопки «Сохранить изменения» (2):

NetPing8-PWR-220v3-SMS Настройка событий датчика наличия 220V для отправки SMS

На этом настройку NetPing 8/PWR-220 v3/SMS для отправки SMS-уведомлений о событиях, регистрируемых датчиком наличия 220V, можно считать оконченной.

Подготовка управляемых серверов

Считаем, что в группу серверов с интеллектуальным управлением питания входят сервера со следующими параметрами:

IP адрес

192.168.1.180

192.168.1.181

192.168.1.182

192.168.1.183

Операционная система

Ubuntu 16.04.4 LTS

Windows Server 2012 R2

Windows Server 2012 R2

CentOS 7.0

Логин

tester

tester

tester

tester

Пароль

12345

12345

12345

12345

Для успешной работы скрипта на серверах с *nix операционными системами нужно установить сервер SSH (если не был установлен ранее). Для серверов под управлением операционных систем семейства Windows – установить пакет OpenSSH (описание установки OpenSSH). Также рекомендуем создать на всех управляемых серверах отдельного пользователя и дать ему права для удалённого подключения и выключения операционной системы (в нашем случае пользователь «tester»). BIOS управляемых серверов необходимо настроить так, чтобы при возобновлении питания сервера включались автоматически.

Создание управляющего скрипта

Для реализации программной составляющей нашей системы интеллектуального управления питанием группы серверов напишем скрипт на скриптовом языке программирования BASH. Скрипт будет выполняться в консоли на ПК/сервере с OS Ubuntu. Управляющий скрипт также можно запустить и на компьютере за пределами локальной сети. В таком случае устройство NetPing 8/PWR-220 v3/SMS должно быть доступно через Интернет, и возможность доступа в Интернет должна быть энергонезависимой. О том, как сделать устройство NetPing 8/PWR-220 v3/SMS доступным через Интернет, можно прочитать здесь

Для работы скрипта на ПК/сервере с OS Ubuntu нужно установить утилиты Curl и Expect. Для этого выполним в консоли команды «sudo apt install curl» и «sudo apt install expect»

Ubuntu Установка curl

Ubuntu Установка expect

Затем создаём файл скрипта intellect_pdu.sh командой «nano intellect_pdu.sh». Скачать подготовленный файл скрипта можно здесь.

Ubuntu Создание файла скрипта

#!/bin/bash

##### В этой секции вы можете указать свои значения #####

#IP адрес устройства NetPing8/PWR-220v3/SMS
NPip="192.168.1.208"
#учетные данные для устройства NetPing8/PWR-220v3/SMS
NPuser="visor"
NPpass="ping"

#Учетные данные для серверов
user="tester"
pass="12345"

#Список серверов
serv="
192.168.1.180
192.168.1.181
192.168.1.182
192.168.1.183
"
###########################################################

while true
do
#Запрашиваем информацию о состоянии датчика наличия 220V:
io1=$(curl --silent --user $NPuser:$NPpass http://$NPip/io.cgi?io1)
sensor_220=${io1:20:1}
if [ "$sensor_220" -eq 0 ] #Если питания нет
then
echo "Питания нет"
d=$(date +%H) #Получаем текущее время.
if [ "$d" -lt "09" ]||[ "$d" -gt "18" ] #Если текущее время раньше 9 утра и позже 18 часов
then
echo "Нерабочее время - выключаем сервера"
#Выключаем сервера:
for S in $serv
do
expect -c "
spawn ssh $user@$S
expect \"*(yes/no)?*\" {send \"yes\r\"}
expect \"Password:\"
send \"$pass\r\"
expect \"*>\"
send \"shutdown -s\r\"
expect \"*shutdown:*\" {send \"sudo shutdown -h now\r\"}
expect \"*$user:*\" {send \"$pass\r\"}
expect eof " >> /dev/null
done
sleep 10m #Таймаут для завершения работы серверов.
#Отключаем розетки к которым подключены сервера:
for ((n=1; n<5; n++))
do
curl --silent --user $NPuser:$NPpass http://$NPip/relay.cgi?r$n=0 >> /dev/null
done
else
echo "Рабочее время - включаем сервера"
#Подаем питание на сервера:
for ((n=1; n<5; n++))
do
curl --silent --user $NPuser:$NPpass http://$NPip/relay.cgi?r$n=1 >>/dev/null
done
fi
else #Если питание есть
echo "Питание есть"
#Подаем питание на сервера:
for ((n=1; n<5; n++))
do
curl --silent --user $NPuser:$NPpass http://$NPip/relay.cgi?r$n=1 >>/dev/null
done
fi
sleep 5m
done

Сохраняем и делаем файл исполняемым при помощи команды «sudo chmod +x intellect_pdu.sh»:

Ubuntu Изменение типа файла

Затем запускаем наш скрипт командой «./intellect_pdu.sh»:

Ubuntu Запуск скрипта на выполнение

И, если исходный код скрипта не содержит синтаксических ошибок, то в консоли будет отображены сообщения о состоянии датчика наличия 220V и действиях, которые выполняет скрипт. Скрипт настроен на бесконечную циклическую работу. Прервать выполнение можно нажатием кнопок «CTRL+C». На скриншоте ниже события для скрипта были смоделированы искусственно, чтобы отобразить все возможные состояния:

Ubuntu Работа скрипта

Для того, чтобы наш скрипт автоматически запускался при запуске ПК/сервера, нужно прописать его в автозагрузку. Для этого откройте файл rc.local командой: «sudo nano /etc/rc.local»:

Ubuntu Открытие файла rc.local

Пропишите скрипт перед строчкой «exit 0» и сохраните файл:

Ubuntu Общий вид файла rc.local

Скрипт выполнится после загрузки системы.

Таким образом мы реализовали систему для интеллектуального управления питанием небольшой серверной.


  • Устройство NetPing 8/PWR-220 v3/SMS

Основные теги


Каталог устойств мониторинг серверных комнат и шкафов
Все устройства
Устройство UniPing v3
Устройство UniPing server solution v3/SMS
Устройство NetPing 2/PWR-220 v1/SMS
Устройство NetPing IO v2
Устройства NetPing
Каталог датчиков для устройств NetPing
Устройство NetPing 8/PWR-220 v3/SMS
Устройство NetPing 2/PWR-220 v3/ETH
Устройство NetPing 2/PWR-220 v2/SMS
Устройство NetPing 4/PWR-220 v3/SMS
Устройство NetPing SMS
Устройство NetPing /PWR-220 v3/ETH
Адаптер WiFi VAP11N
Коммутатор PS104GT
Устройство NetPing Mini-UPS
Коммутатор NP-SM4
Сплиттер POE 12В (стандарта 802.3af)
IRC-TR v2 (ИК модуль расширения)
Каталог устройств удалённого управления и распределения электропитания NetPing
Устройство UniPing server solution
Устройство UniPing server solution v3
Датчик разбития стекла (Стекло-3 ИО 329-4), 2м
Переходник для NetPing IO v2
Устройство NetPing PWR68-01
Датчик мониторинга 220В 1-wire
Адаптер DKST910.8
Устройство NetPing DKST61-01
Блок питания 48В 1,5А (мод.HRS20005)
Датчик температуры TS, 1м
Датчик температуры, (T811), 2м
Датчик температуры WT, 1м
Датчик протечки, модель 2605, 2м
Датчик протечки H2О
Датчик температуры 1-wire, (THS), 2м
МАЯК-12-СТ
Датчик движения (PYRONIX COLT QUAD PI ПИК детектор), 2м
Датчик движения (SWAN-QUAD ИК детектор квадросенсор), (2м)
BM8070D Силовое реле 16А/250В на DIN-рейку
MP701 Исполнительный элемент (4 независимых канала по 2 кВт 10А)
Датчик дыма комбинированный (дым/тепло) ИП 212/101-2М-A1R с базой Е412NL
МОЛЛЮСК-12/1,5
Внешний ИБП SKAT-12DC-1.0 Li-ion
ИКС-1 извещатель охранный инфракрасный активный однолучевой
Датчик охранный (Извещатель охранный ИО102-20/Б2П, 2м)
Блок розеток SNR-PDU-08S-1
Устройство NetPing 2/PWR-220 v4/SMS
▼ Все теги
Новинки
Устройство NetPing 2/PWR-220 v4/SMS
Устройство удалённого управления розетками электропитания по сети Ethernet/Internet (IP PDU) c поддержкой подробнее...

Цена: 12 955 руб.

Датчик воздушного потока (модель АМС520)
Датчик воздушного потока позволяет контролировать наличие или отсутствие напора воздушного потока. Содержит подробнее...

Цена: 2 846 руб.

ИКС-1 извещатель охранный инфракрасный активный однолучевой
Извещатель предназначен для регистрации пересечения нарушителями контролируемой зоны, образованной оптическим подробнее...

Цена: 3 854 руб.

Внешний ИБП SKAT-12DC-1.0 Li-ion
Малогабаритный источник бесперебойного питания (ИБП) со встроенной Li-Ion АКБ. Для питания устройств подробнее...

Цена: 3 200 руб.

МОЛЛЮСК-12/1,5
Малогабаритный блок питания с выходным напряжением 12 В. Имеет уникальный корпус, который позволяет подробнее...

Цена: 950 руб.

Датчик дыма комбинированный (дым/тепло) ИП 212/101-2М-A1R с базой Е412NL
Комбинированный извещатель предназначен для обнаружения возгораний в помещениях различных зданий и сооружений подробнее...

Цена: 2 098 руб.

MP701 Исполнительный элемент (4 независимых канала по 2 кВт 10А)
Силовой модуль коммутации предназначен для обеспечения управления при помощи устройств NetPing силовыми подробнее...

Цена: 1 400 руб.

BM8070D Силовое реле 16А/250В на DIN-рейку
Блок реле для удалённой коммутации мощной нагрузки при помощи устройств NetPing. Изготавливается в корпусе подробнее...

Цена: 1 350 руб.

Датчик движения (SWAN-QUAD ИК детектор квадросенсор), (2м)
Пассивный инфракрасный детектор движения позволяет регистрировать любое движение в зоне до 18 метров. подробнее...

Цена: 1 516 руб.

МАЯК-12-СТ
Оповещатель охранно-пожарный световой стробоскопический предназначен для выдачи световых стробоскопических подробнее...

Цена: 385 руб.

Датчик протечки H2О
Датчик протечки позволяет определить наличие воды в точке установки датчика. Устанавливается в нескольких подробнее...

Цена: 1 450 руб.

-+ руб. руб.
Итого руб.

Данные о заказе