Zabbix & APC

Материал из База знаний проекта Russian Fedora

Перейти к: навигация, поиск

Необходимо добавить бесперебойники (в большом количестве) на контроль (Аккумулятор быстро разряжается, Аварии на станции, энергетики/электрики без предупреждения отключают питание)

Содержание

Основные Характеристики apcupsd

apcupsd создан для решения следующих задач:

Связка бесперебойников с Программой apcupsd

установка и настройка

Устанавливается один пакет

yum install apcupsd
После установки необходимо в директории
/etc/apcupsd/
Cоздать необходимое количество устройств ups0 ... ups5. В каждой папке есть файл конфигурации и все исполняемые файлы.
-rwxr-xr-x 1 root root  3916 Авг 13  2013 apccontrol
-rw-r--r-- 1 root root 12812 Сен  1 17:27 apcupsd.conf
-rwxr--r-- 1 root root   460 Авг 13  2013 changeme
-rwxr--r-- 1 root root   487 Авг 13  2013 commfailure
-rwxr--r-- 1 root root   488 Авг 13  2013 commok
-rwxr--r-- 1 root root   455 Авг 13  2013 offbattery
-rwxr--r-- 1 root root   420 Авг 13  2013 onbattery

файл конфигурации /etc/apcupsd/ups0 ... ups5/apcupsd.conf выглядит следующим образом. Все изменения делались в начале каждого файла (менялся номер бесперебойника).

[code]## apcupsd.conf v1.1 ##
#
#  for apcupsd release 3.14.10 (13 September 2011) - redhat
#
# "apcupsd" POSIX config file
 
#
# ========= General configuration parameters ============
#
 
# UPSNAME xxx
#   Use this to give your UPS a name in log files and such. This
#   is particulary useful if you have multiple UPSes. This does not
#   set the EEPROM. It should be 8 characters or less.
UPSNAME ups1
UPSCABLE usb
UPSTYPE usb
DEVICE /dev/usb/hiddev1
POLLTIME 25
SCRIPTDIR /etc/apcupsd/ups1
PWRFAILDIR /etc/apcupsd/ups1
NOLOGINDIR /etc/apcupsd/ups1
NETSERVER on
NISIP 127.0.0.1
NISPORT 3551
EVENTSFILE /var/log/apcupsd.ups1.events
STATTIME 1
STATFILE /var/log/apcupsd.ups1.status
 
# UPSCABLE <cable>
#   Defines the type of cable connecting the UPS to your computer.
#
#   Possible generic choices for <cable> are:
#     simple, smart, ether, usb
#
#   Or a specific cable model number may be used:
#     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, M-04-02-2000
#
#####UPSCABLE usb
 
# To get apcupsd to work, in addition to defining the cable
# above, you must also define a UPSTYPE, which corresponds to
# the type of UPS you have (see the Description for more details).
# You must also specify a DEVICE, sometimes referred to as a port.
# For USB UPSes, please leave the DEVICE directive blank. For
# other UPS types, you must specify an appropriate port or address.
#
# UPSTYPE   DEVICE           Description
# apcsmart  /dev/tty**       Newer serial character device, appropriate for
#                            SmartUPS models using a serial cable (not USB).
#
# usb       <BLANK>          Most new UPSes are USB. A blank DEVICE
#                            setting enables autodetection, which is
#                            the best choice for most installations.
#
# net       hostname:port    Network link to a master apcupsd through apcupsd's
#                            Network Information Server. This is used if the
#                            UPS powering your computer is connected to a
#                            different computer for monitoring.
#
# snmp      hostname:port:vendor:community
#                            SNMP network link to an SNMP-enabled UPS device.
#                            Hostname is the ip address or hostname of the UPS
#                            on the network. Vendor can be can be "APC" or
#                            "APC_NOTRAP". "APC_NOTRAP" will disable SNMP trap
#                            catching; you usually want "APC". Port is usually
#                            161. Community is usually "private".
#
# netsnmp   hostname:port:vendor:community
#                            OBSOLETE
#                            Same as SNMP above but requires use of the
#                            net-snmp library. Unless you have a specific need
#                            for this old driver, you should use 'snmp' instead.
#
# dumb      /dev/tty**       Old serial character device for use with
#                            simple-signaling UPSes.
#
# pcnet     ipaddr:username:passphrase:port
#                            PowerChute Network Shutdown protocol which can be
#                            used as an alternative to SNMP with the AP9617
#                            family of smart slot cards. ipaddr is the IP
#                            address of the UPS management card. username and
#                            passphrase are the credentials for which the card
#                            has been configured. port is the port number on
#                            which to listen for messages from the UPS, normally
#                            3052. If this parameter is empty or missing, the
#                            default of 3052 will be used.
#
#####UPSTYPE usb
#####DEVICE
 
# POLLTIME <int>
#   Interval (in seconds) at which apcupsd polls the UPS for status. This
#   setting applies both to directly-attached UPSes (UPSTYPE apcsmart, usb,
#   dumb) and networked UPSes (UPSTYPE net, snmp). Lowering this setting
#   will improve apcupsd's responsiveness to certain events at the cost of
#   higher CPU utilization. The default of 60 is appropriate for most
#   situations.
#####POLLTIME 60
 
# LOCKFILE <path to lockfile>
#   Path for device lock file. Not used on Win32.
LOCKFILE /var/lock
 
# SCRIPTDIR <path to script directory>
#   Directory in which apccontrol and event scripts are located.
#####SCRIPTDIR /etc/apcupsd
 
# PWRFAILDIR <path to powerfail directory>
#   Directory in which to write the powerfail flag file. This file
#   is created when apcupsd initiates a system shutdown and is
#   checked in the OS halt scripts to determine if a killpower
#   (turning off UPS output power) is required.
#####PWRFAILDIR /etc/apcupsd
 
# NOLOGINDIR <path to nologin directory>
#   Directory in which to write the nologin file. The existence
#   of this flag file tells the OS to disallow new logins.
#####NOLOGINDIR /etc
 
 
#
# ======== Configuration parameters used during power failures ==========
#
 
# The ONBATTERYDELAY is the time in seconds from when a power failure
#   is detected until we react to it with an onbattery event.
#
#   This means that, apccontrol will be called with the powerout argument
#   immediately when a power failure is detected.  However, the
#   onbattery argument is passed to apccontrol only after the
#   ONBATTERYDELAY time.  If you don't want to be annoyed by short
#   powerfailures, make sure that apccontrol powerout does nothing
#   i.e. comment out the wall.
ONBATTERYDELAY 6
 
#
# Note: BATTERYLEVEL, MINUTES, and TIMEOUT work in conjunction, so
# the first that occurs will cause the initation of a shutdown.
#
 
# If during a power failure, the remaining battery percentage
# (as reported by the UPS) is below or equal to BATTERYLEVEL,
# apcupsd will initiate a system shutdown.
BATTERYLEVEL 5
 
# If during a power failure, the remaining runtime in minutes
# (as calculated internally by the UPS) is below or equal to MINUTES,
# apcupsd, will initiate a system shutdown.
MINUTES 3
 
# If during a power failure, the UPS has run on batteries for TIMEOUT
# many seconds or longer, apcupsd will initiate a system shutdown.
# A value of 0 disables this timer.
#
#  Note, if you have a Smart UPS, you will most likely want to disable
#    this timer by setting it to zero. That way, you UPS will continue
#    on batteries until either the % charge remaing drops to or below BATTERYLEVEL,
#    or the remaining battery runtime drops to or below MINUTES.  Of course,
#    if you are testing, setting this to 60 causes a quick system shutdown
#    if you pull the power plug.  
#  If you have an older dumb UPS, you will want to set this to less than
#    the time you know you can run on batteries.
TIMEOUT 0
 
#  Time in seconds between annoying users to signoff prior to
#  system shutdown. 0 disables.
ANNOY 300
 
# Initial delay after power failure before warning users to get
# off the system.
ANNOYDELAY 60
 
# The condition which determines when users are prevented from
# logging in during a power failure.
# NOLOGON <string> [ disable | timeout | percent | minutes | always ]
NOLOGON disable
 
# If KILLDELAY is non-zero, apcupsd will continue running after a
# shutdown has been requested, and after the specified time in
# seconds attempt to kill the power. This is for use on systems
# where apcupsd cannot regain control after a shutdown.
# KILLDELAY <seconds>  0 disables
KILLDELAY 0
 
#
# ==== Configuration statements for Network Information Server ====
#
 
# NETSERVER [ on | off ] on enables, off disables the network
#  information server. If netstatus is on, a network information
#  server process will be started for serving the STATUS and
#  EVENT data over the network (used by CGI programs).
#####NETSERVER on
 
# NISIP <dotted notation ip address>
#  IP address on which NIS server will listen for incoming connections.
#  This is useful if your server is multi-homed (has more than one
#  network interface and IP address). Default value is 0.0.0.0 which
#  means any incoming request will be serviced. Alternatively, you can
#  configure this setting to any specific IP address of your server and
#  NIS will listen for connections only on that interface. Use the
#  loopback address (127.0.0.1) to accept connections only from the
#  local machine.
#####NISIP 127.0.0.1
 
# NISPORT <port> default is 3551 as registered with the IANA
#  port to use for sending STATUS and EVENTS data over the network.
#  It is not used unless NETSERVER is on. If you change this port,
#  you will need to change the corresponding value in the cgi directory
#  and rebuild the cgi programs.
#####NISPORT 3551
 
# If you want the last few EVENTS to be available over the network
# by the network information server, you must define an EVENTSFILE.
#####EVENTSFILE /var/log/apcupsd.events
 
# EVENTSFILEMAX <kilobytes>
#  By default, the size of the EVENTSFILE will be not be allowed to exceed
#  10 kilobytes.  When the file grows beyond this limit, older EVENTS will
#  be removed from the beginning of the file (first in first out).  The
#  parameter EVENTSFILEMAX can be set to a different kilobyte value, or set
#  to zero to allow the EVENTSFILE to grow without limit.
EVENTSFILEMAX 10
 
#
# ========== Configuration statements used if sharing =============
#            a UPS with more than one machine
 
#
# Remaining items are for ShareUPS (APC expansion card) ONLY
#
 
# UPSCLASS [ standalone | shareslave | sharemaster ]
#   Normally standalone unless you share an UPS using an APC ShareUPS
#   card.
UPSCLASS standalone
 
# UPSMODE [ disable | share ]
#   Normally disable unless you share an UPS using an APC ShareUPS card.
UPSMODE disable
 
#
# ===== Configuration statements to control apcupsd system logging ========
#
 
# Time interval in seconds between writing the STATUS file; 0 disables
#####STATTIME 0
 
# Location of STATUS file (written to only if STATTIME is non-zero)
#####STATFILE /var/log/apcupsd.status
 
# LOGSTATS [ on | off ] on enables, off disables
# Note! This generates a lot of output, so if        
#       you turn this on, be sure that the
#       file defined in syslog.conf for LOG_NOTICE is a named pipe.
#  You probably do not want this on.
LOGSTATS off
 
# Time interval in seconds between writing the DATA records to
#   the log file. 0 disables.
DATATIME 0
 
# FACILITY defines the logging facility (class) for logging to syslog.
#          If not specified, it defaults to "daemon". This is useful
#          if you want to separate the data logged by apcupsd from other
#          programs.
#FACILITY DAEMON
 
#
# ========== Configuration statements used in updating the UPS EPROM =========
#
 
#
# These statements are used only by apctest when choosing "Set EEPROM with conf
# file values" from the EEPROM menu. THESE STATEMENTS HAVE NO EFFECT ON APCUPSD.
#
 
# UPS name, max 8 characters
#UPSNAME UPS_IDEN
 
# Battery date - 8 characters
#BATTDATE mm/dd/yy
 
# Sensitivity to line voltage quality (H cause faster transfer to batteries)  
# SENSITIVITY H M L        (default = H)
#SENSITIVITY H
 
# UPS delay after power return (seconds)
# WAKEUP 000 060 180 300   (default = 0)
#WAKEUP 60
 
# UPS Grace period after request to power off (seconds)
# SLEEP 020 180 300 600    (default = 20)
#SLEEP 180
 
# Low line voltage causing transfer to batteries
# The permitted values depend on your model as defined by last letter
#  of FIRMWARE or APCMODEL. Some representative values are:
#    D 106 103 100 097
#    M 177 172 168 182
#    A 092 090 088 086
#    I 208 204 200 196     (default = 0 => not valid)
#LOTRANSFER  208
 
# High line voltage causing transfer to batteries
# The permitted values depend on your model as defined by last letter
#  of FIRMWARE or APCMODEL. Some representative values are:
#    D 127 130 133 136
#    M 229 234 239 224
#    A 108 110 112 114
#    I 253 257 261 265     (default = 0 => not valid)
#HITRANSFER 253
 
# Battery charge needed to restore power
# RETURNCHARGE 00 15 50 90 (default = 15)
#RETURNCHARGE 15
 
# Alarm delay
# 0 = zero delay after pwr fail, T = power fail + 30 sec, L = low battery, N = never
# BEEPSTATE 0 T L N        (default = 0)
#BEEPSTATE T
 
# Low battery warning delay in minutes
# LOWBATT 02 05 07 10      (default = 02)
#LOWBATT 2
 
# UPS Output voltage when running on batteries
# The permitted values depend on your model as defined by last letter
#  of FIRMWARE or APCMODEL. Some representative values are:
#    D 115
#    M 208
#    A 100
#    I 230 240 220 225     (default = 0 => not valid)
#OUTPUTVOLTS 230
 
# Self test interval in hours 336=2 weeks, 168=1 week, ON=at power on
# SELFTEST 336 168 ON OFF  (default = 336)
#SELFTEST 336

Расмотрим настройки.

Номер бесперебойника.

UPSNAME ups1

Коммутационный кабель.

UPSCABLE usb
UPSTYPE usb
DEVICE /dev/usb/hiddev1

Обновление в конфигурационном файле установлено через 25 сек.

POLLTIME 25

Пути нахождения конфигурациоонных настроек.

SCRIPTDIR /etc/apcupsd/ups1
PWRFAILDIR /etc/apcupsd/ups1
NOLOGINDIR /etc/apcupsd/ups1

Включение выключение данных по сети.

NETSERVER on

Адрес сервера.

NISIP 127.0.0.1

Порт сервера.

NISPORT 3551

Лог для событий.

EVENTSFILE /var/log/apcupsd.ups1.events

Включение = 1/отключение = 0 Записи файла apcupsd.ups1.status

STATTIME 1

Запись данных с бесперебойника.

STATFILE /var/log/apcupsd.ups1.status

Первый запуск

Старт программы необходимо сделать из консоли для проверки конфигурационного файла, шлейфов/проводов USB карточки. Также можно подключить через RS-232 для более стабильного наблюдения, если сам аппарат находиться на большем расстоянии от сервера сбора данных.

/sbin/apcupsd -f /etc/apcupsd/ups0/apcupsd.conf

Получить данные можно так

apcaccess status 127.0.0.1:3550

Должы появиться следующие строки

APC      : 001,043,1051
DATE     : 2014-09-02 22:12:12 +0400
HOSTNAME : zab.umz
VERSION  : 3.14.10 (13 September 2011) redhat
UPSNAME  : ups0
CABLE    : USB Cable
DRIVER   : USB UPS Driver
UPSMODE  : Stand Alone
STARTTIME: 2014-09-01 16:35:13 +0400
MODEL    : Smart-UPS 1500
STATUS   : ONLINE
LINEV    : 228.9 Volts
LOADPCT  :  14.3 Percent Load Capacity
BCHARGE  : 100.0 Percent
TIMELEFT :  17.0 Minutes
MBATTCHG : 5 Percent
MINTIMEL : 3 Minutes
MAXTIME  : 0 Seconds
OUTPUTV  : 228.9 Volts
SENSE    : Low
DWAKE    : -01 Seconds
DSHUTD   : 090 Seconds
LOTRANS  : 208.0 Volts
HITRANS  : 253.0 Volts
RETPCT   : 000.0 Percent
ITEMP    : 31.5 C Internal
ALARMDEL : 30 seconds
BATTV    : 27.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 : 0x07000008 Status Flag
MANDATE  : 2005-09-15
SERIALNO : AS0538231808
BATTDATE : 2010-05-13
NOMOUTV  : 230 Volts
NOMBATTV :  24.0 Volts
FIRMWARE : 653.12.I USB FW:4.2
END APC  : 2014-09-02 22:12:13 +0400

файл запуска

Файл в директории /etc/init.d/ находиться файл apcupsd Он отрабатывает только одну конфигурацию (У нас же несколько приборов которые должны загружаться все вместе) на скору руку было написано следуюшие строки

service apcupsd stop
killall apcupsd
#
/sbin/apcupsd -f /etc/apcupsd/ups0/apcupsd.conf
/sbin/apcupsd -f /etc/apcupsd/ups1/apcupsd.conf
/sbin/apcupsd -f /etc/apcupsd/ups2/apcupsd.conf
/sbin/apcupsd -f /etc/apcupsd/ups3/apcupsd.conf
/sbin/apcupsd -f /etc/apcupsd/ups4/apcupsd.conf

Проверка запуска

Проверка по сети до аппаратов netstat -lnp | grep apcupsd Наблюдаем такую статистику.

tcp   0    0    127.0.0.1:3550    0.0.0.0:*   LISTEN      2574/apcupsd        
tcp   0    0    127.0.0.1:3551    0.0.0.0:*   LISTEN      2577/apcupsd        
tcp   0    0    127.0.0.1:3552    0.0.0.0:*   LISTEN      2580/apcupsd        
tcp   0    0    127.0.0.1:3553    0.0.0.0:*   LISTEN      2583/apcupsd        
tcp   0    0    127.0.0.1:3554    0.0.0.0:*   LISTEN      2586/apcupsd

В директории /var/log/ наблюдаем файлы apcupsd.status НО так как у нас 5 аппаратов то файлы логов выглядят следующим образом apcupsd.ups0.status Как было сказано ранее обновление через каждые 25 секунд.

Вывод ошибок в консоль

Если консоль активна. То через некоторое время начинают сыпаться сообщения об ошибках или неполадках в оборудовании.

Проблема с аккамуляторами. Необходимо заменить.

[root@zab zabbix]# 
Broadcast message from root@zab.umz (Tue Sep  2 10:45:16 2014):

Emergency! Batteries have failed on UPS ups4. Change them NOW

Проблема с доступом. Необходимо проверить соединительную коммутацию до аппарата.

[root@zab zabbix]# 
Broadcast message from root@zab.umz (Wed Sep  3 09:20:22 2014):

Warning communications lost with UPS ups1

После решении проблемы с коммутацией. Показывает что проблема решена

[root@zab zabbix]# 
Broadcast message from root@zab.umz (Wed Sep  3 15:59:37 2014):

Communications restored with UPS ups1
</pre>

Отправление данных в ZABBIX

Экспорт логов в ZABBIX

Экспорт данных через SNMP в ZABBIX

Обсуждение на форуме

Обсуждение на форуме Russian Fedora