Вы когда-нибудь задумывались, что происходит с вашим сервером или компьютером, когда внезапно отключается электричество? Пауза, стресс, и — о ужас! — потеря данных или повреждение жесткого диска. Вот тут на помощь приходит героический ИБП (источник бесперебойного питания). Но ИБП — это не просто батарейка с розеткой. Это целая команда спасателей, которая может вовремя предупредить ваш сервер о грядущем отключении и корректно его выключить, сохранив все ваши данные и нервы.

В этой статье мы подробно разберем, как современные ИБП взаимодействуют с серверами, какие есть программы для мониторинга, как настроить правильное управление питанием и выключением на примере популярного решения Network UPS Tools (NUT) и ИБП Eaton, а также ответим на частые вопросы и сложности, связанные с автоматическим запуском сервера после пропадания питания.


Что же такое ИБП и зачем он нужен?

Если объяснять простыми словами, ИБП — это как запасной генератор в вашем кармане, который вступает в бой, когда основной источник энергии сдает позиции. Он может передавать сигналы, чтобы техника знала, что пора завершать работу аккуратно.

Однако не все ИБП одинаково умны. Некоторые просто держат питание, а продвинутые модели, например, как у Eaton, могут посылать команды серверу для штатного выключения.


ИБП, который умеет говорить с сервером — правда или миф?

Слышали ли вы, что ИБП может «сообщать» серверу об отключении питания, чтобы тот выключился без потерь? Это не сказка, а реальность. Модели с портом USB или RS-232 способны передавать специальные сигналы и команды.

Пример:

Пользователь в одном из форумов спрашивал:

«Где найти ИБП, который при отключении питания посылает сигнал серверу для корректного выключения?»

Ответ — да, такие есть! И Eaton 5E650iUSB — отличный кандидат.


Программное обеспечение для мониторинга и управления ИБП на Linux: знакомьтесь, NUT

Network UPS Tools (NUT) — это как командир на поле боя, который следит за состоянием ИБП, принимает сигналы и управляет действиями, например, запуском корректного выключения.

Вот основные функции NUT:

  • Мониторинг состояния ИБП (заряд батареи, состояние сети)
  • Автоматическое выполнение команд при изменениях (например, выключение ПК)
  • Отправка уведомлений пользователям

Как настроить NUT на примере ИБП Eaton 5E650iUSB

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

Шаг Команда или действие Описание
Установка NUT apt install nut Установка программного комплекса
Резерв конфигурации cp -r /etc/nut /etc/nut.orig Создание копии на всякий случай
Режим работы echo "MODE=standalone" > /etc/nut/nut.conf Установка режима самостоятельной работы
Подключение ИБП Подключить Eaton через USB и проверить lsusb Определение устройства
Настройка драйвера Добавить в /etc/nut/ups.conf настройки для Eaton Задание драйвера и параметров
Настройка udev Создать правило для доступа к USB ИБП Правильные права для доступа
Настройка пользователя Создать upsmonitor для работы NUT Безопасный пользователь для управления
Конфигурация уведомлений Настроить /etc/nut/upsmon.conf и /etc/nut/upssched.conf Отправка сообщений и выполнение действий

Пример части конфигурации ups.conf для Eaton

[eaton]
driver = usbhid-ups
port = auto
offdelay = 90
ondelay = 5
desc = "Eaton 5E 650iUSB"

Что умеет делать NUT с ИБП?

NUT умеет управлять ИБП через команды, например:

Команда Описание
beeper.disable Отключить звуковую сигнализацию ИБП
beeper.enable Включить звуковую сигнализацию
load.off Немедленно отключить нагрузку (ПК)
load.off.delay Выключить нагрузку с задержкой
shutdown.stop Отменить запущенное выключение

Как обеспечить автоматическое выключение и запуск сервера?

Вы, наверное, замечали: если питание отключилось и сразу вернулось, сервер может не успеть корректно выключиться и затем автоматически включиться. Это часто связано с настройками BIOS и особенностями работы ИБП.

Решение:

  • В BIOS активировать функцию «PowerOn after power loss»
  • Использовать команду shutdown.return из NUT, которая выключит ПК, но ИБП пошлет сигнал на его включение, когда питание восстановится.
  • Настроить скрипты upssched и cmd.sh для управления действиями в зависимости от состояния ИБП.

Пример скрипта команд для событий NUT (/etc/nut/cmd.sh)

#!/bin/sh
case $1 in
powerout)
  logger "Питание отключено. Выключение через 90 секунд..."
  upscmd -u upsmonitor -p UPSPASS eaton@localhost shutdown.return
  ;;
shutdownnow)
  logger "Выключение сервера..."
  upsmon -c fsd
  ;;
powerup)
  logger "Питание восстановлено. Отмена выключения."
  upscmd -u upsmonitor -p UPSPASS eaton@localhost shutdown.stop
  ;;
*)
  logger "Неизвестная команда: $1"
  ;;
esac

Таблица: Основные статусы ИБП и что они означают

Код состояния Значение
OL Работа от сети
OB Питание от батареи
LB Низкий заряд батареи

Какие уведомления можно настроить?

NUT может рассылать сообщения в терминалы и логировать события:

  • Переход на батарею (ONBATT)
  • Восстановление питания (ONLINE)
  • Низкий заряд батареи (LOWBATT)
  • Принудительное выключение (FSD)
  • Потеря связи с ИБП (COMMBAD)

Полезные советы для пользователей ИБП и NUT

  • Обязательно создавайте резервные копии конфигурационных файлов перед изменениями.
  • Проверьте права доступа к USB устройствам для правильной работы.
  • Используйте системного пользователя с ограниченными правами для мониторинга.
  • Тестируйте настройки, выдергивая ИБП из розетки — не бойтесь, лучше сейчас, чем во время кризиса!
  • Настройте уведомления, чтобы быть в курсе событий, даже если вы далеко от компьютера.

Часто задаваемые вопросы (FAQ)

В: Можно ли использовать один ИБП для нескольких серверов?
О: Да, но для этого NUT нужно настроить в сетевом режиме, чтобы несколько машин могли получать состояние ИБП по сети.

В: Что делать, если сервер не включается после восстановления питания?
О: Проверьте настройки BIOS, включите «PowerOn after power loss» и используйте функцию shutdown.return в NUT.

В: Как отключить надоедливый писк ИБП при пропадании питания?
О: Используйте команду beeper.disable через NUT.

В: Можно ли использовать NUT с любым ИБП?
О: Нет, нужно проверить список поддерживаемых моделей в /usr/share/nut/driver.list.


Итог: ИБП и NUT — пара, которая спасет ваши данные

ИБП — это умное устройство, которое при правильной настройке вместе с Network UPS Tools может заботиться о вашем сервере, предупреждать о проблемах с питанием и аккуратно его выключать. Если вы не хотите рисковать своими файлами и временем, уделите внимание правильной настройке ИБП и программного обеспечения. Как говорил один мудрец: «Лучше подготовиться к отключению питания, чем сожалеть о потерянных данных».


Чек-лист: Что сделать для защиты сервера с помощью ИБП и NUT

  • [ ] Выбрать ИБП с поддержкой управления по USB или сети
  • [ ] Установить и настроить Network UPS Tools (NUT)
  • [ ] Настроить пользователя и права доступа для NUT
  • [ ] Добавить правила udev для доступа к ИБП
  • [ ] Настроить конфигурационные файлы: ups.conf, upsd.conf, upsmon.conf, upssched.conf
  • [ ] Создать скрипты для обработки событий питания
  • [ ] Проверить работоспособность команд upsc и upscmd
  • [ ] Настроить BIOS сервера для автозапуска после отключения питания
  • [ ] Протестировать все на практике, отключив питание вручную

Теперь ваш сервер знает, что делать при отключении света — выключиться вовремя и включиться, как только вернется электричество. Вот такая вот дружба между ИБП и Linux-командой NUT!