APC ИБП LINUX через APCUPSD

Питание: Измерение распределение блоки питания
Источники Бесперебойного Питания ИБП
Измерительный блок распределения питания БРП
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 853
Стаж: 5 лет 7 месяцев
Откуда: Вологодская область
Поблагодарили: 37 раз
Контактная информация:

APC ИБП LINUX через APCUPSD

Сообщение Артём Мамзиков »

СКАЧАТЬ
APCUPSD.zip
APCUPSD.zip
(28.35 КБ) 62 скачивания
Пример Конфигов на русском apcupsd.zip
Пример Конфигов на русском apcupsd.zip
(16.42 КБ) 58 скачиваний
Описание шаблона в 3 сообщении
Отличия в 4 сообщении ниже скрипта

Ранее мы разобрали работу и мониторинг Мониторинг APC Smart UPS 2200 через PowerChute Business Edition она так же доступна для Linux но в .rpm - пакете для Debian нужен пакет .deb можно его сконвертировать но при установке он только копирнет файлы в папку opt далее все ручками - поэтому это оставим на потом (разбор установки).

Наиболее распространённые программы под Linux для ИБП APC это APCUPSD и NUT с дополнительными пакетами визуализации, отправки сообщений и т.д. Под них уже есть готовые шаблонных заббикс но через UserParameter, я сделал свои шаблоны для которых дополнительные данные прописывать на проверяемом узле не надо, все запрашивается (доступны разные варианты) и обрабатывается на самом заббикс сервере.

Делаем на основе APCUPSD доступна на Linux и Windows.

Официальная документация APCUPSD объемная с кучей примеров и разборов

Установка будет производится на Debian 10 с подключённой ИБП APC Smart UPS 2200.

Проверим подключение: В ответе получаем:
Bus 002 Device 004: ID 051d:0002 American Power Conversion Uninterruptible Power Supply

Устанавливаем из репозитория apcupsd и документацию

Код: Выделить всё

apt-get install apcupsd apcupsd-doc
После установки настраиваем конфигурации:

Код: Выделить всё

nano /etc/default/apcupsd 
ставим параметр «yes» в строке ISCONFIGURED=yes

Код: Выделить всё

nano /etc/apcupsd/apcupsd.conf
apcupsd.conf
Показать
## apcupsd.conf v1.1 ##
#
# "apcupsd" Конфигурационный файл POSIX

#
# Обратите внимание, что демон apcupsd должен быть перезапущен, чтобы изменения в
# этот файл конфигурации станет активным.
#

#
# ========= Общие параметры конфигурации ============
#

# НАЗВАНИЕ ИБП xxx
# Используйте это, чтобы дать вашему ИБП имя в файлах журналов и т.п. Это
# особенно полезно, если у вас несколько ИБП. Это не
# установить ЭСППЗУ EEPROM. Должно быть 8 символов или меньше.
#UPSNAME

# КАБЕЛЬ ИБП <кабель>
# Определяет тип кабеля, соединяющего ИБП с компьютером.
#
# Возможные общие варианты для <кабель>:
# simple, smart, ether, usb
#
# Или можно использовать конкретный номер модели кабеля:
# 940-0119A, 940-0127A, 940-0128A, 940-0020B,
# 940-0020C, 940-0023A, 940-0024B, 940-0024C,
# 940-1524C, 940-0024G, 940-0095A, 940-0095B,
# 940-0095C, 940-0625A, M-04-02-2000
#
UPSCABLE usb

# Чтобы заставить работать apcupsd, в дополнение к определению кабеля
# выше, вы также должны определить ИБП ТИП UPSTYPE, который соответствует
# тип вашего ИБП (подробности см. в описании).
# Вы также должны указать УСТРОЙСТВО, иногда называемое портом.
# Для USB-ИБП оставьте директиву DEVICE пустой. За
# других типов ИБП необходимо указать соответствующий порт или адрес.
#
# ИБП ТИП УСТРОЙСТВ Описание
# apcsmart /dev/tty** Новое последовательное символьное устройство, подходящее для
# Модели SmartUPS(Умное ИБП), использующие последовательный кабель (не USB).
#
# usb <BLANK> Большинство новых ИБП имеют USB. Пустое УСТРОЙСТВО
# параметр включает автоопределение, т.е.
# лучший выбор для большинства инсталляций.
#
# net hostname:port Сетевая ссылка на главный apcupsd через apcupsd
# Сетевой информационный сервер. Это используется, если
# ИБП, питающий ваш компьютер, подключен к
# другой компьютер для мониторинга.
#
# snmp hostname:port:vendor:community
# Сетевой канал SNMP для ИБП с поддержкой SNMP.
# Имя хоста — это IP-адрес или имя хоста ИБП.
# в сети. Поставщик может быть "APC" или
# "APC_NOTRAP". «APC_NOTRAP» отключит ловушку trap SNMP.
# ловля; обычно вы хотите "APC". Порт обычно
# 161. Сообщество обычно "приватное""private".
#
# netsnmp hostname:port:vendor:community
# УСТАРЕВШИЙ
# То же, что и SNMP выше, но требует использования
# библиотека net-snmp. Если у вас нет особой потребности
# для этого старого драйвера вам следует использовать 'snmp'.
#
# dumb /dev/tty** Старое серийное символьное устройство для использования с
# ИБП с простой сигнализацией.
#
# pcnet ipaddr:username:passphrase:port
# Протокол сетевого отключения PowerChute, который можно
# используется как альтернатива SNMP с AP9617
# семейство смарт-слотов. ipaddr это IP
# адрес платы управления ИБП. имя пользователя и
# фраза-пароль — это учетные данные, для которых карта
# был настроен. port — это номер порта на
# что слушать сообщения от ИБП, обычно
# 3052. Если этот параметр пуст или отсутствует,
# будет использовано значение по умолчанию 3052.
#
# modbus /dev/tty** Серийное устройство для использования с новейшими моделями SmartUPS
# поддержка протокола MODBUS.
# modbus <BLANK> Оставьте параметр DEVICE пустым для MODBUS через USB.
# или установите серийный номер ИБП, чтобы гарантировать
# что apcupsd привязывается к этому конкретному юниту
# (полезно, если у вас более одного ИБП USB).
#
UPSTYPE usb
#DEVICE /dev/ttyS0

# ВРЕМЯ ОПРОСА <int>
# Интервал (в секундах), с которым apcupsd опрашивает состояние ИБП. Это
# настройка применяется как к непосредственно подключенным ИБП (UPSTYPE apcsmart, usb,
# dumb) и сетевых ИБП (UPSTYPE net, snmp). Уменьшение этого параметра
# улучшит реакцию apcupsd на определенные события за счет
# более высокая загрузка процессора. Значение по умолчанию 60 подходит для большинства
# ситуации.
POLLTIME 25

# БЛОКИРОВАТЬ ФАЙЛ <путь к файлу блокировки>
# Путь к файлу блокировки устройства. Это каталог, в который файл блокировки
# будет написано. Каталог должен уже существовать; apcupsd не создаст
# Это. Фактическое имя файла блокировки вычисляется из DEVICE.
# Не используется в Win32.
LOCKFILE /var/lock

# КАТАЛОГ СЦЕНАРИЙ <путь к каталогу скрипта>
# Каталог, в котором расположены сценарии apccontrol и событий.
SCRIPTDIR /etc/apcupsd

# СБОЙ ПИТАНИЯ НАПРАВЛ. <путь к каталогу сбоя питания>
# Каталог для записи файла флага сбоя питания. Этот файл
# создается, когда apcupsd инициирует отключение системы и
# проверено в сценариях остановки ОС, чтобы определить,
# (отключение выходной мощности ИБП) требуется.
PWRFAILDIR /etc/apcupsd

# Каталог БЕЗ ВХОДА в СИСТЕМУ <путь к каталогу без входа в систему>
# Каталог, в который нужно записать файл nologin (без входа). Существование
# этого файла флага сообщает операционной системе запретить новые входы в систему.
NOLOGINDIR /etc


#
# ======== Параметры конфигурации, используемые во время сбоев питания ==========
#

# ЗАДЕРЖКА ВКЛЮЧЕНИЯ БАТАРЕИ - это время в секундах с момента сбоя питания
# обнаруживается до тех пор, пока мы не отреагируем на него событием включения батареи.
#
# Это означает, что управление apc будет вызвано с аргументом об отключении питания
# немедленно при обнаружении сбоя питания. Однако, в
# аргумент на батареи передается элементу управления ПК только после
# ВРЕМЯ ЗАДЕРЖКИ ВКЛЮЧЕНИЯ время. Если вы не хотите, чтобы вас раздражали короткие
# сбои в подаче питания, убедитесь, что отключение питания apc control ничего не делает
# т.е. прокомментируйте строку.
ONBATTERYDELAY 6

#
# Примечание: УРОВЕНЬ ЗАРЯДА БАТАРЕИ(BATTERYLEVEL), МИНУТЫ(MINUTES) и ТАЙМ-АУТ(TIMEOUT) работают совместно, поэтому
# первое, что произойдет, приведет к инициированию завершения работы.
#

# Если во время сбоя питания оставшийся процент заряда батареи
# (# (как сообщает ИБП) ниже или равно УРОВНЮ ЗАРЯДА БАТАРЕИ,
# apcupsd инициирует завершение работы системы.
BATTERYLEVEL 20

# Если во время сбоя питания оставшееся время выполнения в минутах
# (как рассчитывается внутри ИБП) меньше или равно МИНУТАМ,
# apcupsd, инициирует завершение работы системы.
MINUTES 5

# Если во время сбоя питания ИБП работал от батарей в течение ТАЙМ-аута
# через много секунд или дольше apcupsd инициирует завершение работы системы.
# Значение 0 отключает этот таймер.
#
# Обратите внимание, что если у вас есть интеллектуальный ИБП, вы, скорее всего, захотите отключить
# # это время, установив его равным нулю. Таким образом, ваши ИБП будут продолжать
# # работать от батарей до тех пор, пока оставшийся процент заряда не упадет до УРОВНЯ заряда БАТАРЕИ или ниже него.,
# или оставшееся время автономной работы упадет до нескольких МИНУТ или ниже. Конечно,
# если вы проводите тестирование, установка этого значения на 60 приводит к быстрому завершению работы системы
# если вы выдернете вилку из розетки.
# Если у вас более старый немой ИБП, вам нужно будет установить значение меньше, чем
# время, когда вы знаете, что можете работать на батарейках.
TIMEOUT 0

# Время в секундах между выходом раздражающих пользователей из системы до
# завершение работы системы. 0 отключает.
ANNOY 300

# Первоначальная задержка после сбоя питания перед предупреждением пользователей о получении
# выключите систему.
ANNOYDELAY 60

# Условие, определяющее, когда пользователям запрещается
# вход в систему во время сбоя питания.
# # НЕТ ВХОДА В СИСТЕМУ <строка> [ disable | timeout | percent | minutes | always ]
NOLOGON disable

# Если ЗАДЕРЖКА ЗАВЕРШЕНИЯ не равна нулю, apcupsd продолжит работу после
# было запрошено завершение работы, и по истечении указанного времени в
# секундная попытка отключить питание. Это предназначено для использования в системах
# где apcupsd не может восстановить управление после завершения работы.
# # ЗАДЕРЖКА ОТКЛЮЧЕНИЯ <секунды> 0 отключает
KILLDELAY 0

#
# ==== Инструкции по настройке Сервера сетевой информации ====
#

# NETSERVER [ on | off ] on. включает, off. отключает сеть
# информационный сервер. Если состояние сети включено, появится информация о сети
# серверный процесс будет запущен для обслуживания СТАТУСА и
# Данные о событиях по сети (используются программами CGI).
NETSERVER on

# NISIP <пунктирное обозначение ip-адреса>
# IP-адрес, по которому NIS-сервер будет прослушивать входящие соединения.
# # Это полезно, если ваш сервер является многоквартирным (имеет более одного
# сетевого интерфейса и IP-адреса). Значение по умолчанию равно 0.0.0.0, которое
# означает, что любой входящий запрос будет обработан. В качестве альтернативы вы можете
# настроить этот параметр на любой конкретный IP-адрес вашего сервера и
# NIS будет прослушивать соединения только на этом интерфейсе. Используйте
# адрес обратной связи (127.0.0.1) для приема подключений только от
# локальной машины.
NISIP 127.0.0.1

# NISPORT <порт> значение по умолчанию - 3551, зарегистрированное в IANA
# порт, используемый для отправки данных о СОСТОЯНИИ и СОБЫТИЯХ по сети.
# # Он не используется, если не включен СЕТЕВОЙ СЕРВЕР. Если вы измените этот порт,
# вам нужно будет изменить соответствующее значение в каталоге cgi
# и перестроить программы cgi.
NISPORT 3551

# Если вы хотите, чтобы последние несколько СОБЫТИЙ были доступны по сети
# # с помощью сервера сетевой информации вы должны определить ФАЙЛ СОБЫТИЙ.
EVENTSFILE /var/log/apcupsd.events

# EVENTSFILEMAX <килобайт>
# По умолчанию размер ФАЙЛА СОБЫТИЙ не должен превышать
# 10 килобайт. Когда размер файла превысит это ограничение, более старые СОБЫТИЯ будут
# должны быть удалены с начала файла (первый вход - первый выход). То
# параметру EVENTSFILEMAX можно присвоить другое значение в килобайтах или установить
# # к нулю, чтобы позволить ФАЙЛУ СОБЫТИЙ неограниченно расти.
EVENTSFILEMAX 10

#
# ========== Инструкции конфигурации, используемые при совместном использовании =============
# ИБП с несколькими машинами

#
# Остальные элементы предназначены ТОЛЬКО для общих ИБП (плата расширения APC)
#

# UPSCLASS [ standalone | shareslave | sharemaster ]
# Обычно автономный, если только вы не используете общий ИБП с помощью карты APC Share UPS.
UPSCLASS standalone

# UPSMODE [ disable | share ]
# Обычно отключается, если вы не используете общий доступ к ИБП с помощью карты APC Share UPS.
UPSMODE disable

#
# ===== Инструкции конфигурации для управления протоколированием системы apcupsd ========
#

# Интервал времени в секундах между записью файла СОСТОЯНИЯ; 0 отключает
STATTIME 0

# Расположение файла СОСТОЯНИЯ (записывается только в том случае, если ВРЕМЯ НАЧАЛА не равно нулю)
STATFILE /var/log/apcupsd.status

# LOGSTATS [ on | off ] on включено, off отключено
# Обратите внимание! Это генерирует много выходных данных, поэтому, если
# вы включаете это устройство, убедитесь, что
# файл, определенный в syslog.conf для LOG_NOTICE, является именованным каналом.
# Вы, вероятно, не хотите, чтобы это было включено.
LOGSTATS off

# Интервал времени в секундах между записью записей ДАННЫХ в файл журнала. 0 отключает.
DATATIME 0

# СРЕДСТВО определяет средство ведения журнала (класс) для ведения журнала в системный журнал.
# Если не указано, по умолчанию используется значение "демон". Это полезно
# если вы хотите отделить данные, регистрируемые apcupsd, от других программ.
#FACILITY DAEMON

#
# ========== Инструкции по настройке, используемые при обновлении EPROM ИБП =========
#

#
# Эти инструкции используются только apctest при выборе "Установить EEPROM с конфигурацией
# значения файла" из меню EEPROM. ЭТИ ЗАЯВЛЕНИЯ НЕ ОКАЗЫВАЮТ НИКАКОГО ВЛИЯНИЯ НА APCUPSD.
#

# Имя ИБП, не более 8 символов
#UPSNAME UPS_IDEN

# Дата заряда батареи - 8 символов
#BATTDATE mm/dd/yy

# Чувствительность к качеству сетевого напряжения (H вызывает более быструю передачу на батареи)
# SENSITIVITY H M L (по умолчанию = H)
#SENSITIVITY H

# Задержка ИБП после возврата питания (секунды)
# ПРОБУЖДЕНИЕ 000 060 180 300 (по умолчанию = 0)
WAKEUP 5

# Льготный период ИБП после запроса на отключение питания (секунды)
# СПАТЬ 020 180 300 600 (по умолчанию = 20)
#SLEEP 180

# Низкое напряжение в сети, вызывающее передачу на батареи
# Допустимые значения зависят от вашей модели, как определено в последней букве
# # ПРОШИВКИ или МОДЕЛИ APC. Некоторыми репрезентативными значениями являются:
# D 106 103 100 097
# M 177 172 168 182
# A 092 090 088 086
# I 208 204 200 196 (значение по умолчанию = 0 => недопустимо)
LOTRANSFER 208

# Высокое напряжение в сети, вызывающее передачу на батареи
# Допустимые значения зависят от вашей модели, как определено в последней букве
# # ПРОШИВКИ или МОДЕЛИ APC. Некоторыми репрезентативными значениями являются:
# D 127 130 133 136
# M 229 234 239 224
# A 108 110 112 114
# I 253 257 261 265 (значение по умолчанию = 0 => недопустимо)
HITRANSFER 253

# Зарядное устройство, необходимое для восстановления питания
# Процент заряда батареи, необходимый ИБП для восстановления питания подключенного оборудования.
# # ПЛАТА ЗА ВОЗВРАТ 00 15 50 90 (по умолчанию = 15)
RETURNCHARGE 1

# Задержка сигнала тревоги
# 0 = нулевая задержка после сбоя pwr, T = сбой питания + 30 сек, L = низкий заряд батареи, N = никогда
# BEEPSTATE 0 T L N (по умолчанию = 0)
#BEEPSTATE T

# Задержка предупреждения о низком заряде батареи в минутах
# LOWBATT 02 05 07 10 (по умолчанию = 02)
#LOWBATT 2

# Выходное напряжение ИБП при работе от батарей
# Допустимые значения зависят от вашей модели, как определено в последней букве
# # ПРОШИВКИ или МОДЕЛИ APC. Некоторыми репрезентативными значениями являются:
# D 115
# M 208
# A 100
# I 230 240 220 225 (значение по умолчанию = 0 => недопустимо)
OUTPUTVOLTS 230

# Интервал самопроверки в часах 336=2 недели, 168=1 неделя, ON=при включении питания, OFF=Никогда
# SELFTEST 336 168 ON OFF (по умолчанию = 336)
SELFTEST 336 ON

Код: Выделить всё

nano /etc/apcupsd/hosts.conf
hosts.conf
Показать
# Сетевые инструменты ИБП - hosts.conf
#
# Этот файл выполняет двойную функцию - в нем перечислены системы, которые multimon будет
# # отслеживать, а также указывает системы, к которым разрешен доступ upstarts.
# часы. Среди прочего, это удерживает людей от отправки случайных адресов в северную
# часть штата. изображение ups также использует этот файл, чтобы узнать, кто это.
# может также поговорить с . upsfstats.
#
# Использование: список систем, использующих upsd, которые вы хотите отслеживать
#
# МОНИТОР <адрес> "<описание хоста>"
#
# Пожалуйста, обратите внимание, что МОНИТОР должен начинаться с столбца 1 (пробелы не допускаются)
#
# Пример:
# MONITOR 10.64.1.1 "Финансовый отдел"
# MONITOR 10.78.1.1 "Комната данных средней школы Сьерра №1"
#
MONITOR 127.0.0.1 "Local Host"
#MONITOR 192.168.175.111 "Local Host IP"

Код: Выделить всё

nano /etc/apcupsd/multimon.conf
multimon.conf
Показать
# Пример файла конфигурации мультименеджера
#
# Этот файл не требуется. Без этого multimon будет использовать макет поля по умолчанию.
#
# Выбор температуры
#
# Выберите "TEMP" для градуса Цельсия или "TEMP" для градуса Фаренгейта. Это переопределит
# параметр --enable-celsius из компиляции. ТЕМПЕРАТУРА ИБП (ниже) будет.
# используйте этот параметр по умолчанию.

TEMPC

# Формат:
# ПОЛЕ <переменная> "<имя поля>" "<суффикс поля>"
# FIELD battpct "Battery Chg" "%"
#
# <переменная> это либо слово из протокола ИБП, например battchg (см.
# таблицу в src/cgi/upsfetch.c), либо специальное слово в верхнем регистре.
#
# Специальные слова - это:
# MODEL - Показать название модели для этой системы голубым цветом
#
# STATUS - Проанализируйте статус для этой системы, используя соответствующий цвет
#
# UPSTEMP Температура ИБП и температура AMB используют шкалу по умолчанию. Это значение равно C, если вы используете
# --enable-celsius во время компиляции *or* * или *, если вы используете "TEMPS" выше.
#
# UPSTEMP - Отображение температуры ИБП в шкале по умолчанию (суффикс игнорируется)
# AMBTEMP - Отображение температуры окружающей среды в шкале по умолчанию (суффикс игнорируется)
#
# UPSTEMPC - Отображение температуры ИБП в градусах C (суффикс игнорируется)
# UPSTEMPF - Отображение температуры ИБП в градусах по Фаренгейту (суффикс игнорируется)
# AMBTEMPC - Отображение температуры окружающей среды в градусах C (суффикс игнорируется)
# AMBTEMPF - Отображение температуры окружающей среды в градусах по Фаренгейту (суффикс игнорируется)
#
# Их называют "особенными", поскольку они действительно понимают
# печатаемый контент и делают другие вещи, основываясь на том, что там есть
#
# <имя поля> - это то, как вы хотели бы, чтобы этот столбец назывался на странице.
# Помните, что это HTML, поэтому вы действительно можете встроить сюда разметку.
# Это означает, что вы даже можете включить сюда изображения. Вы можете включить цитаты
# (и обратная косая черта!) в строке, экранируя их с помощью обратной косой черты (\).
#
# <суффикс поля> обычно представляет собой что-то вроде % или VAC. Это полезно, если
# вы хотите передать единицы измерения, которые применяются к значению.
#
# Пример конфигурации

FIELD SYSTEM "System" ""
FIELD MODEL "Model" ""
FIELD STATUS "Status" ""
FIELD battpct "Battery Chg" "%"
FIELD utility "Utility" "VAC"
FIELD loadpct "UPS Load" "%"
FIELD UPSTEMP "UPS Temp" ""
FIELD runtime "Batt. Run Time" "min."
FIELD DATA "Data" "All data"

# Они полезны только в том случае, если у вас есть модель Smart-UPS с функцией Measure-UPS II
# измерительная карта. В настоящее время никакие другие модели не поддерживают эти функции.
#
# FIELD AMBTEMP "температура окружающей среды" ""
# FIELD HUMIDITY "Влажность окружающей среды" "%"
Перевод других файлов
apccontrol
Показать
#!/bin/sh
#
# Авторское право (C) 1999-2002 Риккардо Факкетти <riccardo@master.oasi.gpa.it >
#
# платформы/apccontrol. Генерируется из apccontrol.in путем настройки.
#
# Обратите внимание, что это универсальный файл, который может использоваться большинством
# систем. Если конкретная система должна иметь что-то
# специальное, начните с этого файла и поместите копию в подкаталог платформы.
#

#
# Эти переменные необходимы для настройки других переменных autoconf.
#
prefix=/usr
exec_prefix=${prefix}

APCPID=/var/run/apcupsd.pid
APCUPSD=/sbin/apcupsd
SHUTDOWN=/sbin/shutdown
SCRIPTSHELL=/bin/sh
SCRIPTDIR=/etc/apcupsd
WALL=wall

export SYSADMIN=root
export APCUPSD_MAIL="mail"
if [ -f $SCRIPTDIR/config ]; then . $SCRIPTDIR/config ; fi

#
# Объедините все выходные данные этого скрипта в файл событий
# Обратите внимание, что следующее убивает сценарий в ситуации сбоя питания
# где диски монтируются только для чтения.
# exec >>/var/log/apcupsd.events 2>&1

#
# Эта часть предназначена для замены поведения по умолчанию вашим собственным сценарием,
# perl или программа на языке Си.
# Вы можете настроить каждую отдельную команду, создающую исполняемый файл (может быть
# скрипт или скомпилированная программа) и вызывая его так же, как параметр $1
# передается apcupsd этому скрипту.
#
# После выполнения вашего скрипта apc control продолжит выполнение действия по умолчанию.
# Если вы не хотите, чтобы apccontrol продолжался, выйдите из своего скрипта с помощью exit.
# код 99. Например, "выход 99".
#
# ПРЕДУПРЕЖДЕНИЕ: файл управления apc будет перезаписываться при каждом обновлении вашего
# apcupsd, выполняем `make install". Ваши собственные настроенные скрипты не будут
# перезаписано. Если вы хотите внести изменения в этот файл (не рекомендуется), вы
# # следует изменить apc control.sh.in а затем повторно запустите процесс настройки.
#
if [ -f ${SCRIPTDIR}/${1} -a -x ${SCRIPTDIR}/${1} ]
then
${SCRIPTDIR}/${1} ${2} ${3} ${4}
# код выхода 99 означает, что он не хочет, чтобы мы выполняли действие по умолчанию
if [ $? = 99 ] ; then
exit 0
fi
fi

case "$1" in
killpower)
echo "Управление Apc выполняется: ${APCUPSD} --отключение питания ИБП ${2}" | (${WALL} 2>/dev/null || cat)
sleep 10
${APCUPSD} --killpower
echo "Управление Apc выполнило: ${APCUPSD} --отключение питания ИБП ${2}" | (${WALL} 2>/dev/null || cat)
;;
commfailure)
echo "Предупреждение о потере связи с ИБП ${2}" | ${WALL}
;;
commok)
echo "Связь восстановлена с ИБП ${2}" | ${WALL}
;;
#
# отключение питания, включение батареи, выключение батареи, повторное подключение к сети происходят события
# в таком порядке.
#
powerout)
;;
onbattery)
echo "Сбой питания ИБП ${2}. Работает на батарейках." | ${WALL}
;;
offbattery)
echo "Питание ИБП вернулось ${2}..." | ${WALL}
;;
mainsback)
if [ -f /etc/apcupsd/powerfail ] ; then
printf "Продолжение работы с выключением." | ${WALL}
fi
;;
failing)
echo "Разряженный аккумулятор ИБП ${2}. Выполнение выключения." | ${WALL}
;;
timeout)
echo "Превышен лимит времени автономной работы ИБП ${2}. Выполнение выключения." | ${WALL}
;;
loadlimit)
echo "Оставшийся заряд батареи ниже предельного значения для ИБП ${2}. Выполнение выключения." | ${WALL}
;;
runlimit)
echo "Оставшееся время автономной работы ИБП ниже предельного значения ${2}. Выполнение выключения." | ${WALL}
;;
doreboot)
echo "ИБП ${2} инициирующая Последовательность Перезагрузки" | ${WALL}
${SHUTDOWN} -r now "apcupsd ИБП ${2} инициированная перезагрузка"
;;
doshutdown)
echo "ИБП ${2} инициированная Последовательность Выключения" | ${WALL}
${SHUTDOWN} -h now "apcupsd ИБП ${2} инициированное завершение работы"
;;
annoyme)
echo "Проблемы с питанием ИБП ${2}. Пожалуйста, выйдите из системы." | ${WALL}
;;
emergency)
echo "Аварийное Отключение. Возможный отказ батареи ИБП ${2}." | ${WALL}
;;
changeme)
echo "Чрезвычайная ситуация! В ИБП вышли из строя батареи ${2}. Замените их СЕЙЧАС на новые" | ${WALL}
;;
remotedown)
echo "Удаленное выключение. Начало Последовательности Выключения." | ${WALL}
;;
startselftest)
;;
endselftest)
;;
battdetach)
;;
battattach)
;;
*) echo "Использование: ${0##*/} команд"
echo " предупреждение: этот скрипт предназначен для запуска с помощью"
echo " apcupsd и никогда не должны запускаться пользователями."
exit 1
;;
esac
apcupsd.css
Показать
body {
color: black;
background: white;
}

div.Center {
text-align: center;
}

img {
border-style: none;
}

pre {
text-align: left;
}

strong {
color: red;
}

table.Outer {
color: black;
background: #60a0a0;
empty-cells: show; border: solid #60a0a0
}

th.Outer {
color: black;
background: #60b0b0
}

.Title {
font-size: 18pt;
}

.SubTitle {
font-size: 12pt;
}

.Empty {
color: black;
background: aqua;
}

.Fault {
color: black;
background: red;
}

.Label {
color: black;
background: aqua;
}

.Normal {
color: black;
background: lime;
}

.Warning {
color: black;
background: yellow;
}
changeme
Показать
#!/bin/sh
#
# Этот сценарий оболочки, если он помещен в /etc/apcupsd
# будет вызван /etc/apcupsd/apccontrol, когда apcupsd
# определяет, что аккумулятор необходимо заменить.
# Мы отправляем root сообщение по электронной почте, чтобы уведомить его.
#

HOSTNAME=`hostname`
MSG="$HOSTNAME ИБП $1 аккумулятор нужно заменить ПРЯМО СЕЙЧАС."
#
(
echo "$MSG"
echo " "
/sbin/apcaccess status
) | $APCUPSD_MAIL -s "$MSG" $SYSADMIN
exit 0
commfailure
Показать
#!/bin/sh
#
# Этот сценарий оболочки, если он помещен в /etc/apcupsd
# будет вызван /etc/apcupsd/apccontrol, когда apcupsd
# теряется контакт с ИБП (т.е. последовательное соединение не отвечает).
# Мы отправляем root сообщение по электронной почте, чтобы уведомить его.
#

HOSTNAME=`hostname`
MSG="$HOSTNAME Связь с ИБП $1 потеряна"
#
(
echo "$MSG"
) | $APCUPSD_MAIL -s "$MSG" $SYSADMIN
exit 0
commok
Показать
#!/bin/sh
#
# Этот сценарий оболочки, если он помещен в /etc/apcupsd
# будет вызван /etc/apcupsd/apccontrol, когда apcupsd
# теряется контакт с ИБП (т.е. последовательное соединение не отвечает).
# Мы отправляем root сообщение по электронной почте, чтобы уведомить его.
#

HOSTNAME=`hostname`
MSG="$HOSTNAME Связь с ИБП $1 восстановлена"
#
(
echo "$MSG"
echo " "
/sbin/apcaccess status
) | $APCUPSD_MAIL -s "$MSG" $SYSADMIN
exit 0
killpower
Показать
#!/bin/sh
#
# Этот сценарий оболочки, если он помещен в /etc/apcupsd
# будет вызван /etc/apcupsd/apccontrol перед
# apcupsd отключает питание ИБП. Вы, вероятно,
# необходимо отредактировать это, чтобы смонтировать /usr и /var, доступные только для чтения,
# в противном случае apcupsd не запустится.

# Выберите одно из этих решений
#mount -n -o ro /usr
#mount -n -o ro /var
#
#mount | awk '/ext2/ { print $3 }' | while read line; do
# mount -n -o ro,remount $line
#done
#mount | awk '/ext3/ { print $3 }' | while read line; do
# mount -n -o ro,remount $line
#done
#mount | awk '/reiserfs/ { print $3 }' | while read line; do
# mount -n -o ro,remount $line
#done

exit 0
offbattery
Показать
#!/bin/sh
#
# Этот сценарий оболочки, если он помещен в /etc/apcupsd
# будет вызван /etc/apcupsd/apccontrol, когда....
# # ИБП возвращается к электросети после сбоя питания.
# Мы отправляем root сообщение по электронной почте, чтобы уведомить его.
#

HOSTNAME=`hostname`
MSG="$HOSTNAME ИБП $1 Питание восстановлено"
#
(
echo "$MSG"
echo " "
/sbin/apcaccess status
) | $APCUPSD_MAIL -s "$MSG" $SYSADMIN
exit 0
onbattery
Показать
#!/bin/sh
#
# Этот сценарий оболочки, если он помещен в /etc/apcupsd
# будет вызван /etc/apcupsd/apccontrol, когда ИБП
# работает от батареек.
# Мы отправляем root сообщение по электронной почте, чтобы уведомить его.
#

HOSTNAME=`hostname`
MSG="$HOSTNAME ИБП $1 Сбой питания !!!"
#
(
echo "$MSG"
echo " "
/sbin/apcaccess status
) | $APCUPSD_MAIL -s "$MSG" $SYSADMIN
exit 0
ups-monitor
Показать
#!/bin/sh

### BEGIN INIT INFO
# Provides: ибп-монитор
# Required-Start:
# Required-Stop:
# Should-Start:
# Should-Stop:
# Default-Start:
# Default-Stop:
# Short-Description: Стоп ибп-монитор
# Description: apcupsd обеспечивает управление питанием ИБП для продуктов APC.
### END INIT INFO

# Мартин Митчелл <martin@debian.org>
# модификации Гордона Морхауса <spambox@evernex.com> Апрель 2001 года
#
# Изменено на "неблокирующее" Бьорном Вибергом <bjorn.wiberg@home.se> 2004-10-21
# Поместите этот скрипт в /etc/init.d/ups-monitor, чтобы /etc/init.d/halt мог его найти!

case "$1" in
poweroff | killpower)
if [ -f /etc/apcupsd/powerfail ]; then
echo ""
echo -n "apcupsd: Заказ ИБП на отключение питания... "
/etc/apcupsd/apccontrol killpower
echo "Выполнено."
echo ""
echo "Пожалуйста, убедитесь, что ИБП выключен перед перезагрузкой."
echo "В противном случае ИБП может отключить питание во время перезагрузки!"
echo ""
fi
;;

*)
;;
esac

exit 0
Запуск\остановка:
/etc/init.d/apcupsd start или stop или restart

Код: Выделить всё

service apcupsd start
Добавляем apcupsd в автозагрузку в зависимости от ОС:
chkconfig --add apcupsd
chkconfig apcupsd on
или
update-rc.d apcupsd defaults
update-rc.d apcupsd defaults
или
systemctl enable apcupsd.service
systemctl enable apcupsd.service

Проверка состояния ИБП:
apcaccess

Код: Выделить всё

apcaccess status
Для нескольких ИБП
apcaccess status 127.0.0.1:3551 - 1я ИБП
apcaccess status 127.0.0.1:3552 - 2я ИБП
apcaccess status 127.0.0.1:3553 - 3я ИБП

Пример максимального ответа с описанием:
APC : 001,043,1019 (Заголовок: версия формата данных, число записей, длина данных в байтах.)
DATE : 2022-09-02 16:18:34 +0300 (Дата, время получения данных с ИБП.)
HOSTNAME : ZABBIXSERVER (Имя хоста к которому подключён ИБП.)
UPSNAME : ZABBIXSERVER (Имя ИБП, записанное EEPROM или заданное в поле UPSNAME файла настройки.)
VERSION : 3.14.14 (31 May 2016) debian (Версия, дата сборки apcupsd, платформа (ОС).)
CABLE : USB Cable (Тип кабеля, заданный в поле UPSCABLE файла настройки.)
DRIVER : USB UPS Driver (Название драйвера apcupsd)
MODEL : Smart-UPS 2200 RM (Модель ИБП)
UPSMODE : Stand Alone (Режим работы apcupsd заданный в поле UPSMODE файла настройки)
STARTTIME: 2022-09-02 16:11:11 +0300 (Дата, время запуска apcupsd.)
STATUS : ONLINE (Текущее состояние (статус) ИБП.)
MASTERUPD: (Последний раз, когда мастер отправлял обновление ведомому)
LINEV : 221.7 Volts (Напряжение на входе ИБП)
LOADPCT : 26.6 Percent (Уровень нагрузки ИБП (%))
BCHARGE : 100.0 Percent (Уровень заряда батареи (%).)
TIMELEFT : 7.0 Minutes (Оставшееся время работы от батареи по оценке ИБП.)
MBATTCHG : 5 Percent (Уровень заряда батареи (BCHARGE) опустится ниже уровня который задан в файле настройки переменной BATTERYLEVEL то тогда будет начато выключение системы.)
MINTIMEL : 3 Minutes (Время работы от батарей (в минутах) перед началом отключения системы. Задаётся в файле настроек, в переменной MINUTES.)
MAXTIME : 0 Seconds (Время работы от батарей (в минутах) перед началом отключения системы. Задаётся в файле настроек, в переменной TIMEOUT.)
MAXLINEV : 227.5 Volts (Максимальное линейное напряжение с момента запуска ИБП, согласно отчету ИБП.)
MINLINEV : 224.6 Volts (Минимальное линейное напряжение с момента запуска ИБП, согласно отчету ИБП.)
OUTPUTV : 221.7 Volts (Напряжение на выходе ИБП (В))
SENSE : High (Уровень чувствительности ИБП чувствительность UPS к изменениям входного напряжения (LINEV): Low (низкая), Medium (средняя), High (высокая))
DWAKE : -1 Seconds (Время ожидания (в секундах) после возобновления питания до включения нагрузки.)
DSHUTD : 180 Seconds (Задержка после получения ИБП команды на выключение перед отключением нагрузки.)
DLOWBATT : 02 Minutes (Оставшееся время работы, ниже которого ИБП отправляет сигнал низкого заряда батареи. В этот момент apcupsd вызовет немедленное аварийное отключение.)
LOTRANS : 208.0 Volts (Нижняя граница допустимого напряжения до перехода на батареи.)
HITRANS : 253.0 Volts (Верхняя граница допустимого напряжения до перехода на батареи.)
RETPCT : 0.0 Percent (Минимальный уровень (%) зарядка батареи после возобновления питания для включения нагрузки.)
ITEMP : 13.5 C (Температура внутри ИБП.)
ALARMDEL : 30 Seconds (Задержка перед выдачей сигнала тревоги.)
BATTV : 55.1 Volts (Напряжение батареи.)
LINEFREQ : 50.0 Hz (Частота переменного тока (Гц) на входе ИБП.)
LASTXFER : No transfers since turnon (Причина последнего перехода на работу от батарей.)
NUMXFERS : 0 (Количество переходов на питание от батареи с момента запуска APCUPSd.)
XONBATT : 2016-08-19 09:41:42 +0300 (Дата, время последнего перехода на работу от батарей. Если недоступно тогда N/A.)
TONBATT : 0 Seconds (Текущее время работы от батарей. Если нет, то 0.)
CUMONBATT: 0 Seconds (Общее (суммарное) время работы от батарей (в секундах) с времени запуска APCUPSd.)
XOFFBATT : N/A (Дата, время последнего перехода с батарей. Если недоступно тогда N/A.)
SELFTEST : NO (Результат самотестирования: OK: всё в порядке; BT: тест не прошёл из-за недостаточной ёмкости батарей; NG: тест не прошёл из-за перегрузки; NO: Нет данных)
STESTI : 14 days (Интервал в часах между выполнением самотестирования.)
LASTSTEST: 2016-08-19 09:41:42 +0300 (Время последнего самотестирования.)
STATFLAG : 0x05000008 (Флаг состояния.)
DIPSW : (Текущие настройки переключателей ИБП (dip switch).)
REG1 : (Значение регистра неисправностей ИБП 1.)
REG2 : (Значение регистра неисправностей ИБП 2.)
REG3 : (Значение регистра неисправностей ИБП 3.)
MANDATE : 2010-01-07 (Дата производства ИБП.)
SERIALNO : JS1002028188 (Серийный номер ИБП.)
BATTDATE : 2010-01-07 (Дата последней замены батарей. Формат: ММ/ДД/ГГ Необходимо менять значение вручную)
NOMOUTV : 230 Volts (Выходное напряжение, которое ИБП будет пытаться обеспечить при питании от батареи.)
NOMBATTV : 48.0 Volts (Нормальное напряжение батарей)
EXTBATTS : (Количество внешних батарейных модулей.)
BADBATTS : (Количество неисправных внешних батарейных модулей)
FIRMWARE : 665.6.I USB FW:7.4 (Версия микропрограммы ИБП.)
APCMODEL : (Старый идентификатор кода модели APC.)
NOMINV : (Входное напряжение, на которое рассчитан ИБП.)
NOMPOWER : (Максимальная мощность в ваттах, на которую рассчитан ИБП.)
AMBTEMP : (Температура снаружи ИБП)
HUMIDITY : (Влажность воздуха, измеренная ИБП.)
LINEFAIL : (Состояние напряжения входной линии.)
BATTSTAT : (Состояние батарей)
END APC : 2022-09-02 16:18:41 +0300 (Дата, время когда данные полученные с ИБП были записаны в файл.)

Дополнительная информация
Поля о Состоянии ИБП
Поля отчета о состоянии Оф.
apcaccess(8) — справочная страница


Ответ от Smart-UPS 2200 RM :
APC : 001,043,1019
DATE : 2022-09-06 09:00:06 +0300
HOSTNAME : ZABBIXSERVER
VERSION : 3.14.14 (31 May 2016) debian
UPSNAME : ZABBIXSERVER
CABLE : USB Cable
DRIVER : USB UPS Driver
UPSMODE : Stand Alone
STARTTIME: 2022-09-02 16:11:11 +0300
MODEL : Smart-UPS 2200 RM
STATUS : ONLINE
LINEV : 218.8 Volts
LOADPCT : 29.2 Percent
BCHARGE : 100.0 Percent
TIMELEFT : 6.0 Minutes
MBATTCHG : 5 Percent
MINTIMEL : 3 Minutes
MAXTIME : 0 Seconds
OUTPUTV : 218.8 Volts
SENSE : High
DWAKE : -1 Seconds
DSHUTD : 180 Seconds
LOTRANS : 208.0 Volts
HITRANS : 253.0 Volts
RETPCT : 0.0 Percent
ITEMP : 17.5 C
ALARMDEL : 30 Seconds
BATTV : 55.1 Volts
LINEFREQ : 50.0 Hz
LASTXFER : No transfers since turnon
NUMXFERS : 0
TONBATT : 0 Seconds
CUMONBATT: 0 Seconds
XOFFBATT : N/A
SELFTEST : NO
STESTI : 14 days
STATFLAG : 0x05000008
MANDATE : 2010-01-07
SERIALNO : JS1002028188
BATTDATE : 2010-01-07
NOMOUTV : 230 Volts
NOMBATTV : 48.0 Volts
FIRMWARE : 665.6.I USB FW:7.4
END APC : 2022-09-06 09:00:39 +0300

Для отправки оповещений на почту например:

Код: Выделить всё

apt-get install s-nail
- Почта


Дополнительно можно установить документацию и APC UPS Power Management (web interface):

Код: Выделить всё

apt-get install apcupsd-cgi
Существует четыре программы CGI (multimon.cgi, upsstats.cgi, upsfstats.cgi и upsimage.cgi) - Статус ИБП через веб-браузер
/usr/lib/cgi-bin/apcupsd/multimon.cgi
Тестировать /usr/lib/cgi-bin/apcupsd/multimon.cgi
На многих сайтах сервер Apache работает не от имени root, поэтому вы должны убедиться, что файлы /etc/apcupsd/hosts.conf и /etc/apcupsd/multimon.conf доступны для чтения всем.
Меняем права для Apache2

Код: Выделить всё

chown -R www-data:www-data /usr/lib/cgi-bin
chmod -R 775 /usr/lib/cgi-bin
Начало установки Apache php было тут
Далее нам необходимо включить CGI (кому интересно почитайте более подробно и о безопасности использования разрешает выполнять скрипты!)
Конфиг

Код: Выделить всё

a2enconf serve-cgi-bin
- Включить
a2disconf serve-cgi-bin - Выключить
Модуль

Код: Выделить всё

a2enmod cgi
- Включить модуль
a2dismod cgi - Отключить модуль
Сайта

Код: Выделить всё

a2ensite 000-default.conf
- Включить (уже включен просто пример)
a2dissite 000-default.conf -Отключить

Немного подправим конфиг, чтоб открывался из другой директории, а не скачивался как файл
По умолчанию для Apache/2.4.25 (Debian)

Код: Выделить всё

nano /etc/apache2/conf-available/server-cgi-bin.conf
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<------><------><Directory "/usr/lib/cgi-bin">
<------><------><------>AllowOverride None
<------><------><------>Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
<------><------><------>Require all granted
AddHandler cgi-script .cgi
<------><------></Directory>
Описание
Показать
ПРИМЕЧАНИЕ: если у вас несколько CGI, каждый из которых находится в разных каталогах, вам следует использовать
AddHandler cgi-script .cgi
внутри <IfModule>
перечисление расширений .pl .py .sh
Если вы хотите указать cgi-binподкаталог каталога пользователя, где все будет рассматриваться как программа CGI, вы можете использовать следующее.
SetHandler cgi-script

Код: Выделить всё

systemctl reload apache2
- перечитываем применяем конфиг
systemctl restart apache2 - Если не сработало перезапускаем

Проверяем:
http://ваш-сайт/cgi-bin/apcupsd/multimon.cgi
http://192.168.175.111/cgi-bin/apcupsd/multimon.cgi
multimon.cgi
multimon.cgi
контроль над цветами, шрифтами и размерами вывода multimon, вы можете просто отредактировать файл /etc/apcupsd/apcupsd.css, указав предпочтительные стили.
http://192.168.175.111/cgi-bin/apcupsd/upsstats.cgi
upsstats.cgi
upsstats.cgi
http://192.168.175.111/cgi-bin/apcupsd/upsfstats.cgi
upsfstats.cgi
upsfstats.cgi
Данные можем получить:
командой apcaccess status 127.0.0.1:3551 (заббикс агент, внешний скрипт, shh и другими вариантами),
Либо HTTP агентом http://192.168.175.111/cgi-bin/apcupsd/upsfstats.cgi

Переходим к созданию шаблона.
количество слов: 1903
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 853
Стаж: 5 лет 7 месяцев
Откуда: Вологодская область
Поблагодарили: 37 раз
Контактная информация:

APC ИБП LINUX через APCUPSD

Сообщение Артём Мамзиков »

Несколько ИБП/UPS APC к одному LINUX через apcupsd

Иногда возникает необходимость управлять несколькими UPS на одном сервере, даже когда есть несколько серверов и все они запитаны от тех же бесперебойников.
Имеем три бесперебойника: APC-Smart-UPS-2200; APC-Smart-UPS-2200; APC-Smart-UPS-1500c.

2200 подключены через “стандартный” USB кабель, а 1500с через кабель RS232-RS232 com-com.

Проверяем подключения Ответ
Bus 002 Device 004: ID 13ba:0018 PCPlay Barcode PCP-BCG4209
Bus 002 Device 007: ID 051d:0002 American Power Conversion Uninterruptible Power Supply
Bus 002 Device 003: ID 051d:0002 American Power Conversion Uninterruptible Power Supply
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

dmesg|grep generic-usb

Код: Выделить всё

dmesg|grep "UPS"
[ 2.581641] usb 2-1.1: Product: Smart-UPS 2200 RM FW:665.6.I USB FW:7.4
[ 3.999837] hid-generic 0003:051D:0002.0001: hiddev0,hidraw2: USB HID v1.10 Device [American Power Conversion Smart-UPS 2200 RM FW:665.6.I USB FW:7.4] on usb-0000:00:1d.0-1.1/input0
[8536507.346367] usb 2-1.3: Product: Smart-UPS 2200 RM FW:665.6.I USB FW:7.4
[8536508.799561] hid-generic 0003:051D:0002.0004: hiddev0,hidraw3: USB HID v1.10 Device [American Power Conversion Smart-UPS 2200 RM FW:665.6.I USB FW:7.4] on usb-0000:00:1d.0-1.3/input0

Код: Выделить всё

ls -a /dev/usb/
Ответ
. .. hiddev0 hiddev1

Код: Выделить всё

ls -a /dev/ttyS* /dev/ttyUSB*
Ответ
/dev/ttyS0 /dev/ttyS1 /dev/ttyS2 /dev/ttyS3

/dev/ttyS0 -COM1 порт
/dev/ttyS1 -COM2 порт
/dev/ttyUSB0 специальный кабель-переходник из USB в COM (Gembird UAS111)

Получаем подключения
APC-Smart-UPS-2200 /dev/usb/hiddev0
APC-Smart-UPS-2200 /dev/usb/hiddev0
APC-Smart-UPS-1500c /dev/ttyS0 -COM1 порт

По умолчанию у нас есть 1 файл конфигурации для 1 ИБП
/etc/apcupsd/apcupsd.conf

Сделаем 3 конфига под каждую ИБП

Переходим в папку с конфигурациями

Код: Выделить всё

cd /etc/apcupsd/
Делаем копии, даем имена я назвал по модели

Код: Выделить всё

cp apcupsd.conf apcupsd-2200rm-1.conf
cp apcupsd.conf apcupsd-2200rm-2.conf
cp apcupsd.conf apcupsd-1500c-3.conf
В файле конфигурации прописываем/меняем
Для apcupsd-2200rm-1.conf
17 строка Имя ИБП
UPSNAME 2200rm-1
31 строка Вид кабеля
UPSCABLE usb
89-90 строка Тип подключения и устройство (определили выше)
UPSTYPE usb
DEVICE /dev/usb/hiddev0

IP-прослушивания
NISIP 127.0.0.1
Порт
NISPORT 3551
ФАЙЛ СОБЫТИЙ.
EVENTSFILE /var/log/apcupsd-2200rm-1.events
ФАЙЛ СОСТОЯНИЯ
STATFILE /var/log/apcupsd-2200rm-1.status

Остальное меняем как не обходимо от вида действий конкретной ИБП или оставляем по умолчанию.

Для apcupsd-2200rm-2.conf
17 строка Имя ИБП
UPSNAME 2200rm-2
31 строка Вид кабеля
UPSCABLE usb
89-90 строка Тип подключения и устройство (определили выше)
UPSTYPE usb
DEVICE /dev/usb/hiddev1

IP-прослушивания
NISIP 127.0.0.1
Порт
NISPORT 3552
ФАЙЛ СОБЫТИЙ.
EVENTSFILE /var/log/apcupsd-2200rm-2.events
ФАЙЛ СОСТОЯНИЯ
STATFILE /var/log/apcupsd-2200rm-2.status

Для apcupsd-1500c-3.conf
17 строка Имя ИБП
UPSNAME 1500c-3
31 строка Вид кабеля
UPSCABLE smart
89-90 строка Тип подключения и устройство (определили выше)
UPSTYPE apcsmart
DEVICE /dev/ttyS0


208 строка IP-прослушивания
NISIP 127.0.0.1
215 строка Порт
NISPORT 3553
219 строка ФАЙЛ СОБЫТИЙ.
EVENTSFILE /var/log/apcupsd-1500c-3.events
253 строка ФАЙЛ СОСТОЯНИЯ
STATFILE /var/log/apcupsd-1500c-3.status

Запуск вручную проверка

Код: Выделить всё

/sbin/apcupsd -f /etc/apcupsd/apcupsd-2200rm-1.conf

Код: Выделить всё

/sbin/apcupsd -f /etc/apcupsd/apcupsd-2200rm-2.conf

Код: Выделить всё

/sbin/apcupsd -f /etc/apcupsd/apcupsd-1500c-3.conf
по умолчанию проверка была такой для 1 ИБП

Код: Выделить всё

apcaccess
Для 3х ИБП проверка каждой отдельно

Код: Выделить всё

apcaccess status 127.0.0.1:3551
Ответ
Показать
APC : 001,043,1027
DATE : 2023-09-20 20:10:14 +0300
HOSTNAME : ZABBIXSERVER
VERSION : 3.14.14 (31 May 2016) debian
UPSNAME : ZABBIXSERVER
CABLE : USB Cable
DRIVER : USB UPS Driver
UPSMODE : Stand Alone
STARTTIME: 2023-09-20 16:31:53 +0300
MODEL : Smart-UPS 2200 RM
STATUS : ONLINE
LINEV : 220.3 Volts
LOADPCT : 16.2 Percent
BCHARGE : 100.0 Percent
TIMELEFT : 17.0 Minutes
MBATTCHG : 20 Percent
MINTIMEL : 5 Minutes
MAXTIME : 0 Seconds
OUTPUTV : 220.3 Volts
SENSE : High
DWAKE : -1 Seconds
DSHUTD : 180 Seconds
LOTRANS : 208.0 Volts
HITRANS : 253.0 Volts
RETPCT : 0.0 Percent
ITEMP : 20.2 C
ALARMDEL : 30 Seconds
BATTV : 55.1 Volts
LINEFREQ : 50.0 Hz
LASTXFER : Automatic or explicit self test
NUMXFERS : 0
TONBATT : 0 Seconds
CUMONBATT: 0 Seconds
XOFFBATT : N/A
SELFTEST : NO
STESTI : 14 days
STATFLAG : 0x05000008
MANDATE : 2010-01-07
SERIALNO : JS1992028188
BATTDATE : 2010-01-07
NOMOUTV : 230 Volts
NOMBATTV : 48.0 Volts
FIRMWARE : 665.6.I USB FW:7.4
END APC : 2023-09-20 20:10:32 +0300

Код: Выделить всё

apcaccess status 127.0.0.1:3552
Ответ
Показать
APC : 001,043,1016
DATE : 2023-09-20 20:10:42 +0300
HOSTNAME : ZABBIXSERVER
VERSION : 3.14.14 (31 May 2016) debian
UPSNAME : 2200rm-2
CABLE : USB Cable
DRIVER : USB UPS Driver
UPSMODE : Stand Alone
STARTTIME: 2023-09-20 16:23:35 +0300
MODEL : Smart-UPS 2200 RM
STATUS : ONLINE
LINEV : 218.8 Volts
LOADPCT : 16.2 Percent
BCHARGE : 100.0 Percent
TIMELEFT : 66.0 Minutes
MBATTCHG : 20 Percent
MINTIMEL : 5 Minutes
MAXTIME : 0 Seconds
OUTPUTV : 218.8 Volts
SENSE : High
DWAKE : -1 Seconds
DSHUTD : 90 Seconds
LOTRANS : 208.0 Volts
HITRANS : 253.0 Volts
RETPCT : 0.0 Percent
ITEMP : 22.5 C
ALARMDEL : 30 Seconds
BATTV : 55.4 Volts
LINEFREQ : 50.0 Hz
LASTXFER : No transfers since turnon
NUMXFERS : 0
TONBATT : 0 Seconds
CUMONBATT: 0 Seconds
XOFFBATT : N/A
SELFTEST : NO
STESTI : 14 days
STATFLAG : 0x05000008
MANDATE : 2009-10-24
SERIALNO : JS0943029963
BATTDATE : 2009-10-24
NOMOUTV : 230 Volts
NOMBATTV : 48.0 Volts
FIRMWARE : 665.6.I USB FW:7.4
END APC : 2023-09-20 20:11:04 +0300

Код: Выделить всё

apcaccess status 127.0.0.1:3553
Ответ
Показать
APC : 001,048,1106
DATE : 2023-09-20 20:12:07 +0300
HOSTNAME : ZABBIXSERVER
VERSION : 3.14.14 (31 May 2016) debian
UPSNAME : 1500c-3
CABLE : Custom Cable Smart
DRIVER : APC Smart UPS (any)
UPSMODE : Stand Alone
STARTTIME: 2023-09-20 16:43:30 +0300
MODEL : Smart-UPS SC1500
STATUS : ONLINE
LINEV : 218.0 Volts
LOADPCT : 0.0 Percent
BCHARGE : 100.0 Percent
TIMELEFT : 356.0 Minutes
MBATTCHG : 20 Percent
MINTIMEL : 5 Minutes
MAXTIME : 0 Seconds
MAXLINEV : 220.0 Volts
MINLINEV : 218.0 Volts
OUTPUTV : 218.0 Volts
SENSE : High
DWAKE : 0 Seconds
DSHUTD : 180 Seconds
DLOWBATT : 2 Minutes
LOTRANS : 200.0 Volts
HITRANS : 253.0 Volts
RETPCT : 0.0 Percent
ALARMDEL : 5 Seconds
BATTV : 26.8 Volts
LINEFREQ : 50.0 Hz
LASTXFER : Line voltage notch or spike
NUMXFERS : 0
TONBATT : 0 Seconds
CUMONBATT: 0 Seconds
XOFFBATT : N/A
SELFTEST : NO
STESTI : 336
STATFLAG : 0x05000008
REG1 : 0x00
REG2 : 0x00
REG3 : 0x00
MANDATE : 09/26/09
SERIALNO : 5S0999T27892
BATTDATE : 09/14/18
NOMOUTV : 230 Volts
NOMBATTV : 24.0 Volts
FIRMWARE : 738.3.I
END APC : 2023-09-20 20:12:13 +0300
Чтобы все три демона стартовали автоматически при запуске системы.
Переходим

Код: Выделить всё

cd /etc/init.d/
, где объектом изменений будет скрипт по умолчанию apcupsd

Код: Выделить всё

#!/bin/sh

### BEGIN INIT INFO
# Provides:<---><------>apcupsd
# Required-Start:<----->$remote_fs $syslog
# Required-Stop:<------>$remote_fs $syslog
# Should-Start:><------>$local_fs
# Should-Stop:<><------>$local_fs
# Default-Start:<------>2 3 4 5
# Default-Stop:><------>0 1 6
# Short-Description:<-->Starts apcupsd daemon
# Description:<><------>apcupsd provides UPS power management for APC products.
### END INIT INFO

test -f /lib/lsb/init-functions || exit 1
. /lib/lsb/init-functions

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/sbin/apcupsd
CONFIG=/etc/default/apcupsd
NAME=apcupsd
DESC="UPS power management"
APCACCESS=/sbin/apcaccess

test -x $DAEMON || exit 0
test -e $CONFIG || exit 0

set -e

. $CONFIG

if [ "x$ISCONFIGURED" != "xyes" ] ;
then
<------>echo "Please check your configuration ISCONFIGURED in /etc/default/apcupsd"
<------>exit 0
fi


case "$1" in
<------>start)
<------><------>echo -n "Starting $DESC: "

<------><------>/lib/apcupsd/prestart

<------><------>if [ "`pidof apcupsd`" = "" ]
<------><------>then
<------><------><------>start-stop-daemon --start --quiet --exec $DAEMON
<------><------><------>echo "$NAME."
<------><------>else
<------><------><------>echo ""
<------><------><------>echo "A copy of the daemon is still running.  If you just stopped it,"
<------><------><------>echo "please wait about 5 seconds for it to shut down."
<------><------><------>exit 0
<------><------>fi
<------><------>;;

<------>stop)
<------><------>echo -n "Stopping $DESC: "
<------><------>start-stop-daemon --stop --oknodo --pidfile /var/run/apcupsd.pid || echo "Not Running."
<------><------>rm -f /var/run/apcupsd.pid
<------><------>echo "$NAME."
<------><------>;;

<------>restart|force-reload)
<------><------>$0 stop
<------><------>sleep 10
<------><------>$0 start
<------><------>;;

<------>status)
<------><------>$APCACCESS status
<------><------>;;

<------>*)
<------><------>N=/etc/init.d/$NAME
<------><------>echo "Usage: $N {start|stop|restart|force-reload}" >&2
<------><------>exit 1
<------><------>;;
esac

exit 0
Делаем копии, даем имена я назвал по модели

Код: Выделить всё

cp apcupsd apcupsd-2200rm-1
cp apcupsd apcupsd-2200rm-2
cp apcupsd apcupsd-1500c-3
apcupsd-2200rm-1

Код: Выделить всё

#!/bin/sh

### BEGIN INIT INFO
# Provides:             apcupsd-2200rm-1
# Required-Start:       $remote_fs $syslog
# Required-Stop:        $remote_fs $syslog
# Should-Start:         $local_fs
# Should-Stop:          $local_fs
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    Starts apcupsd daemon
# Description:          apcupsd-2200rm-1 provides UPS power management for APC products.
### END INIT INFO

test -f /lib/lsb/init-functions || exit 1
. /lib/lsb/init-functions

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=`/sbin/apcupsd -f /etc/apcupsd/apcupsd-2200rm-1.conf`
CONFIG=/etc/default/apcupsd#ISCONFIGURED=yes
NAME=apcupsd-2200rm-1
DESC="Управление питанием ИБП"
APCACCESS=/sbin/apcaccess

test -x $DAEMON || exit 0
test -e $CONFIG || exit 0

set -e

. $CONFIG

if [ "x$ISCONFIGURED" != "xyes" ] ;
then
        echo "Пожалуйста, проверьте, НАСТРОЕНА ли ваша конфигурация в /etc/apcupsd/"
        exit 0
fi


case "$1" in
        start)
                echo -n "Запуск $DESC: "

                /lib/apcupsd/prestart

                if [ "`pidof apcupsd-2200rm-1`" = "" ]
                then
                        start-stop-daemon --start --quiet --exec $DAEMON
                        echo "$NAME."
                else
                        echo ""
                        echo "Копия демона все еще запущена.  Если бы ты просто остановил это,"
                        echo "пожалуйста, подождите около 5 секунд, пока он выключится."
                        exit 0
                fi
                ;;

        stop)
                echo -n "Остановка $DESC: "
                start-stop-daemon --stop --oknodo --pidfile /var/run/apcupsd-2200rm-1.pid || echo "Не Запущена."
                rm -f /var/run/apcupsd-2200rm-1.pid
                echo "$NAME."
                ;;

        restart|force-reload)
                $0 stop
                sleep 10
                $0 start
                ;;

        status)
                $APCACCESS status
                ;;

        *)
                N=/etc/init.d/$NAME
                echo "Использование: $N {start|stop|restart|force-reload}" >&2
                exit 1
                ;;
esac

exit 0

apcupsd-2200rm-2

Код: Выделить всё

#!/bin/sh

### BEGIN INIT INFO
# Provides:             apcupsd-2200rm-2
# Required-Start:       $remote_fs $syslog
# Required-Stop:        $remote_fs $syslog
# Should-Start:         $local_fs
# Should-Stop:          $local_fs
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    Starts apcupsd daemon
# Description:          apcupsd-2200rm-2 provides UPS power management for APC products.
### END INIT INFO

test -f /lib/lsb/init-functions || exit 1
. /lib/lsb/init-functions

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=`/sbin/apcupsd -f /etc/apcupsd/apcupsd-2200rm-2.conf`
CONFIG=/etc/default/apcupsd#ISCONFIGURED=yes
NAME=apcupsd-2200rm-2
DESC="Управление питанием ИБП"
APCACCESS=/sbin/apcaccess

test -x $DAEMON || exit 0
test -e $CONFIG || exit 0

set -e

. $CONFIG

if [ "x$ISCONFIGURED" != "xyes" ] ;
then
        echo "Пожалуйста, проверьте, НАСТРОЕНА ли ваша конфигурация в /etc/apcupsd/"
        exit 0
fi


case "$1" in
        start)
                echo -n "Запуск $DESC: "

                /lib/apcupsd/prestart

                if [ "`pidof apcupsd-2200rm-2`" = "" ]
                then
                        start-stop-daemon --start --quiet --exec $DAEMON
                        echo "$NAME."
                else
                        echo ""
                        echo "Копия демона все еще запущена.  Если бы ты просто остановил это,"
                        echo "пожалуйста, подождите около 5 секунд, пока он выключится."
                        exit 0
                fi
                ;;

        stop)
                echo -n "Остановка $DESC: "
                start-stop-daemon --stop --oknodo --pidfile /var/run/apcupsd-2200rm-2.pid || echo "Не Запущена."
                rm -f /var/run/apcupsd-2200rm-2.pid
                echo "$NAME."
                ;;

        restart|force-reload)
                $0 stop
                sleep 10
                $0 start
                ;;

        status)
                $APCACCESS status
                ;;

        *)
                N=/etc/init.d/$NAME
                echo "Использование: $N {start|stop|restart|force-reload}" >&2
                exit 1
                ;;
esac

exit 0
apcupsd-1500c-3

Код: Выделить всё

#!/bin/sh

### BEGIN INIT INFO
# Provides:             apcupsd-1500c-3
# Required-Start:       $remote_fs $syslog
# Required-Stop:        $remote_fs $syslog
# Should-Start:         $local_fs
# Should-Stop:          $local_fs
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    Starts apcupsd daemon
# Description:          apcupsd-1500c-3 provides UPS power management for APC products.
### END INIT INFO

test -f /lib/lsb/init-functions || exit 1
. /lib/lsb/init-functions

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=`/sbin/apcupsd -f /etc/apcupsd/apcupsd-1500c-3.conf`
CONFIG=/etc/default/apcupsd#ISCONFIGURED=yes
NAME=apcupsd-1500c-3
DESC="Управление питанием ИБП"
APCACCESS=/sbin/apcaccess

test -x $DAEMON || exit 0
test -e $CONFIG || exit 0

set -e

. $CONFIG

if [ "x$ISCONFIGURED" != "xyes" ] ;
then
        echo "Пожалуйста, проверьте, НАСТРОЕНА ли ваша конфигурация в /etc/apcupsd/"
        exit 0
fi


case "$1" in
        start)
                echo -n "Запуск $DESC: "

                /lib/apcupsd/prestart

                if [ "`pidof apcupsd-1500c-3`" = "" ]
                then
                        start-stop-daemon --start --quiet --exec $DAEMON
                        echo "$NAME."
                else
                        echo ""
                        echo "Копия демона все еще запущена.  Если бы ты просто остановил это,"
                        echo "пожалуйста, подождите около 5 секунд, пока он выключится."
                        exit 0
                fi
                ;;

        stop)
                echo -n "Остановка $DESC: "
                start-stop-daemon --stop --oknodo --pidfile /var/run/apcupsd-1500c-3.pid || echo "Не Запущена."
                rm -f /var/run/apcupsd-1500c-3.pid
                echo "$NAME."
                ;;

        restart|force-reload)
                $0 stop
                sleep 10
                $0 start
                ;;

        status)
                $APCACCESS status
                ;;

        *)
                N=/etc/init.d/$NAME
                echo "Использование: $N {start|stop|restart|force-reload}" >&2
                exit 1
                ;;
esac

exit 0
Остановить и Отключить стандартный apcupsd из автозагрузки:
/etc/init.d/apcupsd stop
service apcupsd stop

chkconfig --del apcupsd
chkconfig apcupsd off
или
update-rc.d -f apcupsd remove
или
systemctl disable apcupsd.service

Добавляем apcupsd-2200rm-1 ; apcupsd-2200rm-2 ; apcupsd-1500c-3 в автозагрузку в зависимости от ОС:
chkconfig --add имя службы опцию –-add, чтобы добавить определенную службу в список служб, которые будут запущены при перезагрузке системы. включит уровни 2, 3, 4 и 5,

chkconfig --add apcupsd-2200rm-1
chkconfig --add apcupsd-2200rm-2
chkconfig --add apcupsd-1500c-3
chkconfig apcupsd-2200rm-1 on
chkconfig apcupsd-2200rm-2 on
chkconfig apcupsd-1500c-3 on
или
update-rc.d apcupsd-2200rm-1 defaults
update-rc.d apcupsd-2200rm-2 defaults
update-rc.d apcupsd-1500c-3 defaults
или
systemctl enable apcupsd-2200rm-1.service
systemctl enable apcupsd-2200rm-2.service
systemctl enable apcupsd-1500c-3.service


Запуск\остановка:
/etc/init.d/apcupsd-2200rm-1 start или stop или restart
/etc/init.d/apcupsd-2200rm-2 start или stop или restart
/etc/init.d/apcupsd-1500c-3 start или stop или restart

Код: Выделить всё

service apcupsd-2200rm-1 start
service apcupsd-2200rm-2 start
service apcupsd-1500c-3 start

Код: Выделить всё

ps ax|grep apc
Ответ
1875 ? Ssl 0:02 /sbin/apcupsd -f /etc/apcupsd/apcupsd-2200rm-1.conf
4322 ? Ssl 0:00 /sbin/apcupsd -f /etc/apcupsd/apcupsd-1500c-3.conf
14044 ? Ssl 0:01 /sbin/apcupsd -f /etc/apcupsd/apcupsd-2200rm-2.conf

Веб интерфейс
Правим
/ect/apcupsd/hosts.conf

Код: Выделить всё

# Пример:.
# MONITOR 10.64.1.1 "Финансовый отдел"
# MONITOR 10.78.1.1 "Комната данных средней школы Сьерра №1"
#
#MONITOR 127.0.0.1 "Local Host"
#MONITOR 192.168.175.111 "Local Host IP"
MONITOR 127.0.0.1:3551 "ZABBIX-2200rm-1"
MONITOR 127.0.0.1:3552 "2200rm-2"
MONITOR 127.0.0.1:3553 "1500c-3"
Получаем веб ссылки

Код: Выделить всё

http://192.168.175.111/cgi-bin/apcupsd/multimon.cgi
http://192.168.175.111/cgi-bin/apcupsd/upsstats.cgi?host=127.0.0.1:3551&temp=C
http://192.168.175.111/cgi-bin/apcupsd/upsfstats.cgi?host=127.0.0.1:3551
http://192.168.175.111/cgi-bin/apcupsd/upsstats.cgi?host=127.0.0.1:3552&temp=C
http://192.168.175.111/cgi-bin/apcupsd/upsfstats.cgi?host=127.0.0.1:3552
http://192.168.175.111/cgi-bin/apcupsd/upsstats.cgi?host=127.0.0.1:3553&temp=C
http://192.168.175.111/cgi-bin/apcupsd/upsfstats.cgi?host=127.0.0.1:3553
apcupsd multimon.cgi 3 ИБП.jpg
apcupsd multimon.cgi 3 ИБП.jpg
Шаблоны zabbix (описание шаблона ниже)
Основной шаблон для 1ИБП
Smart-UPS 2200 RM 48вольт
Обновлен триггер разряда по напряжению универсальный
ИБП Apcupsd-LLD.zip
ИБП Apcupsd-LLD.zip
(16.38 КБ) 7 скачиваний
предыдущая версия
ИБП Apcupsd-LLD.zip
ИБП Apcupsd-LLD.zip
(13.67 КБ) 28 скачиваний
Smart-UPS 2200 RM 48вольт
Обновлен триггер разряда по напряжению универсальный
ИБП Apcupsd-LLD-3551-№1.zip
ИБП Apcupsd-LLD-3551-№1.zip
(16.51 КБ) 14 скачиваний
предыдущая версия
ИБП Apcupsd-LLD-3551-№1.zip
ИБП Apcupsd-LLD-3551-№1.zip
(13.78 КБ) 22 скачивания
Smart-UPS 2200 RM 48вольт
Обновлен триггер разряда по напряжению универсальный
ИБП Apcupsd-LLD-3552-№2.zip
ИБП Apcupsd-LLD-3552-№2.zip
(16.52 КБ) 13 скачиваний
предыдущая версия
ИБП Apcupsd-LLD-3552-№2.zip
ИБП Apcupsd-LLD-3552-№2.zip
(13.79 КБ) 23 скачивания
Для Smart-UPS SC1500 24вольт
Обновлен триггер разряда по напряжению универсальный
ИБП Apcupsd-LLD-3553-№3.zip
ИБП Apcupsd-LLD-3553-№3.zip
(16.52 КБ) 14 скачиваний
предыдущая версия
ИБП Apcupsd-LLD-3553-№3.zip
ИБП Apcupsd-LLD-3553-№3.zip
(13.8 КБ) 19 скачиваний
Порт указывается в макросе, Например софт установлен на 172.16.50.50 порт 3551 этот ip и порт указываем в файле конфига, а сама вебка будет например на заббикс что бы не ставить веб сервер php и все остальное на удаленный узел, открываем порт до заббикса 3551
и на заббиксе в файле хост прописываем 172.16.50.50:3551 и получаем ибп в списке.
Шаблон цепляем к удаленному узлу 172.16.50.50 если порт по умолчанию 3551 в макросе он уже прописан, если другой меням в узле на другой порт данный макрос. Веб интерфейс у нас находиться на самом заббиксе поэтому локальный порт в макросе указан 127.0.0.1 для веб проверки. Одну из проверок нужно отключить локальную или удаленную.
в самом узле не забываем указать макросы со своими данными
{$APCUPSAH} 5.8
{$NUMOFAKBAHAPC} 2
{$NUMOFAKBVAPC} 4
{$PORTAPCUPS} 3551
{$WATTSAPCUPS} 2200
Обновлен триггер разряда по напряжению универсальный
ИБП Apcupsd-LLD-PORT.zip
ИБП Apcupsd-LLD-PORT.zip
(16.7 КБ) 13 скачиваний
предыдущая версия
ИБП Apcupsd-LLD-PORT.zip
ИБП Apcupsd-LLD-PORT.zip
(14.1 КБ) 16 скачиваний
ИБП NUT-LLD-PORT.zip
ИБП NUT-LLD-PORT.zip
(25.91 КБ) 5 скачиваний
Расчеты заряда
Показать
Вычислим Заряд АКБ в % по напряжению АКБ
10,5-13,5V - рабочий диапазон
11.82V - 0% заряда
9,5-10V - глубокий разряд

Возьмем за основу
13,5V - 100% заряд
11.82 - 0% заряд
13.5-11.82=1.68:100%=0,0168 для 1% разряда

0,0168V*75%=1,26V для 75% Разряда, получаем 13.5V-1.26V=12.24V для 25% остатка Заряда (12.24V*4акб=48.96V; 12.24V*2акб=24.48V)
0,0168V*50%=0,84V для 50% Разряда, получаем 13.5V-0.84V=12.66V для 50% остатка Заряда (12.66V*4акб=50.64V; 12.66V*2акб=25.32V)
0,0168V*25%=0,42V для 25% Разряда, получаем 13.5V-0.42V=13.08V для 75% остатка Заряда (13.08V*4акб=52.32V; 13.08V*2акб=26.16V)

Для
54V:4АКБ=13.5
27V:2АКБ=13.5
13.5:1АКБ=13.5

Для 54V (на практике: 54.7; 55.1; 55.4; 55.6)
1.26V*4акб=5.04V
54V-5.04V=48.96V

0.84V*4акб=3.36V
54V-3,36V=50.64V

0.42V*4акб=1.68V
54V-1.68V=52.32V

Было
<48.1 для 25% (48,96)
<48.9 and >=48.1 для 50%
<49.7 and >=48.9 для 75%


Для 27V (на практике: 26.8; 27.7; 28)
1.26V*2акб=2.52V
27V-2,52V=24.48V

0.84V*2акб=1.68V
27V-1,68V=25.32V

0.42V*2акб=0.84V
27V-0,84V=26,16V

Было разница -0.5V
<24.1 Для 25%
<24.9 and >=24.1 Для 50%
<25.7 and >=24.9 Для 75%

Триггеры
Высокая Заряд АКБ <25%: {ITEM.LASTVALUE1}{HOST.NAME} {UPS-NUT-lld-PORT:NUT.[{#ID87}].last()}/{$NUMOFAKBVNUT}<=12.24
Средняя Заряд АКБ <50%: {ITEM.LASTVALUE1}{HOST.NAME} {UPS-NUT-lld-PORT:NUT.[{#ID87}].last()}/{$NUMOFAKBVNUT}<=12.66 and {UPS-NUT-lld-PORT:NUT.[{#ID87}].last()}/{$NUMOFAKBVNUT}>=12.25 Да
Информационная Заряд АКБ <75%: {ITEM.LASTVALUE1}{HOST.NAME} {UPS-NUT-lld-PORT:NUT.[{#ID87}].last()}/{$NUMOFAKBVNUT}<=13.08 and {UPS-NUT-lld-PORT:NUT.[{#ID87}].last()}/{$NUMOFAKBVNUT}>=12.67

Предыдущие расчеты
Пример для 4 акб (последовательно)
54.7V:4шт=13.67 (напряжение на контактах при заряде 54~55.4V)
11.82V*4=47.28V это 0% заряда
54.7V-47.28V=7.42V (рабочий диапазон от 0% до 100%)
7.42V:100%=0.0742V это 1%

54:4=13,5 заряжен
11.82V*4=47.28V это 0% заряда
54V-47.28V=6.72V (рабочий диапазон от 0% до 100%)
6.72V:100%=0.0672V это 1%

0.0672V*75%=5.04V для 75% разряда, получаем 54V-5.04V=48.96V для 25% остатка заряда
0.0672V*50%=3.36V для 50% разряда, получаем 54V-3,36V=50.64V для 50% остатка заряда
0.0672V*25%=1.68V для 25% разряда, получаем 54V-1.68V=52,32V для 75% остатка заряда

Триггеры
<48.1 для 25%
<48.9 and >=48.1 для 50%
<49.7 and >=48.9 для 75%


Для 2х АКБ последовательно (1500 UPS)
23.64 =0%
27=100%

27-23.64=3,36:100=0,0336 это 1%

0,0336V*75%=2,52V для 75% разряда, получаем 27V-2,52V=24,48V для 25% остатка заряда
0,0336V*50%=1,68V для 50% разряда, получаем 27V-1,68V=25,32V для 50% остатка заряда
0,0336V*25%=0,84V для 25% разряда, получаем 27V-0,84V=26,16V для 75% остатка заряда

Триггер
<24.1 Для 25%
<24.9 and >=24.1 Для 50%
<25.7 and >=24.9 Для 75
Добавлены триггеры на Флаг состояния.
25.10.2023-ИБП Apcupsd-LLD.zip
25.10.2023-ИБП Apcupsd-LLD.zip
(72.86 КБ) 95 скачиваний
Флаг состояния
Показать
0x05000088 > Замена АКБ
0x05060190 > ON BATTERY REPLACE BATTERY COMM LOST
0x05000100 > COMM LOST

> неизвестно (данные не поступают отключен)
0x05000008 > Онлайн на линии (нормальный рабочий режим)
> в режиме питания от батарей
0x0500000C > на Smart Boost (повышение напряжения)
> своевременный сон / спал по времени
> обход программного обеспечения
> выключен
> на перезагрузке
> переключаемый байпас
> обход аппаратного сбоя
> спать до возвращения силы тока
> на Smart Trim (понижение напряжения)
> экономичный режим
> горячий резерв
> на тесте батареи
> аварийный статический байпас обход
> статический байпасный обход режим ожидания
> режим энергосбережения
> режим Spot пятна
> эконверсия / Преобразование
> точечный/Spot режим зарядного устройства
> инверторный точечный/Spot режим
Заказ ИБП на отключение питания
/etc/apcupsd/apccontrol killpower или чтобы ваша система отключилась (обычно 2 минуты),
используйте параметр --kill-on-powerfail в командной строке apcupsd
apcupsd --killpower или apccontrol killpower
Сначала проверяется, существует ли файл /etc/apcupsd/powerfail, и если он существует, выполняется /etc/apcupsd/apccontrol killpower
к повторному запуску apcupsd с помощью опции --killpower в командной строке, сообщить ИБП о необходимости отключения питания.


180-секундный льготный период перед отключением питания
apcaccess eprom - посмотрите Отсрочку отключения

apctest - это программа, которая позволяет вам напрямую подключаться к вашему ИБП и выполнять определенные низкоуровневые тесты,
настраивать различные параметры, такие как дата установки аккумулятора и поведение аварийного сигнала, а также выполнять калибровку времени работы аккумулятора.
Выключите apcupsd, если он запущен. Это важно. Одновременно с ИБП может взаимодействовать только одна программа, и если apcupsd запущен, apctest не сможет связаться с ИБП.
количество слов: 3015
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 853
Стаж: 5 лет 7 месяцев
Откуда: Вологодская область
Поблагодарили: 37 раз
Контактная информация:

APC ИБП LINUX через APCUPSD

Сообщение Артём Мамзиков »

2 Варианта шаблонов: 1.Обычный, 2. Обнаружением LLD
в 1. нужно деактивировать элементы которых нет в ответе на запрос либо они будут Не поддерживаемые.
в 2. создаются только поддерживаемые но в правиле обнаружения висит ошибка это так и есть.
Шаблон ИБП Apcupsd-LLD
Шаблон ИБП Apcupsd-LLD
На основе Apcupsd
Через apcaccess status

В Узле заполнить макросы
{$PORTAPCUPS} - Порт
{$WATTSAPCUPS} - Указать Ватты (взять из характеристики 1кВт=1000Вт)
{$NUMOFAKBVAPC} - Кол-во АКБ (подключено последовательно увеличение Вольт)
{$NUMOFAKBAHAPC} - Кол-во АКБ (подключено параллельно увеличение Ач)
{$APCUPSAH} - Ач ампер-час (для 1 АКБ если последовательно)
{$APCUPSKPD} - КПД ИБП (0.92)
Не используются
{$LOGINAPCUPS} - Логин
{$PASSAPCUPS} - Пароль

Пример для APC-Smart-UPS-2200 (8акб 5.8Ач 12В)
{$APCUPSAH} 5.8
{$NUMOFAKBAHAPC} 2
{$NUMOFAKBVAPC} 4
{$WATTSAPCUPS} 2200

Веб интерфейс состояния ИБП (после установки apcupsd-cgi)
http://{HOST.CONN}/cgi-bin/apcupsd/multimon.cgi
http://{HOST.CONN}/cgi-bin/apcupsd/upsstats.cgi
http://{HOST.CONN}/cgi-bin/apcupsd/upsfstats.cgi

Группы
Статистика ИБП
ИБП Основные данные
ИБП Инфо о Apcupsd
ИБП Инвентаризационные данные
ИБП-Состояние

Основной элемент данных Запрос состояния (3 варианта)
Через Заббикс агент
Состояние ИБП №1 Триггеры 1 system.run["apcaccess status 127.0.0.1:3551"] 1m 90d Zabbix агент ИБП-Состояние, ИБП Основные данные Активировано
Состояние ИБП №1
Состояние ИБП №1
Через HTTP агента
Состояние ИБП №2 по HTTP upsfstats.cgi 1m 90d HTTP агент ИБП-Состояние, ИБП Основные данные Деактивировано
Состояние ИБП №2
Состояние ИБП №2
пред обработка обрезает лишнее и выводит строками
Через SSH
Состояние ИБП №3 по SSH ssh.run["apcaccess status 127.0.0.1:3551"] 1m 0d SSH агент ИБП-Состояние Деактивировано
Состояние ИБП №3 по SSH
Состояние ИБП №3 по SSH
Элементы данных
Состояние ИБП №1: Проверка На пустое значение Триггеры 1 apcaccess.status.linefreqp 90d 90d Зависимый элемент данных ИБП-Состояние Активировано

Процесс Apcupsd Триггеры 1 proc.num[apcupsd] 4m 90d 90d Zabbix агент ИБП-Состояние Активировано

Вычисляемые элементы данных
Емкость Ач (Ah) обратный подсчет (Примерно) Вычисляемое ups.capacity.ah 5m 90d 90d Вычисляемое ИБП-Состояние Активировано

Нагрузка Ампер Вычисляемое ups.ampers 5m 90d 90d Вычисляемое ИБП-Состояние Активировано

Заряд АКБ Вычисляемый % ups.battery.charge.percentage 5m 90d 90d Вычисляемое ИБП-Состояние, ИБП Основные данные Активировано

Емкость Ач (Ah) обратный подсчет (Примерно более 9-10часв) Вычисляемый ups.capacity 5m 90d 90d Вычисляемое ИБП-Состояние Активировано

Примерное время работы от АКБ Вычисляемое Триггеры 3 ups.working.time.from.battery 5m 90d 90d Вычисляемое ИБП-Состояние Активировано

Нагрузка Вт Вычисляемое ups.watts 5m 90d 90d Вычисляемое ИБП-Состояние Активировано

Подробнее про вычисления можно посмотреть Мониторинг ИБП на основе UPS Assistant расчеты аналогичны.
ИБП Apcupsd-LLD Элементы данных
ИБП Apcupsd-LLD Элементы данных
Триггеры

Высокая UPS Недоступно {HOST.NAME}
Зависит от:
ИБП Apcupsd-LLD: Нет процесса UPS Apcupsd не запущен
{UPS-Apcupsd-lld:system.run["apcaccess status 127.0.0.1:3551"].iregexp(no-data-ups)}=1 or {UPS-Apcupsd-lld:system.run["apcaccess status 127.0.0.1:3551"].nodata(25m)}=1 or {UPS-Apcupsd-lld:web.test.error[Проверка Web apcupsd].strlen()}>0 and {UPS-Apcupsd-lld:web.test.fail[Проверка Web apcupsd].min(11m)}>0 Активировано apcupsd

Высокая UPS Нет Значений {HOST.NAME}
Зависит от:
ИБП Apcupsd-LLD: UPS Недоступно {HOST.NAME}
ИБП Apcupsd-LLD: Нет процесса UPS Apcupsd не запущен
{UPS-Apcupsd-lld:apcaccess.status.linefreqp.last()}=0001 Активировано

Информационная Время работы АКБ менее 5 мин на {HOST.NAME}
Зависит от:
ИБП Apcupsd-LLD: UPS Нет Значений {HOST.NAME}
ИБП Apcupsd-LLD: Нет процесса UPS Apcupsd не запущен
{UPS-Apcupsd-lld:ups.working.time.from.battery.last()}<=0.05 Активировано

Информационная Время работы АКБ менее 11 мин на {HOST.NAME}
Зависит от:
ИБП Apcupsd-LLD: Время работы АКБ менее 5 мин на {HOST.NAME}
{UPS-Apcupsd-lld:ups.working.time.from.battery.last()}<=0.10 and {UPS-Apcupsd-lld:ups.working.time.from.battery.last()}>0.05 Активировано

Информационная Время работы АКБ менее 15 мин на {HOST.NAME}
Зависит от:
ИБП Apcupsd-LLD: Время работы АКБ менее 11 мин на {HOST.NAME}
{UPS-Apcupsd-lld:ups.working.time.from.battery.last()}<0.15 and {UPS-Apcupsd-lld:ups.working.time.from.battery.last()}>0.10 Активировано

Внимание/Предупреждение Нет процесса UPS Apcupsd не запущен {UPS-Apcupsd-lld:proc.num[apcupsd].last()}<>1 or {UPS-Apcupsd-lld:proc.num[apcupsd].nodata(11m)}=1 Активировано apcupsd
ИБП Apcupsd-LLD Триггеры
ИБП Apcupsd-LLD Триггеры
Графики
Текущая Нагрузка Вт 900 200 Нормальный
Текущая Нагрузка Ампер 900 200 Нормальный

Правила обнаружения
Обнаружение данных ИБП APC №1 Прототипы элементов данных 63 Прототипы триггеров 16 Прототипы графиков 9 Прототипы узлов сети apcupsd-lld.sh[{HOST.CONN},{$HOST.PORTS},127.0.0.1,3551,discoveryapc] 4h Внешняя проверка Активировано

Веб-сценарии
Проверка Web apcupsd 1 5m 3 Нет Нет ИБП-Состояние Активировано
ИБП Apcupsd-LLD графики правила обнаружения Веб сценарии
ИБП Apcupsd-LLD графики правила обнаружения Веб сценарии
Прототипы элементов данных 63
Зависимые прототипы элементов данных

Состояние ИБП №1: APC версия формата данных, число записей, длина данных в байтах apcaccess.status.[{#ID1}] 90d Зависимый элемент данных ИБП-Состояние, ИБП Инфо о Apcupsd Да

Состояние ИБП №1: Дата производства ИБП apcaccess.status.[{#ID48}] 90d Зависимый элемент данных ИБП-Состояние, ИБП Инвентаризационные данные Да

Состояние ИБП №1: Кол-во переходов на питание от батареи с момента запуска APCUPSd. apcaccess.status.[{#ID35}] 90d 90d Зависимый элемент данных ИБП-Состояние, Статистика ИБП Да

Состояние ИБП №1: Дата, время последней работы от батареи apcaccess.status.[{#ID36}] 90d Зависимый элемент данных ИБП-Состояние, Статистика ИБП Да

Состояние ИБП №1: Текущее время работы от батарей apcaccess.status.[{#ID37}] 90d 90d Зависимый элемент данных ИБП-Состояние, ИБП Основные данные Да

Состояние ИБП №1: Общее (суммарное) время работы от батарей (в секундах) с времени запуска APCUPSd apcaccess.status.[{#ID38}] 90d 90d Зависимый элемент данных ИБП-Состояние, ИБП Основные данные, Статистика ИБП Да

Состояние ИБП №1: Дата, время последнего перехода с батарей apcaccess.status.[{#ID39}] 90d Зависимый элемент данных ИБП-Состояние, Статистика ИБП Да

Состояние ИБП №1: Результат самотестирования ИБП apcaccess.status.[{#ID40}] 90d Зависимый элемент данных ИБП-Состояние, ИБП Основные данные Да

Состояние ИБП №1: Интервал в часах между выполнением самотестирования. apcaccess.status.[{#ID41}] 90d Зависимый элемент данных ИБП-Состояние, ИБП Инфо о Apcupsd, Статистика ИБП Да

Состояние ИБП №1: Время последнего самотестирования. apcaccess.status.[{#ID42}] 90d Зависимый элемент данных ИБП-Состояние, Статистика ИБП Да

Состояние ИБП №1: Флаг состояния. apcaccess.status.[{#ID43}] 90d Зависимый элемент данных ИБП-Состояние, ИБП Основные данные Да

Состояние ИБП №1: Текущие настройки переключателей ИБП (dip switch) apcaccess.status.[{#ID44}] 90d Зависимый элемент данных ИБП-Состояние, ИБП Инфо о Apcupsd Да

Состояние ИБП №1: Значение регистра неисправностей ИБП 1. apcaccess.status.[{#ID45}] 90d Зависимый элемент данных ИБП-Состояние, ИБП Основные данные Да

Состояние ИБП №1: Значение регистра неисправностей ИБП 2. apcaccess.status.[{#ID46}] 90d Зависимый элемент данных ИБП-Состояние, ИБП Основные данные Да

Состояние ИБП №1: Значение регистра неисправностей ИБП 3. apcaccess.status.[{#ID47}] 90d Зависимый элемент данных ИБП-Состояние, ИБП Основные данные Да

Состояние ИБП №1: Серийный номер ИБП apcaccess.status.[{#ID49}] 90d Зависимый элемент данных ИБП-Состояние, ИБП Инвентаризационные данные Да

Состояние ИБП №1: Частота на Входе Гц apcaccess.status.[{#ID33}] 90d 90d Зависимый элемент данных ИБП-Состояние, ИБП Основные данные Да

Состояние ИБП №1: Дата последней замены батарей apcaccess.status.[{#ID50}] 90d Зависимый элемент данных ИБП-Состояние, ИБП Инвентаризационные данные, Статистика ИБП Да

Состояние ИБП №1: Цель Выходного Напряжение при АКБ apcaccess.status.[{#ID51}] 90d 90d Зависимый элемент данных ИБП-Состояние, ИБП Инфо о Apcupsd Да

Состояние ИБП №1: Нормальное напряжение батарей apcaccess.status.[{#ID52}] 90d 90d Зависимый элемент данных ИБП-Состояние, ИБП Основные данные Да

Состояние ИБП №1: Количество внешних батарейных модулей. apcaccess.status.[{#ID53}] 90d 90d Зависимый элемент данных ИБП-Состояние, ИБП Инвентаризационные данные Да

Состояние ИБП №1: Количество неисправных внешних батарейных модулей apcaccess.status.[{#ID54}] 90d 90d Зависимый элемент данных ИБП-Состояние, ИБП Инвентаризационные данные, ИБП Основные данные Да

Состояние ИБП №1: Версия микропрограммы ИБП apcaccess.status.[{#ID55}] 90d Зависимый элемент данных ИБП-Состояние, ИБП Инвентаризационные данные Да

Состояние ИБП №1: Старый идентификатор кода модели APC. apcaccess.status.[{#ID56}] 90d Зависимый элемент данных ИБП-Состояние, ИБП Инвентаризационные данные Да

Состояние ИБП №1: Входное напряжение, на которое рассчитан ИБП. apcaccess.status.[{#ID57}] 90d 90d Зависимый элемент данных ИБП-Состояние, ИБП Инвентаризационные данные, Статистика ИБП Да

Состояние ИБП №1: Максимальная мощность в ваттах, на которую рассчитан ИБП. apcaccess.status.[{#ID58}] 90d 90d Зависимый элемент данных ИБП-Состояние, ИБП Инвентаризационные данные, Статистика ИБП Да

Состояние ИБП №1: Температура снаружи ИБП apcaccess.status.[{#ID59}] 90d 90d Зависимый элемент данных ИБП-Состояние, ИБП Основные данные Да

Состояние ИБП №1: Влажность воздуха, измеренная ИБП. apcaccess.status.[{#ID60}] 90d 90d Зависимый элемент данных ИБП-Состояние, ИБП Основные данные Да

Состояние ИБП №1: Состояние напряжения входной линии. apcaccess.status.[{#ID61}] 90d 90d Зависимый элемент данных ИБП-Состояние, ИБП Основные данные Да

Состояние ИБП №1: Состояние батарей apcaccess.status.[{#ID62}] 90d Зависимый элемент данных ИБП-Состояние, ИБП Основные данные Да

Состояние ИБП №1: Причина последнего перехода на работу от батарей. apcaccess.status.[{#ID34}] 90d Зависимый элемент данных ИБП-Состояние, Статистика ИБП Да

Состояние ИБП №1: Напряжение АКБ apcaccess.status.[{#ID32}] 90d 90d Зависимый элемент данных ИБП-Состояние, ИБП Основные данные Да

Состояние ИБП №1: Дата, время получения данных с ИБП apcaccess.status.[{#ID2}] 90d Зависимый элемент данных ИБП-Состояние, ИБП Инфо о Apcupsd Да

Состояние ИБП №1: Оставшееся время работы от батареи по оценке ИБП. apcaccess.status.[{#ID16}] 90d 90d Зависимый элемент данных ИБП-Состояние, ИБП Основные данные Да

Состояние ИБП №1: Имя хоста к которому подключён ИБП apcaccess.status.[{#ID3}] 90d Зависимый элемент данных ИБП-Состояние, ИБП Инвентаризационные данные Да

Состояние ИБП №1: Имя ИБП apcaccess.status.[{#ID4}] 90d Зависимый элемент данных ИБП-Состояние, ИБП Инвентаризационные данные Да

Состояние ИБП №1: Версия apcupsd apcaccess.status.[{#ID5}] 90d Зависимый элемент данных ИБП-Состояние, ИБП Инфо о Apcupsd Да

Состояние ИБП №1: Тип кабеля указанный в настройках apcaccess.status.[{#ID6}] 90d Зависимый элемент данных ИБП-Состояние, ИБП Инвентаризационные данные Да

Состояние ИБП №1: Название драйвера apcupsd apcaccess.status.[{#ID7}] 90d Зависимый элемент данных ИБП-Состояние, ИБП Инфо о Apcupsd Да

Состояние ИБП №1: Модель ИБП apcaccess.status.[{#ID8}] 90d Зависимый элемент данных ИБП-Состояние, ИБП Инвентаризационные данные Да

Состояние ИБП №1: Режим работы apcupsd заданный в поле UPSMODE apcaccess.status.[{#ID9}] 90d Зависимый элемент данных ИБП-Состояние, ИБП Инфо о Apcupsd Да

Состояние ИБП №1: Дата, время запуска apcupsd apcaccess.status.[{#ID10}] 90d Зависимый элемент данных ИБП-Состояние, ИБП Инфо о Apcupsd Да

Состояние ИБП №1: Текущее состояние (статус) ИБП apcaccess.status.[{#ID11}] 90d Зависимый элемент данных ИБП-Состояние, ИБП Основные данные Да

Состояние ИБП №1: Мастер UPD apcaccess.status.[{#ID12}] 90d Зависимый элемент данных ИБП-Состояние, ИБП Инфо о Apcupsd Да

Состояние ИБП №1: Входящее Напряжение apcaccess.status.[{#ID13}] 90d 90d Зависимый элемент данных ИБП-Состояние, ИБП Основные данные Да

Состояние ИБП №1: Нагрузка ИБП % apcaccess.status.[{#ID14}] 90d 90d Зависимый элемент данных ИБП-Состояние, ИБП Основные данные Да

Состояние ИБП №1: Уровень заряда батареи % apcaccess.status.[{#ID15}] 90d 90d Зависимый элемент данных ИБП-Состояние, ИБП Основные данные Да

Состояние ИБП №1: Заряд ниже % выключение apcaccess.status.[{#ID17}] 90d 90d Зависимый элемент данных ИБП-Состояние, ИБП Основные данные Да

Состояние ИБП №1: Задержка перед выдачей сигнала тревоги apcaccess.status.[{#ID31}] 90d 90d Зависимый элемент данных ИБП-Состояние, ИБП Инфо о Apcupsd Да

Состояние ИБП №1: Минимальное время работы от батарей перед выключением apcaccess.status.[{#ID18}] 90d 90d Зависимый элемент данных ИБП-Состояние, ИБП Инфо о Apcupsd Да

Состояние ИБП №1: Максимальное время работы от батарей перед выключением apcaccess.status.[{#ID19}] 90d 90d Зависимый элемент данных ИБП-Состояние, ИБП Инфо о Apcupsd, Статистика ИБП Да

Состояние ИБП №1: Максимальное Напряжение с момента запуска apcaccess.status.[{#ID20}] 90d 90d Зависимый элемент данных ИБП-Состояние, Статистика ИБП Да

Состояние ИБП №1: Минимальное Напряжение с момента запуска apcaccess.status.[{#ID21}] 90d 90d Зависимый элемент данных ИБП-Состояние, Статистика ИБП Да

Состояние ИБП №1: Выходное Напряжение apcaccess.status.[{#ID22}] 90d 90d Зависимый элемент данных ИБП-Состояние, ИБП Основные данные Да

Состояние ИБП №1: Уровень чувствительности ИБП чувствительность UPS к изменениям входного напряжения apcaccess.status.[{#ID23}] 90d Зависимый элемент данных ИБП-Состояние, ИБП Основные данные Да

Состояние ИБП №1: Время ожидания после возобновления питания до включения нагрузки. apcaccess.status.[{#ID24}] 90d 90d Зависимый элемент данных ИБП-Состояние, ИБП Основные данные Да

Состояние ИБП №1: Задержка после получения ИБП команды на выключение перед отключением нагрузки. apcaccess.status.[{#ID25}] 90d 90d Зависимый элемент данных ИБП-Состояние, ИБП Основные данные Да

Состояние ИБП №1: Отправка сигнала низкого заряда, немедленное аварийное отключение apcaccess.status.[{#ID26}] 90d 90d Зависимый элемент данных ИБП-Состояние, ИБП Основные данные Да

Состояние ИБП №1: AVR -переход на батареи (низкое входное напряжение) apcaccess.status.[{#ID27}] 90d 90d Зависимый элемент данных ИБП-Состояние, ИБП Инфо о Apcupsd, ИБП Основные данные Да

Состояние ИБП №1: AVR -переход на батареи (высокое входное напряжение) apcaccess.status.[{#ID28}] 90d 90d Зависимый элемент данных ИБП-Состояние, ИБП Инфо о Apcupsd, ИБП Основные данные Да

Состояние ИБП №1: Минимальный уровень (%) зарядка батареи до включения нагрузки. apcaccess.status.[{#ID29}] 90d 90d Зависимый элемент данных ИБП-Состояние, ИБП Инфо о Apcupsd, ИБП Основные данные Да

Состояние ИБП №1: Температура ИБП apcaccess.status.[{#ID30}] 90d 90d Зависимый элемент данных ИБП-Состояние, ИБП Основные данные Да

Состояние ИБП №1: Дата, время когда данные полученные с ИБП были записаны в файл apcaccess.status.[{#ID63}] 90d Зависимый элемент данных ИБП-Состояние, ИБП Инфо о Apcupsd, ИБП Основные данные, Статистика ИБП Да
ИБП Apcupsd-LLD Прототипы элемента данных
ИБП Apcupsd-LLD Прототипы элемента данных

Прототипы триггеров 16
Высокая BatteryCharge<25%: {ITEM.LASTVALUE1}{HOST.NAME} {UPS-Apcupsd-lld:apcaccess.status.[{#ID32}].last()}<48.1 Да

Информационная BatteryCharge<50%: {ITEM.LASTVALUE1}{HOST.NAME} {UPS-Apcupsd-lld:apcaccess.status.[{#ID32}].last()}<48.9 and {UPS-Apcupsd-lld:apcaccess.status.[{#ID32}].last()}>=48.1 Да

Информационная BatteryCharge<75%: {ITEM.LASTVALUE1}{HOST.NAME} {UPS-Apcupsd-lld:apcaccess.status.[{#ID32}].last()}<49.7 and {UPS-Apcupsd-lld:apcaccess.status.[{#ID32}].last()}>=48.9 Да

Информационная Версия apcupsd изменена {UPS-Apcupsd-lld:apcaccess.status.[{#ID5}].diff(0)}>0 Да

Информационная Версия микропрограммы ИБП изменена {UPS-Apcupsd-lld:apcaccess.status.[{#ID55}].diff(0)}>0 Да

Информационная Входная частота не 50Гц {UPS-Apcupsd-lld:apcaccess.status.[{#ID33}].last()}<49 or {UPS-Apcupsd-lld:apcaccess.status.[{#ID33}].last()}>51 Да

Информационная Входящее напряжение более 250В {HOST.NAME} {UPS-Apcupsd-lld:apcaccess.status.[{#ID13}].last()}>250 Да

Информационная Входящее напряжение менее 196В {HOST.NAME} {UPS-Apcupsd-lld:apcaccess.status.[{#ID13}].last()}<196 Да

Информационная Выходное напряжение более 247В {HOST.NAME} {UPS-Apcupsd-lld:apcaccess.status.[{#ID22}].last()}>247 Да

Информационная Дата последней замены батарей Изменена {UPS-Apcupsd-lld:apcaccess.status.[{#ID50}].diff(0)}>0 Да

Высокая Заряд АКБ <25%: {ITEM.LASTVALUE1}{HOST.NAME} {UPS-Apcupsd-lld:apcaccess.status.[{#ID15}].last()}<25 Да

Средняя Заряд АКБ <50%: {ITEM.LASTVALUE1}{HOST.NAME} {UPS-Apcupsd-lld:apcaccess.status.[{#ID15}].last()}<50 and {UPS-Apcupsd-lld:apcaccess.status.[{#ID15}].last()}>25 Да

Информационная Заряд АКБ <75%: {ITEM.LASTVALUE1}{HOST.NAME} {UPS-Apcupsd-lld:apcaccess.status.[{#ID15}].last()}<75 and {UPS-Apcupsd-lld:apcaccess.status.[{#ID15}].last()}>50 Да

Информационная Нагрузка выхода>90% {HOST.NAME}
Зависит от:
ИБП Apcupsd-LLD: Нагрузка выхода>95% {HOST.NAME}
{UPS-Apcupsd-lld:apcaccess.status.[{#ID14}].last()}>90 Да

Информационная Нагрузка выхода>95% {HOST.NAME} {UPS-Apcupsd-lld:apcaccess.status.[{#ID14}].last()}>95 Да

Чрезвычайная Аварийная Температура батареи={ITEM.VALUE} на {HOST.NAME} {UPS-Apcupsd-lld:apcaccess.status.[{#ID30}].last()}>40 Да
ИБП Apcupsd-LLD Прототипы триггеров
ИБП Apcupsd-LLD Прототипы триггеров
Прототипы графиков 9
{#ATRUPS} Частота на Входе Гц 900 200 Нормальный
{#ATRUPS} Уровень заряда батареи % 900 200 Нормальный
{#ATRUPS} Температура снаружи ИБП 900 200 Нормальный
{#ATRUPS} Температура ИБП 900 200 Нормальный
{#ATRUPS} Состояние напряжения входной линии 900 200 Нормальный
{#ATRUPS} Напряжение АКБ 900 200 Нормальный
{#ATRUPS} Нагрузка ИБП % 900 200 Нормальный
{#ATRUPS} Выходное Напряжение 900 200 Нормальный
{#ATRUPS} Входящее Напряжение 900 200 Нормальный
ИБП Apcupsd-LLD Прототипы графиков
ИБП Apcupsd-LLD Прототипы графиков
Пришлось сделать на каждый элемент свой график иначе они не создаются.

Пример последних данных по ибп
ИБП Apcupsd-LLD Последние данные
ИБП Apcupsd-LLD Последние данные
количество слов: 1053
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 853
Стаж: 5 лет 7 месяцев
Откуда: Вологодская область
Поблагодарили: 37 раз
Контактная информация:

APC ИБП LINUX через APCUPSD

Сообщение Артём Мамзиков »

Скрипт apcupsd-lld.sh

Код: Выделить всё

#!/bin/bash
# 2022.09.07 Артём Андреевич Мамзиков
# URL https://diyit.ru/viewtopic.php
# Скрипт мониторинга ИБП/UPS APC с LLD для Zabbix

# Авто обнаружение ИБП

# Объявим входные переменные(variable) и если входная переменная пустая задаем дефолтные настройки для некоторых переменных
IP=$1
PORT=${2:-10050}
IPAPC=${3:-127.0.0.1}
PORTAPC=${4:-3551}
BLOCSCRIPT=$5

IFS=$'\n'
# (IFS оболочка считает, что пробел является границей слов делает пробелы между слов $* - отбрасывает символы и границы слов \n – это escape-последовательность для новой строки (переводится в новую строку)

if [[ $BLOCSCRIPT = "discoveryapc" ]]; then
# Запускаем команду: apcaccess status 127.0.0.1:3551
get=`zabbix_get -s $IP -p $PORT -k system.run["apcaccess status $IPAPC:$PORTAPC"]|sed 's|:.*||'|sed 's| *$||'`
# Разберем построчно циклом
for atrapc in $get ; do
# Верхний регистр для макроса lld
atrapcup=$(echo $atrapc|tr [:lower:] [:upper:])
# Разбираем по элементам
case $atrapcup in
		APC)
		NUM="1"
		;;
		DATE)
		NUM="2"
		;;
		HOSTNAME)
		NUM="3"
		;;
		UPSNAME)
		NUM="4"
		;;
		VERSION)
        NUM="5"
        ;;
        CABLE)
        NUM="6"
        ;;
        DRIVER)
        NUM="7"
        ;;
        MODEL)
        NUM="8"
        ;;
        UPSMODE)
        NUM="9"
        ;;
        STARTTIME)
        NUM="10"
        ;;
        STATUS)
        NUM="11"
        ;;
        MASTERUPD)
        NUM="12"
        ;;
        LINEV)
        NUM="13"
        ;;
        LOADPCT)
        NUM="14"
        ;;
        BCHARGE)
        NUM="15"
        ;;
        TIMELEFT)
        NUM="16"
        ;;
        MBATTCHG)
        NUM="17"
        ;;
        MINTIMEL)
        NUM="18"
        ;;
        MAXTIME)
        NUM="19"
        ;;
        MAXLINEV)
        NUM="20"
        ;;
        MINLINEV)
        NUM="21"
        ;;
        OUTPUTV)
        NUM="22"
        ;;
        SENSE)
        NUM="23"
        ;;
        DWAKE)
        NUM="24"
        ;;
        DSHUTD)
        NUM="25"
        ;;
        DLOWBATT)
        NUM="26"
        ;;
        LOTRANS)
        NUM="27"
        ;;
        HITRANS)
        NUM="28"
        ;;
        RETPCT)
        NUM="29"
        ;;
        ITEMP)
        NUM="30"
        ;;
        ALARMDEL)
        NUM="31"
        ;;
        BATTV)
        NUM="32"
        ;;
        LINEFREQ)
        NUM="33"
        ;;
        LASTXFER)
        NUM="34"
        ;;
        NUMXFERS)
        NUM="35"
        ;;
        XONBATT)
        NUM="36"
        ;;
        TONBATT)
        NUM="37"
        ;;
        CUMONBATT)
        NUM="38"
        ;;
        XOFFBATT)
        NUM="39"
        ;;
        SELFTEST)
        NUM="40"
        ;;
        STESTI)
        NUM="41"
        ;;
        LASTSTEST)
        NUM="42"
        ;;
        STATFLAG)
        NUM="43"
        ;;
        DIPSW)
        NUM="44"
        ;;
        REG1)
        NUM="45"
        ;;
        REG2)
        NUM="46"
        ;;
        REG3)
        NUM="47"
        ;;
        MANDATE)
        NUM="48"
        ;;
        SERIALNO)
        NUM="49"
        ;;
        BATTDATE)
        NUM="50"
        ;;
        NOMOUTV)
        NUM="51"
        ;;
        NOMBATTV)
        NUM="52"
        ;;
        EXTBATTS)
        NUM="53"
        ;;
        BADBATTS)
        NUM="54"
        ;;
        FIRMWARE)
        NUM="55"
        ;;
        APCMODEL)
        NUM="56"
        ;;
        NOMINV)
        NUM="57"
        ;;
        NOMPOWER)
        NUM="58"
        ;;
        AMBTEMP)
        NUM="59"
        ;;
        HUMIDITY)
        NUM="60"
        ;;
        LINEFAIL)
        NUM="61"
        ;;
        BATTSTAT)
        NUM="62"
        ;;
        "END APC")
        NUM="63"
        ;;
        #)
        #NUM="64"
        #;;
esac
	APCITEM=$APCITEM"$SEP\n{\"{#ID$NUM}\":\"$NUM:$atrapcup\", \"{#ATRUPS}\":\"$atrapcup\"}"
	SEP=", "
	NUM=""
done
echo -e "["$APCITEM"\n]"
fi

if [[ $BLOCSCRIPT = "info" ]]; then
# Запускаем команду: apcaccess status 127.0.0.1:3551
getapc=`zabbix_get -s $IP -p $PORT -k system.run["apcaccess status $IPAPC:$PORTAPC"]`
echo "${getapc}"
fi

Обычный шаблон и LLD
Так как тут все возможные элементы под конкретную ибп часть получаем не поддерживаемые (нужно деактивировать)
ИБП Apcupsd Обычный шаблон
ИБП Apcupsd Обычный шаблон
Обнаружением создаются только рабочие элементы для данной ибп
ИБП Apcupsd LLD шаблон
ИБП Apcupsd LLD шаблон

Шаблон взятый с Мозаика системного администрирования APCUPSd
Он же на share.zabbix
Работает через пользовательские UserParameter параметры заббикс агента, используются только основные данные

Linux

Код: Выделить всё

nano /etc/zabbix/zabbix_agentd.conf.d/userparameter_apcupsd.conf
UserParameter=UPSNAME,cat /var/log/apcupsd.status|awk '/^(UPSNAME).*:/ {print $3}'
UserParameter=STATUS,cat /var/log/apcupsd.status|awk '/^(STATUS).*:/ {print $3,$4,$5}'
UserParameter=ITEMP,cat /var/log/apcupsd.status|awk '/^(ITEMP).*:/ {print $3}'
UserParameter=LOADPCT,cat /var/log/apcupsd.status|awk '/^(LOADPCT).*:/ {print $3}'
UserParameter=NUMXFERS,cat /var/log/apcupsd.status|awk '/^(NUMXFERS).*:/ {print $3}'
UserParameter=BCHARGE,cat /var/log/apcupsd.status|awk '/^(BCHARGE).*:/ {print $3}'
UserParameter=SENSE,cat /var/log/apcupsd.status|awk '/^(SENSE).*:/ {print $3}'
UserParameter=LINEV,cat /var/log/apcupsd.status|awk '/^(LINEV).*:/ {print $3}'

Windows с использованием Gawk
c:\zabbix\conf\userparameter_apcupsd.win.conf

UserParameter=UPSNAME,type c:\apcupsd\etc\apcupsd\apcupsd.status|c:\programs\bin\awk "/^(UPSNAME).*:/ {print $3}"
UserParameter=STATUS,type c:\apcupsd\etc\apcupsd\apcupsd.status|c:\programs\bin\awk "/^(STATUS).*:/ {print $3,$4,$5}"
UserParameter=ITEMP,type c:\apcupsd\etc\apcupsd\apcupsd.status|c:\programs\bin\awk "/^(ITEMP).*:/ {print $3}"
UserParameter=LOADPCT,type c:\apcupsd\etc\apcupsd\apcupsd.status|c:\programs\bin\awk "/^(LOADPCT).*:/ {print $3}"
UserParameter=NUMXFERS,type c:\apcupsd\etc\apcupsd\apcupsd.status|c:\programs\bin\awk "/^(NUMXFERS).*:/ {print $3}"
UserParameter=BCHARGE,type c:\apcupsd\etc\apcupsd\apcupsd.status|c:\programs\bin\awk "/^(BCHARGE).*:/ {print $3}"
UserParameter=SENSE,type c:\apcupsd\etc\apcupsd\apcupsd.status|c:\programs\bin\awk "/^(SENSE).*:/ {print $3}"
UserParameter=LINEV,type c:\apcupsd\etc\apcupsd\apcupsd.status|c:\programs\bin\awk "/^(LINEV).*:/ {print $3}"

Сам шаблон
template_apcupsd.zip
template_apcupsd.zip
(1.79 КБ) 24 скачивания
Оставлю тут еще скрипт сбора данных из лога

Код: Выделить всё

#!/bin/bash

case $1 in
	"date")  tail -n1 /opt/APC/PowerChuteBusinessEdition/Agent/DataLog | cut -d$'\t' -f1;;
	"linevoltage")  tail -n1 /opt/APC/PowerChuteBusinessEdition/Agent/DataLog | cut -d$'\t' -f4;;
	"outputvoltage")  tail -n1 /opt/APC/PowerChuteBusinessEdition/Agent/DataLog | cut -d$'\t' -f5;;
	"batteryvoltage")  tail -n1 /opt/APC/PowerChuteBusinessEdition/Agent/DataLog | cut -d$'\t' -f6;;
	"outputfreq")  tail -n1 /opt/APC/PowerChuteBusinessEdition/Agent/DataLog | cut -d$'\t' -f7;;
	"load")  tail -n1 /opt/APC/PowerChuteBusinessEdition/Agent/DataLog | cut -d$'\t' -f8;;
	"internaltemp")  tail -n1 /opt/APC/PowerChuteBusinessEdition/Agent/DataLog | cut -d$'\t' -f9;;
	"frequency")  tail -n1 /opt/APC/PowerChuteBusinessEdition/Agent/DataLog | cut -d$'\t' -f14;;
	"batterycapacity")  tail -n1 /opt/APC/PowerChuteBusinessEdition/Agent/DataLog | cut -d$'\t' -f15;;
*) echo "ZBX_UNSUPPORTED";;
esac
количество слов: 697
Ответить Вложения 32 Пред. темаСлед. тема

Вернуться в «Питание: Измерение распределение блоки питания; ИБП»