Поднимаем NUT в Linux

В данном HOWTO мы подробно рассмотрим как поднять Nut в современных версиях ОС GNU/Linux на примере дистрибутива Fedora 17 и UPS Ippon Smart Power Pro (Smart Winner).

KNutClient, запущенный в KDE 4
KNutClient, запущенный в KDE 4

Четыре года назад я уже писал как поднять Ippon в Linux, но та статья безнадёжно устарела, поэтому написана данная полностью с нуля.

Шаг 1. Подготовка к установке

Для работы UPS под Linux нам потребуется установить пакет nut (Network UPS Tools), а также клиент для него (консольный или с графическим интерфейсом).

Мы рассмотрим подробно как установить и настроить nut в дистрибутиве Fedora, а в конце данного руководства приведём полные листинги конфигов.

Шаг 2. Загрузка и установка Nut

Для загрузки и установки пакета nut и всех зависимостей выполните в консоли команду:

sudo yum -y install nut nut-client

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

Шаг 3. Загрузка и установка Midnight Commander

Установите мощный файловый менеджер Midnight Commander консольной командой:

sudo yum -y install mc mcedit

Данный менеджер нам понадобится для быстрого редактирования конфигов и операций с ними. Можно обойтись и без него, запуская например Krusader, Gnome Commander, Nautilus, Dolphin или другой ФМ с графическим интерфейсом. Выбор остаётся за вами, но я рекомендую всё-таки MC, тем более в большинстве дистрибутивов он установлен по умолчанию.

Шаг 4: Подготовка конфигов

Сразу после установки в каталоге /etc/ups/ вы увидите примеры файлов конфигурации с расширением *.conf.sample. Для дальнейшей работы с ними нам необходимо переименовать их в *.conf, отбросив sample. Проще всего это сделать следующей командой в консоли:

cd /etc/ups/
sudo rename .sample '' *.sample

Конфиги подготовлены. Можно приступать к редактированию.

Шаг 5: Редактирование nut.conf и ups.conf

Запустите MC с правами root:

sudo mc

Перейдите в каталог /etc/ups/ и откройте файл nut.conf во встроенном редакторе (клавишей F4). В самом конце файла укажите:

MODE=standalone

Если вы хотите подключаться к своему серверу nut удалённо (не рекомендуется из соображений безопасности), то вместо standalone пропишите netserver.

Откройте в редакторе файл ups.conf. Здесь задаются параметры вашего источника бесперебойного питания. Пример для IPPON, подключённого по USB:

[myups]
driver = blazer_usb
port = /dev/usb/hiddev0
desc = "IPPON Smart Power Pro"

Пример для IPPON, подключённого по RS-232 (COM):

[myups]
driver = blazer_ser
port = /dev/ttyS0
desc = "IPPON Smart Power Pro"

Рассмотрим директивы более подробно:

  • driver — имя файла драйвера, который будет обслуживать данный UPS. Blazer_ser (ранее назывался megatek) поддерживает ИБП марки Ippon, подключённые и по COM-порту, а blazer_usb — по USB;
  • port — порт, к которому подключён UPS. По умолчанию для USB это /dev/usb/hiddev0, а для COM — /dev/ttyS0;
  • desc — описание UPS. Может быть любой строкой.

Шаг 6. Редактирование upsd.conf

В файле upsd.conf задаются параметры доступа к службе UPS. Откройте его в редакторе и в конце пропишите следующие директивы:

ACL all 0.0.0.0/0
ACL localhost 127.0.0.1/32
ACCEPT localhost
REJECT all
LISTEN 127.0.0.1 3493
LISTEN ::1 3493

Это включит доступ к сервису только для локальных IP-адресов и заставит upsd слушать порт 3493 одновременно на IPv4 и IPv6. Если вы не используете в ЛВС IPv6, то последнюю строку можете закомментировать, либо вообще не прописывать в файле.

Шаг 7. Создание пользователя для службы UPS

Служба UPS, а равно как и монитор, должны запускаться от отдельного пользователя, находящегося в группе nut. Группа nut создаётся автоматически при установке пакета.

Создадим пользователя upsmaster:

sudo adduser upsmaster

Зададим пользователю пароль:

sudo passwd upsmaster

Введите и запомните новый пароль для пользователя upsmaster два раза. Он нам потребуется далее при настройке nut client.

Добавим пользователя upsmaster в группу nut:

sudo usermod -G nut upsmaster

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

Шаг 8. Указываем пользователей службы

Откройте файл upsd.users (находится там же, в /etc/ups/) и в самом конце пропишите:

[upsmaster]
password = pAssW0RD
allowfrom = localhost
upsmon master

Здесь в качестве пароля pAssW0RD укажите пароль, который вы задали пользователю upsmaster после его создания.

Шаг 9. Настраиваем мониторинг

Теперь откройте файл upsmon.conf. Найдите директиву RUN_AS_USER, уберите около неё символ комментария # (решётка) если он имеется и укажите:

RUN_AS_USER upsmaster

Теперь найдите директиву MONITOR, также уберите символ комментария # и пропишите:

MONITOR myups@localhost 1 upsmaster pAssW0RD master

Здесь pAssW0RD — это пароль пользователя upsmaster, который вы задали при его создании и прописали в конфиге upsd.users.

Шаг 10. Активируем службу upsd

Включаем службу (это активирует её автоматический запуск при старте системы):

sudo systemctl enable nut-server.service

Шаг 11. Проверяем работоспособность службы

Запускаем службу:

sudo systemctl start nut-server.service

Чтобы узнать запустилась служба или нет, выполните:

systemctl status nut-server.service

Если служба запустилась с ошибками, то для более подробного вывода можете попробовать запустить службу напрямую:

sudo upsdrvctl start

Шаг 12. Проверяем работоспособность UPS

Выполните в консоли:

upsc myups@localhost

Если всё настроено верно, вы увидите текущий статус UPS и значения всех его переменных.

Шаг 13. Загружаем KNutClient

Если Вам необходим удобный мониторинг состояния UPS и вы используете в качестве основной среды KDE 4, то установите KNutClient.

Если у вас 32-битная версия Fedora, выполните:

cd ~
wget http://download.fedoraproject.org/pub/fedora/linux/releases/15/Everything/i386/os/Packages/knutclient-1.0.4-2.fc15.i686.rpm
sudo yum -y localinstall knutclient*.rpm

Если 64-битная:

cd ~
wget http://download.fedoraproject.org/pub/fedora/linux/releases/15/Everything/x86_64/os/Packages/knutclient-1.0.4-2.fc15.x86_64.rpm
sudo yum -y localinstall knutclient*.rpm

На этом установка пакета KNutClient завершена. Перейдём к его настройке.

Шаг 14. Настройка KNutClient

KNutClient, запущенный в KDE 4
KNutClient, запущенный в KDE 4

Запустите KNutClient, выберите в меню Settings пункт Configure KNutClient, перейдите на страницу UPS, нажмите кнопку Add.

Настройки KNutClient
Настройки KNutClient

В открывшемся окне пропишите параметры настроенного UPS:

  • Name — любое имя. Допускаются латинские буквы и цифры;
  • UPS address: 127.0.0.1 — IP-адрес, на котором работает служба UPS (значение из конфига upsd.conf);
  • UPS name: myups — имя устройства (значение из конфига ups.conf);
  • Delay: 5000 ms — задержка обновления информации в миллисекундах;
  • Port: 3493 — порт, на котором работает служба UPS (значение из конфига upsd.conf);
  • User name: upsmaster — имя пользователя UPS из файла upsd.users;
  • Password: pAssW0RD — пароль пользователя upsmaster.

Обязательно поставьте флажок в чекбоксе Store NUT password in configuration file, что заставит KNutClient сохранить пароль в своём файле конфигурации.

В этом же окне выберите датчики, которые будут отображаться на панели KNutClient. Для IPPON Smart Power Pro (Smart Winner) гарантированно работают следующие:

  • Input Voltage — напряжение на входе;
  • Input Frequency — частота в Герцах на входе;
  • UPS Load — текущая загрузка UPS;
  • Battery Charge — текущий заряд батареи в процентах;
  • UPS Temperature — температура внутри UPS;
  • Battery Voltage — напряжение на аккумуляторах в Вольтах.

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

Приложения

Листинг файла nut.conf:

MODE=standalone

Листинг файла ups.conf:

[myups]
driver = blazer_usb
port = /dev/usb/hiddev0
desc = "IPPON Smart Power Pro"

Листинг файла upsd.conf:

ACL all 0.0.0.0/0
ACL localhost 127.0.0.1/32
ACCEPT localhost
REJECT all

LISTEN 127.0.0.1 3493
LISTEN ::1 3493

Листинг файла upsd.users:

[upsmaster]
password = pAssW0RD
allowfrom = localhost
upsmon master

Листинг файла upsmon.conf:

RUN_AS_USER upsmaster
MONITOR myups@localhost 1 upsmaster pAssW0RD master
MINSUPPLIES 1
SHUTDOWNCMD "/sbin/shutdown -h +0"
POLLFREQ 5
POLLFREQALERT 5
HOSTSYNC 15
DEADTIME 15
POWERDOWNFLAG /etc/killpower
RBWARNTIME 43200
NOCOMMWARNTIME 300
FINALDELAY 5

Все комментарии в листингах файлов в приложениях удалены.

2 commentary to post

  1. Исправьте ссылку на скриншот главного окна knutclient на шаге 14.

Обсуждение закрыто.