Пример автоматизации админских задач в серверном шкафу/комнате на основе Zabbix и NetPing

Технические требования для серверных помещений регламентируются СНиП 11-2-80 для зданий категории «В», «Инструкции по проектированию зданий и помещений для электронно-вычислительных машин СН 512-78».

В разделе требований к микроклимату и шуму указано:

Параметр

Значение

1

Температура

20°±2 °С не более 25 °С. Для ресурса серверного оборудования лучше нижняя граница.

2

Относительная влажность воздуха

20-70 % (не более 75 % в холодный период, в тёплый для 25 °С — не более 65 %, для 24 °С и ниже — не более 70 %)

3

Оптимальная скорость потока воздуха

0,2 м/с (не более 0,3 м/с для холодного, 0,5 м/с для тёплого периодов)

4

Запыленность воздуха

0,75 мг/м3, с размерами частиц не более 3 мкм

5

Допустимый уровень шума

не более 65 дб

 Доступ в серверные помещения ограничен. Персонал в серверных появляется в случае инсталляции нового оборудования и для проведения регламентных или ремонтных работ. Поэтому важно организовать систему мониторинга для серверных помещений.

Система мониторинга должна включать датчики (температуры, влажности, дыма, протечки и т.д.), систему управления, оповещения и записи событий.

В статье Пример мониторинга серверной комнаты на основе Zabbix и UniPing v3 рассказывается, как настроить мониторинг и запись показаний датчиков.

Рассмотрим возможности интеграции UniPing server solution v3/SMS и Zabbix.

Автоматическое управление резервным кондиционером

Для обеспечения требований к микроклимату и влажности серверное помещение оснащается системами кондиционирования и вентиляции. В зависимости от бюджета это могут быть претензионные системы или более дешёвые потолочные или сплит кондиционеры.

При выборе кондиционера для серверного помещения часто используют BTU (British Thermal Unit). В технических спецификациях серверного и коммуникационного оборудования указывается тепловыделение в BTU. Значение тепловыделения можно перевести в мощность 1 кВт = 3412 BTU/h.

Для обеспечения безотказной работы и своевременного технического обслуживания требуется 100% резервирование систем кондиционирования.

Для увеличения ресурса можно периодически менять роли основного и резервного кондиционеров.

Резервный кондиционер должен обеспечивать замену основного в случае выхода из строя или профилактики. В случае снижения эффективности кондиционирования можно использовать резервный кондиционер совместно с основным.

Предположим, у нас стоит задача: автоматически управлять резервным кондиционером, включать его при t > 28°C и выключать при t < 22°C. Резервный кондиционер управляется ИК пультом.

Для этого делаем следующее:

  1. Подключаем IRC-TR v2 (ИК модуль расширения) к UniPing server solution v3/SMS
  2. Записываем команды с ИК пульта кондиционера в ячейки модуля IRC-TR v2 (ИК модуль расширения)
  3. Подключаем термодачик  к UniPing server solution v3/SMS
  4. На странице Логика прописываем правила включения и выключения кондиционера

Рассмотрим подробно каждый шаг:

  1. IRC-TR v2 (ИК модуль расширения) подключается к UniPing server solution v3/SMS на блок клемм Thermo/IR. Подключение осуществляется 4-х проводным кабелем. Максимальная длина кабеля 10 метров. Питание ИК модуль получает от разъёма. Схему подключения можно найти в руководстве пользователя.

блок клемм Thermo IR

2. ИК модуль оснащён энергонезависимой памятью, в которой может сохранить до 16 ИК команд от различных устройств. В нашем случае надо записать две команды для включения и выключения кондиционера. Для записи команд надо перейти на страницу «ИК команды» веб-интерфейса.

Запоминание ИК команды

Перед записью команд располагаем ИК модуль и пульт напротив друг друга на расстоянии 10-30 см. Нажимаем кнопку «Начать запись» и в течение 30 секунд нажимаем кнопку на ИК пульте. Указываем номер ячейки, в которую записываем команду, памятку, и сохраняем.

Затем проверяем, что команды записаны правильно, и кондиционер включается и выключается с помощью ИК модуля. Для этого на странице есть кнопки «Play».

 3. Подключаем датчик температуры к UniPing server solution v3/SMS.

К устройству можно подключить 8 датчиков температуры 1-wire (THS). Датчики температуры 1-Wire подключаются к устройству в разъемы 1W с помощью коннектора RJ-12. При подключении датчика к устройству необходимо указать уникальный идентификационный номер датчика. Номер датчика можно определить на станице веб-интерфейса «1-WIRE».  Подробная информация приведена в описании встроенного ПО.

На странице «Термодатчики» веб-интерфейса устройства можно настроить памятку, нижнюю и верхнюю границы нормальной работы датчика температуры. Также на этой странице настраиваются уведомления об изменении состояния датчиков. 

Настройки нижней и верхней границы нормальной работы термодатчика

События, при которых будет оправлено оповещение и методы отправки, можно выбрать в окне настроек уведомления: запись в журнал устройства, запись в Syslog, отправка сообщений по e-mail, с помощью SMS  сообщений, отправка SNMP Trap.

Для настройки параметров отправки SMS-сообщений используется страница веб-интерфейса «SMS», для настройки отправки e-mail сообщений страница веб-интерфейса «E-mail», для настройки записи в Syslog, отправки SNMP Trap используется страница «Настройки».

Уведомления для термодатчика

Также можно использовать методы автоматизации webhook. Пример использования webhook приведен в статье

4. На странице «Логика» веб интерфейса UniPing server solution v3/SMS прописываем правила управления.

Первое правило обеспечивает включение кондиционера при превышении температуры порога, заданного в термостате.

Второе правило выключает кондиционер при снижении температуры.

Настройка логики управления кондиционером

Значения порогов термостатов задаются на станице «Логика». Для уменьшения частоты срабатываний при небольших колебаниях температуры или влажности вблизи порога используется параметр «Гистерезис переключения».

Настройка гистерезиса переключения для кондиционера

5. Для записи событий об изменении температуры в серверной будем использовать систему Zabbix. Описание, как интегрировать устройства UniPing с Zabbix, можно найти в этой статье.

График температуры в серверной

Что же мы получаем в итоге? При повышении температуры до 28С будет включаться дополнительный кондиционер и охлаждать серверное помещение. После понижения температуры дополнительный кондиционер будет отключен. Если температура не превысит 40С, то мы даже не получим оповещение об этом. Информация об изменении температуры будет зафиксирована в базе данных Zabbix. В случае, если этих мер будет недостаточно, и температура в серверной будет расти, будет отправлено оповещение через электронную почту и SMS сообщения. В зависимости от требований можно настроить отправку оповещения через Syslog, SNMP TRAP, webhook.

В этом примере следует учесть, что кондиционеры работают в нескольких режимах — кондиционирования, вентиляции, подогрева. Предварительно следует установить на кондиционере режим кондиционирования с помощью пульта.

Автоматическое управление системой вентиляции

При правильной организации системы вентиляции холодный воздух поступает спереди серверного шкафа, проходит через оборудование и выходит сзади серверного шкафа. То есть, спереди серверного шкафа организуется «холодная» зона, а сзади «горячая».

Для выдува горячего воздуха из верхней части стойки часто устанавливают блок вентиляторов. Этот блок может управляться вручную, через термореле, или им может управлять UniPing server solution v3/SMS.

Предположим, задача следующая: включение вентиляции на выдув при температуре t > 28°C и выключение вентиляции на выдув при температуре t < 22°C.

Для этого делаем следующее:

  1. Подключаем термодачик  к UniPing server solution v3/SMS
  2. Подключаем вентилятор к реле. На странице управления реле указываем режим «Выход логики»
  3. На странице Логика прописываем правила включения и выключения вентилятора

Рассмотрим подробно каждый шаг

  1. Подключаем датчик температуры к UniPing server solution v3/SMS.

К устройству можно подключить 8 датчиков температуры 1-wire (THS). Датчики температуры 1-wire подключаются к устройству в разъёмы 1W с помощью коннектора RJ-12. При подключении датчика к устройству необходимо указать уникальный идентификационный номер датчика. Номер датчика можно определить на станице веб-интерфейса «1-WIRE».  Подробная информация приведена в описании встроенного ПО. 

На странице «Термодатчики» веб-интерфейса устройства можно настроить памятку, нижнюю и верхнюю границы нормальной работы датчика температуры. Также на этой странице настраиваются уведомления об изменении состояния датчиков. 

Настройка нижней и верхней границы нормы датчика температуры

События, при которых будет оправлено оповещение, и методы отправки можно выбрать в окне настроек уведомления: запись в журнал устройства, запись в Syslog, отправка сообщений по e-mail, с помощью SMS-сообщений, отправка SNMP Trap.

Для настройки параметров отправки SMS-сообщений используется страница веб-интерфейса «SMS», для настройки отправки e-mail сообщений страница веб-интерфейса «E-mail», для настройки записи в Syslog, отправки SNMP Trap используется страница «Настройки».

Уведомления для термодатчика

Также можно использовать методы автоматизации webhook. Пример использования webhook приведен в статье

2. Подключаем вентилятор к реле

На странице веб-интерфейса «Управление реле» выбираем режим управления реле «Выход логики» и применяем изменения.

Настройка реле для подключения вентилятора

3. На странице веб-интерфейса «Логика» настраиваем правила включения и выключения вентилятора

Первое правило обеспечивает включение вентилятора при превышении температуры порога, заданного в термостате.

Второе правило выключает вентилятор при снижении температуры.

Значения порогов термостатов задаются на станице «Логика». Для уменьшения частоты срабатываний при небольших колебаниях температуры или влажности вблизи порога используется параметр «Гистерезис переключения».

Настройка логики порогов значений термостатов

настройка гистерезиса переключения для термостатов

4. Для записи событий об изменении температуры в серверной будем использовать систему Zabbix. Описание, как интегрировать устройства UniPing с Zabbix, можно найти в этой статье.

График температуры в серверной

Информация о переключении реле также собирается в Zabbix. На графике видно, что состояние реле меняется. Когда состояние реле равно 1, вентилятор включен, когда состояние реле равно 0, реле выключено.

График переключения реле

Если объединить пример 1 и пример 2, что же мы получаем в итоге? При повышении температуры до 28С будет включаться вытяжной вентилятор и дополнительный кондиционер и охлаждать серверное помещение. После понижения температуры вытяжной вентилятор и дополнительный кондиционер будут отключены. Если температура не превысиит 40С, то мы даже не получим оповещения об этом. Информация об изменении температуры будет зафиксирована в базе данных Zabbix. В случае, если этих мер будет недостаточно, и температура в серверной будет расти, будет отправлено оповещение через электронную почту и SMS-сообщения. В зависимости от требований можно настроить отправку оповещения через Syslog, SNMP TRAP, webhook.

Оповещение при нештатной ситуации 

При возникновении нештатной ситуации в серверном помещении требуется оповестить дежурный персонал.

К подобным нештатным ситуациям может относиться срабатывание датчиков протечки, дыма, отключение электроэнергии, повышение температуры до критического значения, срабатывание датчиков движения.

Для этого можно запрограмировать протокол действий, который будет выполнен автоматически.

Предположим, нам надо настроить срабатывание сирены, отправку тревожных сообщений при критическом повышении температуры или срабатывании датчика протечки воды.

Для этого делаем следующее:

  1. Подключаем сирену Сирена сигнальная АС-10 и Датчик протечки H2О
  2. Подключаем термодачик  к UniPing server solution v3/SMS
  3. На странице логика прописываем правила действий

Рассмотрим подробно каждый шаг.

  1. Подключение сирены Сирены сигнальной АС-10 и Датчика протечки H2О

Сирена подключается к реле. Схему подключения можно посмотреть по ссылке. Настройки мы устанавливаем на странице «Управление реле» веб-интерфейса. Нам надо указать памятку и для режима управления выбрать «Выход логики».

Настройки подключения сирены к реле

Датчик протечки H2O подключается к IO линии. Схему подключения можно посмотреть по ссылке. А в настройках страницы веб-интерфейса «Ввод-Вывод» необходимо указать режим IO линии «Вход».

Настройки подключения датчика протечки H2O

В настройках IO линии можно указать памятку на показания датчика и способы уведомления о событиях.

Настройки IO линии

2. Подключаем датчик температуры к UniPing server solution v3/SMS

К устройству можно подключить 8 датчиков температуры 1-wire (THS). Датчики температуры 1-wire подключаются к устройству в разъемы 1W с помощью коннектора RJ-12. При подключении датчика к устройству необходимо указать уникальный идентификационный номер датчика. Номер датчика можно определить на станице веб-интерфейса «1-WIRE».  Подробная информация приведена в описании встроенного ПО. 

На странице «Термодатчики» веб-интерфейса устройства можно настроить памятку, нижнюю и верхнюю границы нормальной работы датчика температуры. Также на этой странице настраиваются уведомления об изменении состояния датчиков. 

Настройки нижней и верхней границы нормальной работы термодатчика и уведомлений об изменении состояния датчика

События, при которых будет оправлено оповещение, и методы отправки можно выбрать в окне настроек уведомления: запись в журнал устройства, запись в Syslog, отправка сообщений по e-mail, с помощью SMS-сообщений, отправка SNMP Trap.

Для настройки параметров отправки SMS-сообщений используется страница веб-интерфейса «SMS», для настройки отправки e-mail сообщений страница веб-интерфейса «E-mail», для настройки записи в Syslog, отправки SNMP Trap используется страница «Настройки».

Уведомления для термодатчика

Также можно использовать методы автоматизации webhook. Пример использования webhook приведен в статье

3. На странице веб-интерфейса «Логика» настраиваем правила включения и выключения сирены

Настраиваем термостат, указываем пороговое значение, при достижении которого должна сработать сирена.

В правилах логики прописываем, что, если значение термостата превышает поро,г включить реле, при сниженении температуры ниже порога выключить реле.

Во второй паре правил пропишем, что, если значение IO линии равно 1, включим реле, при изменении значения в 0, выключаем реле.

Настройка правил логики включения и выключения сирены

Настройка гистерезиса переключения для сирены

Таким образом можно оповестить дежурный персонал о нештатной ситуации с помощью сирены и отправки сообщений email и SMS.

Информация об изменении температуры и значения IO линии сохраняются в базе данных Zabbix. На графике видно, что значение линии IO1, к которой подключен датчик протечки, может принимать значения 1 и 0. 1 — есть протечка, 0 — нет протечки.

График статуса датчика протечки в Zabbix

Автоматическое решение проблем при помощи Zabbix

Наверное, у каждого из вас, если вы используете систему мониторинга, есть такой класс проблем, про который вы знаете, что эта проблема произойдет рано или поздно, и с этим ничего нельзя сделать.

Одним из вариантов автоматической реакции на возникшую проблему может быть просто отправка SMS-сообщения системному администратору.

Рассмотрим автоматическую отправку SMS из системы Zabbix, с использованием встроенных в UniPing server solution v3/SMS функций отправки сообщений, при потере доступа к корпоративному веб-сайту.

Приступаем к настройке мониторинга. Подразумевается, что вы уже выполнили предварительную установку сервера Zabbix. Использовать будем только стандартный функционал, доступный после установки.

В этой статье я настраиваю мониторинг нашего корпоративного сайта — https://netping.ru.

Добавление сайта к системе мониторинга не отличается от добавления любого другого хоста. Идем в «Configuration -> Hosts» и нажимаем «Create host»

Добавление хоста к мониторингу

Открывается стандартная форма. Вводим название хоста. Выбираем любую группу, (у меня Discovered Hosts)

В поле «DNS name» пишем «netping.ru», выбираем в поле «Connect to» значение «DNS». Всё остальное оставляем по умолчанию и нажимаем «Save»

Настройки нового хоста

Теперь нам необходимо настроить непосредственно сам мониторинг сайта. Для этого на той же странице со списком хостов, напротив нашего нового нажимаем на ссылку «Web»

Включение мониторинга сайта

В разделе web сценариев создаем новый сценарий проверки, нажав на «Create scenario»

Создание сценария мониторинга

На первой вкладке «Scenario» заполняем поля: «Name» (имя сценария) и «Update Interval» (интервал проверки) Остальное можно оставить по умолчанию.

Настройка сценария мониторинга

Переходим на вкладку «Steps», нажимаем на «Add» и заполняем открывшуюся форму.

Добавление шагов сценария мониторинга

Указываем:

«Name» Имя шага сценария.

«URL» Адрес страницы для проверки.

В строку «Required string» вводим какое-нибудь слово или фразу, которая присутствует на проверяемой странице. По наличию этой фразы система будет принимать решение о доступности сайта. Возьмем для примера слово NetPing.

В строке «Required status code» указываем необходимый код ответа сервера, который будет означать, что всё в порядке — 200.

Настройка шага сценария мониторинга

Нажимаем «Add». Шаг сценария добавлен, теперь нажимаем «Save» на странице самого сценария, чтобы добавить его к сайту.

Настройка мониторинга закончена. Результаты можно посмотреть стандартным способом.

Теперь добавим триггер, который будет срабатывать при недоступности сайта и автоматически отправлять системному администратору SMS-сообщение с помощью устройства «UniPing server solution v3/SMS»

Рекомендую ознакомиться со статьей о настройке SMS-уведомлений и сделать соответствующие настройки.

Опять идём в раздел «Configuration -> Hosts» и нажимаем на «Triggers» напротив нашего хоста. 

Включение режима триггеров

Открывается страница со списком триггеров, нажимаем справа «Create trigger»

Создание нового триггера

Заполняем необходимые поля и жмём напротив «Expression» на кнопку «Add».

Настройка нового триггера

Заполняем форму для описания логики триггера.

Форма описания логики триггера

Эти параметры означают, что, если в последних трёх проверках значение параметра web.test.fail не будет равно 0, что означает доступность сайта, то срабатывает триггер. Проверяем данные и нажимаем «Insert» Затем нажимаем «Save»

Триггер создан.

Теперь создадим действие Zabbix на сработавший триггер отправляющее оповещение посредством SMS

Заходим в «Configuration -> Action», нажимаем «Create Action» (источник события — триггер)

Создание нового действия Zabbix на сработавший триггер

На вкладке «Action» настраиваем так

Настройка сообщения на сработавший триггер

На вкладке «Conditions» задаём в качестве условия триггер со значением Проблема

Задание условия для выполнения действия на сработавший триггер

На вкладке «Operations» нажимаем «New» 

Создание нового шага действия на сработавший триггер

и заполняем открывшуюся форму как в образце

Указание отправки СМС-сообщения для администратора на сработавший триггер

Operation type – Send Message

В нашем примере сообщение отправляется одному пользователю, указанному в поле «Send to user», но можно указать группу пользователей в поле «Sent to User group»

Send only to — SMS

Нажимаем «Add», а затем «Save».

Действие создано. Теперь администратор получит SMS-сообщение, если корпоративный сайт будет не доступен, и сможет предпринять необходимые действия.

По аналогии с этим примером вы можете настроить отправку SMS-сообщений на любое событие, которое регистрируется в Zabbix.