Мониторинг ИБП. Часть вторая – автоматизируем аналитику
Некоторое время назад я наваял систему для оценки жизнеспособности офисных UPS. Оценка основана на долгосрочном мониторинге. По результатам использования систему допилил и узнал много интересного, о чём и расскажу — добро пожаловать под кат.
Первая часть
В целом задумка оказалась верной. Из разового запроса к UPS можно узнать разве только, что жизнь — боль. Часть параметров имеет отношение к реальности только без подключённых 220 В, некоторые по результатам анализа оказываются откровенным бредом, какие-то нужно пересчитывать руками, сверяясь с реальностью.
Забегая вперёд, эти нюансы в систему я постарался добавить. Ну не руками же считать, в самом деле, автоматизаторы мы или что.
Вот, например, параметр »заряд батареи в процентах». Как одиночное значение он сообщает ничего и обычно равен 100. Что действительно важно: как быстро батарея разряжается, как быстро заряжается, сколько раз была разряжена до критических значений. Удивительно, но часть этой работы ИБП делает сам, однако по очень странным формулам; об этом ниже.
Параметр »нагрузка на ИБП» весьма хорош и полезен. Но если смотреть на него в динамике, оказывается, что иногда там бред, а иногда — интересные сведения о подключённом оборудовании.
»Вольтаж батареи». Практически Грааль, если бы не одно но: абсолютное большинство времени батарея находится на заряде, и в параметре отображается вольтаж заряда, а не батареи. Погодите, а этим не должна заниматься процедура self-test?…
»Self-test». Должна, только её результаты выводятся никуда. При неудачном self-test ИБП отключится и заорёт как резаный, это единственный доступный результат. Плюс не все ИБП сообщают о самом факте состоявшегося self-test.
И «nice try vendor» — самый интересный из имеющихся параметр »battery runtime». Он призван предсказать, сколько продержится батарея при имеющейся нагрузке. Также на него завязана внутренняя логика поведения ИБП. Фактически же он показывает розовые мечты, особенно в состоянии полного заряда.
Нашлись и нюансы организационного характера.
Например, все попавшиеся мне ИБП имеют данные о дате батареи (аж два поля). При этом записать эти данные (после замены батареи, соответственно) мне удалось только в изделия от APC, и то танцуя с бубном. В Powercom же эти сведения не впихнуть никак, по крайней мере, под Windows.
Тот же Powercom отличился одинаковыми значениями в поле «serial number». Записи оно тоже не подлежит.
Калькуляция »battery runtime», похоже, включает в себя значения из тех периодов, когда к ИБП подключены 220 В, и, соответственно, данные о батарее откровенно неверны. По факту battery runtime можно смело делить на 2, а то и на 3. И при этом оно всё равно останется сугубо синтетическим значением. Кроме того, оно основано на «battery load», за которым тоже замечены странности: на некоторых экземплярах оно долго не сбрасывается после высокой нагрузки, а на других — стремится к нулю.
Несмотря на такой зоопарк, можно увидеть, что все параметры по-прежнему поддаются некоторой алгоритмитизации. А значит, можно не просто глядеть на данные (и уж тем более просматривать вручную все имеющиеся записи), но сразу загонять весь массив в анализатор и строить на их основании рекомендации. Что и было реализовано в новой версии ПО.
Страница сведений об ИБП выдаст предупреждения и рекомендации:
- зарегистрирован хотя бы один провал self-test (если ИБП предоставляет такой функционал)
- необходимость заменить батарею
- необычные значения нагрузки на ИБП
- отсутствие данных о батарее
- необычные значения входного напряжения
- рекомендации по использованию данных и обслуживанию ИБП
(все возможные варианты можно найти в ups_additional.php)
Необходимым условием для корректной аналитики, конечно, является максимально возможный сбор данных.
На главной странице можно сразу увидеть максимальные и критические значения и откорректированное предсказание времени работы.
А ещё:
- теперь корректно считается максимальное время потери питания
- актуальная информация с ИБП обозначается зелёным цветом, устаревшая — серым, критическая красным и оранжевым
- добавлен процедура оптимизации базы данных (запускается вручную, с автоматическим созданием бэкапа)
- убрана бесполезная информация с главного экрана и добавлена полезная :)
Disclaimer:
Конечно, это совсем не энтепрайз. Практически вся установка вручную. Тестов было маловато, кое-где выскакивают ошибки. Тем не менее, пользуюсь с пользой и вам желаю.
github.com/automatize-it/NUT_UPS_monitoring_webserver_for_Windows
Спасибо за внимание!