Мониторинг UPS

Started by zeratyl, November 06, 2013, 12:43:29 PM

Previous topic - Next topic

zeratyl

Добрый день. Пытаюсь настроить мониторинг UPS (Smart-UPS 1000 RM FW:616.3.I USB FW:8.1) на Windows Server 2008 R2, агент NetXMS 1.2.8. UPS подключён по USB с использованием драйвера libusb, контроль/выключение осуществляется через NUT. Конфиг агента:

Quote
MasterServers = ms-nms-01.root.local
LogFile = c:\NetXMS\log\nxagentd.log
FileStore = C:\NetXMS\var
EnabledCiphers = 1
RequireAuthentication = yes
RequireEncryption = yes
SharedSecret =
EnableActions = no
SubAgent = logwatch.nsm
SubAgent = portcheck.nsm
SubAgent = winperf.nsm
SubAgent = ups.nsm
SubAgent = wmi.nsm

# Below is log parsers definitions
*LOGWATCH
Parser = C:\NetXMS\log\Application_log.xml
Parser = C:\NetXMS\log\system_log.xml

*UPS
Device = 0:ANY:USB

Пытаюсь получить параметры с UPS, к примеру, UPS.SerialNumber(0). Возвращается что параметр не поддерживается. Подскажите в чём может быть проблема.

zeratyl

Так и не удалось решить проблему. Не подскажите, возможна ли вообще такая конфигурация. И как-то можно понять видит ли агент UPS, например из логов?

Victor Kirhenshtein

Вообще должно так работать. Я к следующему релизу добавлю дебаг сообщений, тогда в логе увидим, что происходит.

zeratyl

Спасибо, буду ждать  :)

glebofff

А у меня проблема несколько глубже, и я даже не знаю, то ли лыжи не едут, то ли я чего-то понять не могу.

Без libusb агент бесперебойник видит, и выдаёт почти всё, кроме UPS.OnlineStatus.

С libusb под xp32 вот такое:
[WARN ] UPS: Cannot establish communication with device #0 "USB-ANY"

При всём при том:
upsc.exe ups1
battery.charge: 100
battery.charge.low: 10
battery.charge.warning: 50
battery.date: 2010/08/14
battery.mfr.date: 2010/08/14
battery.runtime: 2085
battery.runtime.low: 120
battery.type: PbAc
battery.voltage: 13.6
battery.voltage.nominal: 12.0
device.mfr: American Power Conversion
device.model: Back-UPS ES 525
device.serial: 4B1033P19388
device.type: ups
driver.name: usbhid-ups
driver.parameter.bus: bus-0
driver.parameter.pollfreq: 30
driver.parameter.pollinterval: 2
driver.parameter.port: auto
driver.parameter.product: Back-UPS ES 525 FW:851.t3.I USB FW:t3
driver.parameter.productid: 0002
driver.parameter.serial: 4B1033P19388
driver.parameter.vendor: American Power Conversion
driver.parameter.vendorid: 051D
driver.version: 2.6.5-3723:3731M
driver.version.data: APC HID 0.95
driver.version.internal: 0.37
input.sensitivity: medium
input.transfer.high: 255
input.transfer.low: 195
input.voltage: 228.8
input.voltage.nominal: 230
output.voltage.nominal: 2300.0
ups.beeper.status: enabled
ups.delay.shutdown: 20
ups.firmware: 851.t3.I
ups.firmware.aux: t3
ups.load: 28.0
ups.mfr: American Power Conversion
ups.mfr.date: 2010/08/14
ups.model: Back-UPS ES 525
ups.productid: 0002
ups.realpower.nominal: 300
ups.serial: 4B1033P19388
ups.status: OL
ups.test.result: No test initiated
ups.timer.reboot: 0
ups.timer.shutdown: -1
ups.vendorid: 051d


zeratyl

После обновления до версии 1.2.13 проведу дебаг, для актуальности эксперимента.

zeratyl

Обновил агент до версии 1.2.13. По видимому дебаг не корректно работает, в конфиге агента устанавливаю DebugLevel = 7. При запуске агента в лог файле:

Quote
[02-Apr-2014 13:33:56.484] Log file opened
[02-Apr-2014 13:33:56.484] [INFO ] Additional configs was loaded from C:\NetXMS\etc\nxagentd.conf.d
[02-Apr-2014 13:33:56.484] [INFO ] Debug level set to 0
[02-Apr-2014 13:33:56.734] [WARN ] Unable to load NETMAN.DLL
[02-Apr-2014 13:33:56.734] [INFO ] Subagent "WINNT.NSM" loaded successfully
[02-Apr-2014 13:33:57.155] [INFO ] Subagent "logwatch.nsm" loaded successfully
[02-Apr-2014 13:33:57.155] [INFO ] Subagent "portcheck.nsm" loaded successfully
[02-Apr-2014 13:33:58.793] [INFO ] Subagent "winperf.nsm" loaded successfully
[02-Apr-2014 13:33:58.809] [INFO ] Subagent "ups.nsm" loaded successfully
[02-Apr-2014 13:33:58.809] [INFO ] Subagent "wmi.nsm" loaded successfully
[02-Apr-2014 13:33:58.809] [WARN ] UPS: Cannot establish communication with device #0 "USB-ANY"
[02-Apr-2014 13:33:59.823] [INFO ] Listening on socket 0.0.0.0:4700
[02-Apr-2014 13:34:00.837] [INFO ] NetXMS Agent started

До этого была версия 1.2.8, в ней такая настройка работала корректно.

Victor Kirhenshtein

Сейчас -D в командной строке имеет приоритет. Проверьте что при запуске агента не указывается -D0.

zeratyl

Сделал дебаг с уровнем 9, посмотрите, пожалуйста.

Victor Kirhenshtein

Какие-то устройства он похоже не может открыть. К сожалению русские тексты ошибок заменились на ???:

[03-Apr-2014 10:29:00.130] [DEBUG] UPS: CreateFile failed (???????? ? ???????.)
[03-Apr-2014 10:29:00.130] [DEBUG] UPS: CreateFile failed (???????? ? ???????.)
[03-Apr-2014 10:29:00.130] [DEBUG] UPS: SetupDiEnumDeviceInterfaces failed (?????????????? ?????? ???????????.)

Подозреваю что это "access denied".

Я добавил вывод имени устройства и поменял немного вызов на открытие устройства. Попробуйте приложенный субагент.

zeratyl

Попробовал с новым файлом. Ошибка осталась. Приложил файл лога.

Victor Kirhenshtein

А какой путь у самого UPS'a? Это должно быть видно в свойствах устройства (в закладке Details выбрать Hardware Ids).

zeratyl

Что-то не догадался сам сначала посмотреть. Вот данные по UPS, во вложении скриншот со всеми usb устройствами.

[Strings]
DeviceName = "Smart-UPS 1000 RM FW:616.3.I USB FW:8.1"
VendorName = "American Power Conversion"
SourceName = "Smart-UPS 1000 RM FW:616.3.I USB FW:8.1 Install Disk"
DeviceID   = "VID_051D&PID_0002"
DeviceGUID = "{FF2BE1D3-0840-49F2-95C0-5A6AE51EB195}"

По видимому агент не верно определяет UPS и соответственно не к тем устройствам пытается подключиться.

Victor Kirhenshtein

А можно вот такой ID добыть, как на скриншоте? (У меня USB UPS'а нет, поэтому просто от USB устройства).

zeratyl

На этом сервере Windows Core, попробовал получить данные по UPS через ps. Прикрепил.