Запись значения внутри DCI, не каждый интервал проверки

Started by Vitaly S., December 04, 2013, 09:27:18 AM

Previous topic - Next topic

Vitaly S.

Добрый день, вдохновившись статьёй на хабре, решился поставить NetXMS для мониторинга, и пытаюсь активно его настраивать.
Возник вопрос.
Есть нода - принтер хочу контролировать момент, когда был заменён картридж и сколько он прошёл листов по счётчику.
В целом я придумал как это сделать, я беру дельту по количеству тонера в картридже и если она отрицательная, то из скрипта трансформации делаю snmpget к счётчику принтера и пишу в значение DCI значение счётчика, иначе 0.
Но мне не нравится что таблица значений постоянно заполняется нулями.
А теперь сам вопрос. Можно ли сделать так, что-бы значение записывалось не каждый интервал проверки, а только тогда, когда оно не равно нулю?

Victor Kirhenshtein

С неравными интервалами могут быть только push параметры, но тогда придется сбор данных выносить во внешний скрипт. Можно сделать по другому - в DCI хранить кол-во тонера, и поставить threshold на условие diff with previous value > 0 - тогда он сработает когда кол-во тонера вырастет, т.е. картридж был заменен. По событию в этот момент можно через SNMP получить кол-во страниц (как сейчас сделано в transformation script), и использовать его в аларме и/или оповещениях. Дополнительный бонус - можно вывести на график текущий уровень тонера.

Vitaly S.

Спасибо, Виктор :-)
уровень тонера у каждого принтера уже рисуется на дашборде красивым Gauge, так что тут всё прекрасно, а хотелось бы статистику без лишних пустых значений. Но всё равно спасибо за быстрый ответ, а на счёт Push я подумаю, вдруг что-нибудь интересное придумаю, пока фантазия туда не добралась.