Вики IT-KB

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

Инструменты пользователя

Инструменты сайта


unix-linux:debian:buster:how-to-install-java-jre-and-ups-agent-apc-powerchute-network-shutdown-on-debian-linux-10-buster

Это старая версия документа!


Установка агента ИБП APC для автоматического выключения ОС Debian GNU/Linux 10 (Buster) - APC PowerChute Network Shutdown

В случае если физические серверы на базе Debian GNU/Linux 10 «Buster» подключены к ИБП APC, и эти ИБП имеют контроллеры управления APC Network Management Card (NMC), мы можем настроить автоматическое штатное выключение ОС Linux в случае проблем с электропитанием. Для этого на стороне Linux-сервера нам потребуется установить и настроить специального программного агента, управляемого о стороны ИБП - APC PowerChute Network Shutdown (PCNS). Здесь приведён пример установки последней актуальной версии агента APC PCNS 4.3 for Linux на сервер Debian Linux 9.3.


Устанавливаем поддержку Java

Программный пакет PCNS для своей работы требует предустановленной среды Java Runtime Environment (JRE). Хотя устанавливать его предварительно и не обязательно, так как JRE имеется в составе основного дистрибутива PCNS, однако стоит учесть то обстоятельство, что поставляемая в составе PCNS версия JRE не будет в дальнейшем автоматически обновляться в системе (например на неё не будут накладываться исправления безопасности), что само по себе не всегда допустимо. Поэтому мы установим сводобный аналог JRE - OpenJDK Runtime Environment из официальных репозиториев Debian. Это позволит нам в дальнейшем получать обновления безопасности для данного ПО из репозиториев Debian.

# apt-get update
# apt-get install default-jre

Посмотрим текущую установленную версию Java:

# java -version

openjdk version "11.0.3" 2019-04-16 OpenJDK Runtime Environment (build 11.0.3+1-Debian-1) OpenJDK 64-Bit Server VM (build 11.0.3+1-Debian-1, mixed mode, sharing)

Посмотрим какой путь к исполняемым файлам Java используется в системе на данный момент:

# update-alternatives --display java
java - auto mode link best version is /usr/lib/jvm/java-11-openjdk-amd64/bin/java link currently points to /usr/lib/jvm/java-11-openjdk-amd64/bin/java link java is /usr/bin/java slave java.1.gz is /usr/share/man/man1/java.1.gz /usr/lib/jvm/java-11-openjdk-amd64/bin/java - priority 1111 slave java.1.gz: /usr/lib/jvm/java-11-openjdk-amd64/man/man1/java.1.gz

Как видим, фактический путь к исполняемым файлам java: /usr/lib/jvm/java-11-openjdk-amd64/bin/java. Запомним этот путь, так как он потребуется нам в дальнейшем при установке PCNS.


Устанавливаем APC PowerChute Network Shutdown

Загружаем пакет pcns430Linux-x86-64.tar.gz с официального сайта APC и распаковываем во временный каталог. В распакованном каталоге ../Linux_x64 запускаем скрипт установки install.sh:

# mkdir ~/APC
# cd ~/APC
# gunzip pcns430Linux-x86-64.tar.gz
# tar -xf pcns430Linux-x86-64.tar
# cd ~/APC/Linux_x64/
# ./install.sh

На первый запрос скрипта установки жмём любую клавишу, например Enter, чтобы ознакомиться с лицензионным соглашением:

Просмотрев лицензионное соглашение набираем yes, чтобы принять его положения:

Соглашаемся с установкой в каталог по умолчанию /opt/APC/PowerChute

Далее скрипт установки может предложить нам либо согласиться с использованием версии Java, поставляемой в составе PowerChute, либо указать путь ранее предустановленной версии. В этом случае можно указать ранее полученный путь к исполняемым файлам Java. Пример такой ситуации рассмотрен ранее. В нашем же случае скрипт установки PowerChute не стал задавать таких вопросов и сразу выполнил установку ПО с привязкой к собственной версии JRE 11.0.1, которую он автоматически распаковал в подкаталог /opt/APC/PowerChute/jre-11.0.1.

В завершении скрипт установки скопирует исполняемые файлы PCNS в каталог /opt/APC/PowerChute и мы получим сообщение о том, что дальнейшую настройку установленного агента PCNS можно провести через веб-интерфейс, доступный по адресу https://ServerName:6547

В процессе установки в систему будет установлена и запущена служба systemd c именем PowerChute.service. Эта служба будет использоваться для автоматического запуска службы PowerChute в процессе запуска системы. Проверим текущий статумс службы и убедимся в том, что она работает:

# systemctl status PowerChute.service

Убедимся в том, что в нашей Linux-системы появились TCP-прослушиватели, созданные процессом java:

# ss -lnptu | sort | grep java

tcp LISTEN 0 50 0.0.0.0:3052 0.0.0.0:* users:(("java",pid=4724,fd=55)) tcp LISTEN 0 50 0.0.0.0:6547 0.0.0.0:* users:(("java",pid=4724,fd=53)) udp UNCONN 0 0 0.0.0.0:3052 0.0.0.0:* users:(("java",pid=4724,fd=52)) udp UNCONN 0 0 0.0.0.0:60077 0.0.0.0:* users:(("java",pid=4724,fd=51))

Теперь нам нужно добавить правила в брандмауэр Debian Buster, разрешающие доступ к портам PowerChute.

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

Как минимум, доступ к портам PowerChute TCP/UDP 3052 необходимо открыть из сети, в которой находятся контроллеры управления ИБП APC NMC. Кроме того, может потребоваться открыть доступ к веб-странице PowerChute TCP 6547 для сети администраторов, которые будут выполнять удалённую настройку PowerChute на нашем сервере.

В случае, если управление брандмауэром выполняется через «модный» фреймворк nftables, то разрешающие правила могут выглядеть следующим образом:

# nft add rule ip filter INPUT ct state related,established counter accept
# nft add rule ip filter INPUT iifname "eth0" ip saddr 10.1.2.0/24 \
ct state new tcp dport 3052 counter accept \
comment \"Allow access to APC PowerChute Network Shutdown service from UPS NMC\"
# nft add rule ip filter INPUT iifname "eth0" ip saddr 10.1.2.0/24 \
ct state new udp dport 3052 counter accept \
comment \"Allow access to APC PowerChute Network Shutdown service from UPS NMC\"
# nft add rule ip filter INPUT iifname "eth0" ip saddr 10.1.1.0/24 \
ct state new tcp dport 6547 counter accept \
comment \"Allow access to APC PowerChute Network Shutdown Web UI over HTTPS\"

В том случае, если управление брандмауэром выполняется через iptables, то разрешающие правила могут выглядеть следующим образом

# iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# iptables -A INPUT -s 10.1.2.0/24 -i eth0 -p udp \ 
 -m state --state NEW -m udp --dport 3052 -m comment \
 --comment "Allow access to APC PowerChute Network Shutdown service from UPS NMC" -j ACCEPT
# iptables -A INPUT -s 10.1.2.0/24 -i eth0 -p tcp \ 
 -m state --state NEW -m tcp --dport 3052 -m comment \ 
 --comment "Allow access to APC PowerChute Network Shutdown service from UPS NMC" -j ACCEPT
# iptables -A INPUT -s 10.1.1.0/24 -i eth0 -p tcp \
 -m state --state NEW -m tcp --dport 6547 -m comment \ 
 --comment "Allow access to APC PowerChute Network Shutdown Web UI over HTTPS" -j ACCEPT

Теперь попробуем перейти к веб-странице управления агентом PCNS, которая должна быть доступна по адресу https://ServerName:6547.

Мы должны увидеть приглашение мастера первоначальной настройки PCNS:

Пройдём шаги мастера по подключению PCNS к контроллерам управления NMC от источников бесперебойного питания, к которым подключен наш Linux-сервер. В нашем примере выполнено отказоустойчивое подключение (Redundant) сразу к двум контроллерам NMC с разных ИБП, к которым подключен сервер разными блоками питания:

Обратите внимание на то, что если ранее не были открыты порты TCP/UDP 3052, то попытки подключения контроллеров NMC к агенту PCNS будут завершаться ошибками.

По завершению процедуры первичного подключения к контроллерам управления ИБП мы получим доступ к основному веб-интерфейсу ПО PowerChute Network Shutdown, где сможем произвести дополнительные настройки реагирования на события связанные с изменением режима электропитания:

Перезагрузим сервер, чтобы убедиться в том, что автоматический запуск службы PowerChute успешно работает после запуска ОС.


Удаление APC PowerChute Network Shutdown

В случае возникновения необходимости удаления APC PowerChute Network Shutdown из Linux-системы, можно воспользоваться вызовом скрипта:

# /opt/APC/PowerChute/uninstall


Дополнительные источники информации:


Проверено на следующих конфигурациях:

Версия ОС
Debian GNU/Linux Duster 10.0

Автор первичной редакции:
Алексей Максимов
Время публикации: 19.06.2019 17:01

Обсуждение

Ваш комментарий:
 
unix-linux/debian/buster/how-to-install-java-jre-and-ups-agent-apc-powerchute-network-shutdown-on-debian-linux-10-buster.1560965260.txt.gz · Последнее изменение: 19.06.2019 20:27 — Алексей Максимов

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki