Перейти к публикации
iT4iT.CLUB
Kitsum

Источники бесперебойного питания APC (American Power Conversion)

Рекомендованные сообщения

Речь пойдет о мониторинге источников бесперебойного питания, в моём случае SMART-UPS 5000 RM, по протоколу SNMP. Версия Zabbix 2.4. Использовать Ethernet для этих целей очень выгодно т.к это избавляет от лишнего звена в виде компьютера подключенного по COM или USB, но ИБП должен быть укомплектован сетевой платой Apc Network Management Card (NMC).

У меня все прекрасно заработало на ИБП: SMART-UPS 1000\1500\5000\8000. Уверен, что все получится и с другими моделями.

Скрытый текст

DSC_0001.thumb.jpg.c086a4a76249c92ff3194DSC_0003.thumb.jpg.19217de27e9a1fcade4a8

Доступное мне оборудование использует NMC: AP9617, AP9619, AP9631.

Скрытый текст

DSC_0324.thumb.jpg.b95ce597245a900bb95c3

DSC_0325.thumb.jpg.509b5f354e8ad4fdfe876

DSC_0326.thumb.jpg.7300b52ebad1aa06c6084 

И так, к делу.
Первоначально необходимо произвести сброс настроек NMC.
На лицевой стороне NMC есть еле заметное отверстие с красующейся надписью Reset. Ковырять там, разогнутой скрепкой, можно на работающем устройстве.

Я использовал два вида кабелей

  1. COM to COM - ID 940-1524D
  2. USB to COM - ID 940-0272A

Для подключения можно использовать как специализированный софт, так и обычный терминал. Я использовал PuTTY, что и Вам советую. Со скоростью поэкспериментируйте (у меня диалог с железкой завязался на 2400).

После подключения жмем Enter и появляется запрос на авторизацию. По умолчанию логин и пароль: apc
Настройка реализована в виде диалога с вариантами ответа как в дешевой квест-рпг игре.

Пример начального квеста:

Скрытый текст

User Name : apc
Password  : ***


American Power Conversion               Network Management Card AOS      v2.1.0
(c) Copyright 2002 All Rights Reserved  Smart-UPS & Matrix-UPS APP       v2.1.0
-------------------------------------------------------------------------------
Name      : Unknown                                   Date : 01/02/2011
Contact   : Unknown                                   Time : 01:07:35
Location  : Unknown                                   User : Administrator
Up Time   : 101 Days 15 Hours 12 Minutes              Stat : P+ N- A+

Smart-UPS 5000 RM named UPS_IDEN : On Line

------- Control Console -------------------------------------------------------

     1- Device Manager
     2- Network
     3- System
     4- Logout

     <ESC>- Main Menu, <ENTER>- Refresh, <CTRL-L>- Event Log
> 2

------- Network ---------------------------------------------------------------

     1- TCP/IP
     2- DNS
     3- Ping Utility
     4- FTP Server
     5- Telnet/SSH
     6- Web/SSL/TLS
     7- WAP
     8- SNMP
     9- Email
    10- Syslog

     <ESC>- Back, <ENTER>- Refresh, <CTRL-L>- Event Log
> 1

------- TCP/IP ----------------------------------------------------------------

        Network not started. Invalid BOOTP response.
        -----------------------------------------------------------------------
        MAC Address : 00 00 00 00 00 00

        * Manually reboot to restart network. System->Tools->Reboot.

     1- Boot Mode  : DHCP & BOOTP
     2- Advanced...

     <ESC>- Back, <ENTER>- Refresh, <CTRL-L>- Event Log
> 1

------- Boot Mode -------------------------------------------------------------

     1- DHCP & BOOTP
     2- DHCP only
     3- BOOTP only
     4- Manual

     <ESC>- Back, <ENTER>- Refresh
> 4

------- TCP/IP ----------------------------------------------------------------

        Network not started. Invalid BOOTP response.
        -----------------------------------------------------------------------
        MAC Address : 00 00 00 00 00 00

        * Changes will take effect on Logout.

     1- System IP      : 0.0.0.0
     2- Subnet Mask    : 0.0.0.0
     3- Default Gateway: 0.0.0.0
     4- Boot Mode      : Manual
     5- Advanced...

     <ESC>- Back, <ENTER>- Refresh, <CTRL-L>- Event Log
> 1
System IP : 10.10.10.244

------- TCP/IP ----------------------------------------------------------------

        Network not started. Invalid BOOTP response.
        -----------------------------------------------------------------------
        MAC Address : 00 00 00 00 00 00

        * Changes will take effect on Logout.

     1- System IP      : 10.10.10.244
     2- Subnet Mask    : 0.0.0.0
     3- Default Gateway: 0.0.0.0
     4- Boot Mode      : Manual
     5- Advanced...

     <ESC>- Back, <ENTER>- Refresh, <CTRL-L>- Event Log
> 2
Subnet Mask : 255.255.255.0

------- TCP/IP ----------------------------------------------------------------

        Network not started. Invalid BOOTP response.
        -----------------------------------------------------------------------
        MAC Address : 00 00 00 00 00 00

        * Changes will take effect on Logout.

     1- System IP      : 10.10.10.244
     2- Subnet Mask    : 255.255.255.0
     3- Default Gateway: 0.0.0.0
     4- Boot Mode      : Manual
     5- Advanced...

     <ESC>- Back, <ENTER>- Refresh, <CTRL-L>- Event Log
> 3
Default Gateway : 10.10.10.1

------- TCP/IP ----------------------------------------------------------------

        Network not started. Invalid BOOTP response.
        -----------------------------------------------------------------------
        MAC Address : 00 00 00 00 00 00

        * Changes will take effect on Logout.

     1- System IP      : 10.10.10.244
     2- Subnet Mask    : 255.255.255.0
     3- Default Gateway: 10.10.10.1
     4- Boot Mode      : Manual
     5- Advanced...

     <ESC>- Back, <ENTER>- Refresh, <CTRL-L>- Event Log
> 5

------- Advanced... -----------------------------------------------------------

        Link is down.

     1- Host Name     : APC
     2- Domain Name   : somedomain.com
     3- Port Speed    : Auto-negotiation
     4- Accept Changes:

     <ESC>- Back, <ENTER>- Refresh, <CTRL-L>- Event Log
> 1
Host Name : UPS-NAME

------- Advanced... -----------------------------------------------------------

        Link is down.

     1- Host Name     : UPS-NAME
     2- Domain Name   : somedomain.com
     3- Port Speed    : Auto-negotiation
     4- Accept Changes: Pending

     <ESC>- Cancel Changes, <ENTER>- Refresh, <CTRL-L>- Event Log
> 2
Domain Name : domain.name

------- Advanced... -----------------------------------------------------------

        Link is down.

     1- Host Name     : UPS-NAME
     2- Domain Name   : domain.name
     3- Port Speed    : Auto-negotiation
     4- Accept Changes: Pending

     <ESC>- Cancel Changes, <ENTER>- Refresh, <CTRL-L>- Event Log
> 4

------- Advanced... -----------------------------------------------------------

        Link is down.

     1- Host Name     : UPS-NAME
     2- Domain Name   : domain.name
     3- Port Speed    : Auto-negotiation
     4- Accept Changes: Success

     <ESC>- Back, <ENTER>- Refresh, <CTRL-L>- Event Log
>

# Мжем ESC пока не попадем в главное меню

------- Control Console -------------------------------------------------------

     1- Device Manager
     2- Network
     3- System
     4- Logout

     <ESC>- Main Menu, <ENTER>- Refresh, <CTRL-L>- Event Log
> 4

You are now in passthru mode.

 

Теперь продолжить настройку ИБП можно через Web интерфейс. Там все еще проще, описывать нет смысла, главное настройте SNMP COMMUNITY.

Переходим к Zabbix.

Для начала необходимо создать макрос {$SNMP_COMMUNITY} со значением SNMP COMMUNITY которое выставлено в настройках ИБП.

Теперь необходимо пройти в Администрирование -> Общие -> Преобразование значений и импортировать список преобразований. Соответствующий файл есть в архиве. Без этих таблиц, во время импортирования шаблона вылетит ошибка и операция будет остановлена.

Теперь можно импортировать сам шаблон, он как всегда, во вложении к данному посту.

Что имеется на данные момент:

Элемента данных

  1. Версия прошивки микропроцессора
  2. Верхний порог (V) для перехода на работу от батареи
  3. Время, прошедшее с момента как ИБП перешел на работу от батареи
  4. Входное максимальное зарегистрированное напряжение
  5. Входное минимальное зарегистрированное напряжение
  6. Входное напряжение
  7. Выходная потребляемая нагрузка в амперах
  8. Выходное напряжение
  9. Индикатор замены батареи
  10. Модель устройства
  11. Напряжение батареии
  12. Нижний порог (V) для перехода на работу от батареи
  13. Оставшееся время автономной работы
  14. Причина последнего перехода на работу от батареи
  15. Серийный номер микропроцессора
  16. Статус ONLINE\OFFLINE
  17. Статус батареи
  18. Текущая нагрузка
  19. Текущее состояние ИБП
  20. Температура батареи
  21. Температура внутри ИБП
  22. Уровень заряда батареи
  23. Частота входной линии
  24. Частота выходной линии

Триггеры

  1. ИБП: Работает от батареи
  2. ИБП: батарея в аварийном состоянии
  3. ИБП: батарея разряжена
  4. ИБП: выключен или с ним нет связи по Ethernet
  5. ИБП: заряд батареи менее 25%
  6. ИБП: заряд батареи менее 50%
  7. ИБП: заряд батареи менее 75%
  8. ИБП: зафиксирован высокий скачек напряжения на входной линии
  9. ИБП: зафиксировано сильное падение напряжения на входной линии
  10. ИБП: нагрузка превысила 80%
  11. ИБП: нагрузка превысила 85%
  12. ИБП: нагрузка превысила 90%
  13. ИБП: нагрузка превысила 100%
  14. ИБП: необходимо заменить батарею
  15. ИБП: температура батареи превысила 40 градусов С

Графики

  1. Входное и выходное напряжение
  2. Нагрузка (A, %)
  3. Оставшееся время автономной работы
  4. Состояние батареи
  5. Частота входной и выходной линии (Гц)

Ниже добавлю несколько изображений с графиками, но для полноты данных они взяты уже не с 5000 серии, а с 1500.

Скрытый текст

ups1.thumb.png.cbb4af309fda1e644fdb677efups2.thumb.png.981c404786557834676204858ups3.thumb.png.739569600bbda8d225bff2547ups4.thumb.png.f5ddd50f730b37036a6b16bf3ups5.thumb.png.087b509855a82014aa0eb323f

PS:  Хочу добавить, что некоторые данные могут не поступать, например температура батареи. Это, как я понял, зависит от комплектации конкретного ИБП.

 

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Мониторинг ИБП через USB с помощью пакета apcupsd.

Все манипуляции производились на операционной системе Linux Ubuntu 13.10 и Zabbix 2.2

Установка проста до невозможности:

sudo apt-get install apcupsd

После установки погружаемся в конфиг:

nano /etc/apcupsd/apcupsd.conf

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

# Имя ИБП, может быть любым
UPSNAME ups-name
# Используемый кабель
UPSCABLE usb
# Тип подключения.
UPSTYPE usb
# Закомментируем строку указанную по умолчанию
#DEVICE /dev/ttyS0
# Указываем как часто сохранять информацию в "статус-файл", по умолчанию 0 и говорит о том, что файл создан не будет
STATTIME 30
# Куда сохранять информацию о статусе ИБП, оставляем по умолчанию, но путь до файла запомнили
STATFILE /var/log/apcupsd.status

Далее необходимо организовать сбор и передачу данных на zabbix. Захламлять конфиг демона десятками UserParameter нет совершенно никакого желания. Душа просит эстетики и мы начинаем конструировать велосипед.
Нам понадобится скрипт который будет посредником между zabbix агентом и apcupsd. Для подобных фокусов у меня имеется каталог "/usr/local/etc/scripts/".
Создаем там файл "/usr/local/etc/scripts/apcupsd.status.sh" права 750 владелец root группа zabbix

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

#!/bin/bash
if [[ -z "$1" || -z "$2" ]]; then
  exit 1
fi
if [ -s "$1" ]; then
  if [[ "$2" =~ DATE|VERSION|CABLE|DRIVER|UPSMODE|STARTTIME|MODEL|LASTXFER|STATFLAG|FIRMWARE|'END APC' ]]; then
    QUERY=`cat "$1" | grep -iw "$2" | cut -d':' -f 2,3,4,5 | head -n1`
  else
    QUERY=`cat "$1" | grep -iw "$2" | cut -d':' -f 2 | awk '{print \$1}'`
  fi
  if [ "$2" = "STATUS" ]; then
    if [[ "${QUERY}" = *ONLINE* ]]; then
      echo "1"
    else
      echo "0"
    fi
  else
    echo "${QUERY}"
  fi
else
  exit 1
fi

Обращаю внимание, что в файле "/var/log/apcupsd.status" используется разделитесь ":", в то время как этот же символ может фигурировать и в самих данных, что приведет к потери части строки.
В довесок к этому, некоторые данные отдаются с описанием их единиц измерения, а нам необходимо передать в zabbix эти значения как INT или FLOAT т.к если получать их как STRING, то мы не сможем ими манипулировать в дальнейшем. Например использовать в собственных расчетах и формулах. 
В общем, для всех этих фильтраций мы используем cut, head и awk. Как обрабатывать тот или иной параметр задано в условии формирующем переменную QUERY.
Параметр STATUS отдаёт нам значение имеющее тип STRING и не подходящее нам для использования в графиках или других расчетах. Из тех вариантов, что мы получаем, нас интересует только определение типа его работы (от сети или от аккумулятора), для этого мы преобразуем для zabbix STRING в INT и отдаём "1" (работа от сети) или "0" (работа от батареи).

ВАЖНО: Я использовал не все параметры указанные в спецификации apcupsd. Для более подробной информации и добавлению нужных Вам данных стоит почитать тут http://www.apcupsd.org/manual/manual.html

Велосипед готов.
Идем в конфиг агента "/usr/local/etc/zabbix_agentd.conf" и добавляем в конце файла строку которая будет отвечать за сбор параметров у скрипта:

UserParameter=ups[*],/usr/local/etc/scripts/apcupsd.status.sh "/var/log/apcupsd.status" "$1"

Тут все просто:

  1. ups[*] - массив в котором будут храниться данные от ИБП и по совместительству являться ключами в zabbix
  2. /usr/local/etc/scripts/apcupsd.status.sh - путь до скрипта
  3. "/var/log/apcupsd.status" - путь до "статус-файла" apcupsd
  4. "$1" - запрашиваемый параметр

Перезапускаем zabbix агент и идем добавлять шаблон для всей этой кухни.
Сам шаблон описывать сильно не буду, а просто добавлю его к посту.

GR1.thumb.png.9cbaece977970a40507d1dafb9GR2.thumb.png.63cd8fd6f23ea4b8442caa80a8GR3.thumb.png.ea4ce63577b3f895176efbd398GR4.thumb.png.c97392a71a83843649d48bf32fGR5.thumb.png.d5c1c6da1f3f99cc729c73f4bc

PS: На данный момент я отказался от подключения через USB и использую только SNMP описанный в посте выше. Но данный вариант отлично подходит для ИБП без сетевого интерфейса. Можно легко представить ситуацию, что ИБП отвечает за работу автоматизированной станции где нибудь в малообитаемой местности и для доступа к нему используется Raspberry Pi с установленным Zabbix Agent'ом. Хм... дешево и сердито, учитывая стоимость "APC Network Management Card".

template_APCUPSD.xml

apcupsd.status.zip

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Пожалуйста, войдите для комментирования

Вы сможете оставить комментарий после входа



Войти сейчас

  • Похожие публикации

    • Автор: Kitsum
      Шаблон и список преобразований значений для мониторинга источников бесперебойного питания фирмы APC. 
      Подробное описание можно посмотреть в следующей теме.
       
    • Автор: Kitsum
      Модуль предназначен для системы мониторинга Zabbix. Работает в качестве отдельного демона и осуществляет транзит сообщений от брокера до хостов в системе мониторинга. Подробное описание модуля можно посмотреть в следующей теме.
       
    • Автор: Kitsum
      Шаблон и список преобразований значений для мониторинга маршрутизаторов и свичей фирмы Cisco (должен подходить для оборудования Allied Telesis).
      Подробное описание можно посмотреть в следующей теме.
       
  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...