- PVSM.RU - https://www.pvsm.ru -

Вот с такого, казалось бы, незамысловатого устройства фирмы Kyocera, мне захотелось получать различную статистику по использованию принтера и сканера. Казалось бы, всё просто: берём SNMP и получаем, но...
Убедившись, что наше устройство что-то отдаёт по SNMP, я отправился в гугл, дабы найти MIB [1] для нашего аппарата. Однако, удалось найти информацию лишь о том, что его нет. Не хочет Kyocera делиться такой информацией, по каким то причинам. Естественно, приходит на ум мысль о слегка рутинном поиске необходимых значений самостоятельно. Алгоритм не самый сложный — snmpwalk, печать, snmpwalk, diff.
Вот что нашлось:
user@host:~# snmpwalk -v 2c -c public 192.168.101.239
iso.3.6.1.2.1.43.10.2.1.4.1.1 = Counter32: 242
И тут первая странность: значение несколько отличается от указанного в web панельке самого устройства (и в меню принтера):

Поиск в SNMP-выдаче цифр, хоть как-то похожих на то, что написано в web панельке девайса не дали ни малейшего результата. Попытки поймать изменение какого-либо счётчика, например, сканирования, провалились. Ничего не менялось. Появилось лёгкое подозрение, что необходимых данных через SNMP просто не получить.
Но если значения есть, значит это кому-нибудь нужно! Оказывается, у Kyocera есть своё собственное ПО для мониторинга и управления их устройствами — KYOCERA Net Viewer. [2]
Заполните анкетку, введите емейл, получите письмо с одноразовой ссылкой… Знать бы, зачем такие сложности, ну да ладно.
Программа достаточно проста и показывает нам те же цифры, что и в web мордочке. А если она их как то получает, значит и мы можем.
Первым на ум мне пришёл комбаин Wireshark, вот им я и воспользуюсь.
И тут странность номер два: кроме обмена SNMP трафиком у нас тут есть и HTTP!

Дальнейшее расследование приводит нам с к тому, что принтер и ПО общаются XML'ками через SOAP. [3]
Принцип предельно простой: POST запросом на принтер отправляется специальная XML, содержащая запрос. В нашем случае запросом является «ALL_COUNTER», то есть мы желаем получить все счётчики. Принтер может в ответ прислать показания счётчиков или сообщение «DEEP_SLEEP_NOW_ERROR», что понятно из без перевода. Будить принтер как-то по особенному совсем не надо. Он уже проснулся от нашего запроса, просто посылаем запрос ещё раз и получаем XML со счётчиками.
Все значения указаны в виде <параметр>число</параметр>. Делаем небольшой парсер и получаем скрипт [4], выдающий нам необходимые цифры в удобном виде.
Для M2535dn [5] мне были интересны следующие счётчики:
Разница показаний счётчиков accounting_scan_copy_counter и accounting_print_black_and_white_copy_counter объясняется просто: было сделано 2 копии одного оригинала. Со сканера в копир отправилась одна страничка, а принтер из копира распечатал две. Помимо этих счётчиков можно получить ещё много чего интересного: количество напечатаных а4, а5, letter и пр. страниц, количество страниц, распечатанных с использованием дуплекса, копированных в режимах 2в1 и 4в1, для цветных устройств можно получать количество ц/б и цветных копий отдельно. Счётчик device_life_counter принтер отдаёт нам по SNMP, но ни в веб интерфейсе, ни в специальном ПО это значение не отображается. Я не очень понял значение этого параметра. Вчера он отличался от общего счётчика на 3, сегодня уже на 8. Жду ваших идей в комментариях.
Теперь необходимо подключить это к нашему мониторингу в Zabbix. Мы будем использовать внешнюю проверку. [6] Скрипт необходимо положить в директорию ExternalScripts [7], дать права на выполнение и немного увеличить таймаут для запускаемых скриптов, по умолчанию он равен 3s:
user@host:~# cat /etc/zabbix/zabbix_server.conf | grep Timeout | grep -v ^#
Timeout=10
Теперь осталось сообразить новый шаблон и наполнить его элементами данных:

Маленькое замечание: не стоит выставлять слишком маленький интервал проверки, это может привести к снижению производительности системы мониторинга в целом. Применяем к узлам сети, настраиваем графики, отчёты и дальше по настроению.
На этом все, всем спокойной пятницы и отличных выходных!
P.S. Не все мы идеальны и об ошибках в тексте просьба уведомлять в ЛС.
Автор: coolSever
Источник [8]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/zabbix/64824
Ссылки в тексте:
[1] MIB : http://ru.wikipedia.org/wiki/Management_Information_Base
[2] KYOCERA Net Viewer.: http://www.kyoceradocumentsolutions.eu/index/document_solutions/networkdevicemanagement/KYOCERA_Net_Viewer.html
[3] SOAP.: http://ru.wikipedia.org/wiki/SOAP
[4] скрипт: http://pastebin.com/s6mxds4L
[5] M2535dn: http://www.kyoceradocumentsolutions.eu/index/products/product/ecosysm2535dn.html
[6] внешнюю проверку.: https://www.zabbix.com/documentation/ru/2.0/manual/config/items/itemtypes/external
[7] ExternalScripts: https://www.zabbix.com/documentation/ru/2.0/manual/appendix/config/zabbix_server
[8] Источник: http://habrahabr.ru/post/229539/
Нажмите здесь для печати.