Home » Zabbix » Мониторинг принтеров HP, Kyocera, Brother через snmp в zabbix

Мониторинг принтеров HP, Kyocera, Brother через snmp в zabbix

Расскажу о простом и эффективном способе наблюдения за сетевыми принтерами в организации. Речь пойдет о настройке мониторинга за состоянием принтеров HP, Kyocera, Brother через snmp с помощью Zabbix. Собирать буду значения напечатанных страниц за все время, состояние тонера, название картриджа и серийный номер принтера.

Введение

Практически все современные принтеры умеют отдавать данные о своем состоянии через протокол snmp. Система мониторинга Zabbix позволяет без проблем собирать эти данные, хранить, настраивать оповещения на различные события. В своем примере я буду отправлять уведомление, если уровень тонера в картридже будет опускаться ниже 10%.

Казалось бы актуальный запрос, но в сети я не нашел готового решения по этой теме. Есть всякие обсуждения, просьбы о помощи с настройкой, решения проблем. Но вот так, чтобы все было в одном месте мне не попалось. Постараюсь восполнить этот пробел. Самая большая проблема здесь — найти актуальные MIB и OID для собираемых значений. Если выполнить сбор всех доступных метрик по snmp, к примеру, с принтера HP, вы получите более 1000 различных метрик! Найти в этом то, что вам действительно нужно непростая задача. Я расскажу о тех метриках, что интересовали меня. Значения этих OID я узнал.

Я буду собирать следующие метрики:

  • Сколько принтер напечатал всего страниц за свою жизнь.
  • Максимальное количество страниц, которые принтер напечатает на текущем картридже.
  • Количество страниц, которые принтер уже напечатал на текущем картридже.
  • Модель картриджа.
  • Серийный номер принтера.

Если у вас еще нет своего сервера для мониторинга, то рекомендую материалы на эту тему. Для тех, кто предпочитает систему CentOS:

  1. Установка CentOS 7.
  2. Настройка CentOS 7.
  3. Установка и настройка zabbix сервера.

То же самое на Debian 9, если предпочитаете его:

  1. Установка Debian 9.
  2. Базовая настройка Debian 9.
  3. Установка и настройка zabbix на debian.

Приступаем к настройке.

Поиск необходимых OID

Для начала возьмем какой-нибудь принтер и посмотрим, что он нам будет отдавать по snmp. Я для примера возьму принтер HP LaserJet Pro MFP M426fdn (ip адрес 192.168.88.20). По-умолчанию у принтеров HP разрешен просмотр параметров по snmp.

Включение snmp на принтере

Идем в консоль linux и посмотрим с помощью snmpwalk метрики принтера по snmp. Для этого установим необходимый пакет.

# yum install net-snmp-utils

Теперь посмотрим метрики принтера:

# snmpwalk -v 2c -c public 192.168.88.20

В консоль вылетит целая куча строк, которые неудобно просматривать. Направим вывод в текстовый файл и внимательно посмотрим на него.

# snmpwalk -v 2c -c public 192.168.88.20 > ~/snmp.txt

Я вас томить не буду, а сразу укажу на строки, которые нас интересуют:

SNMPv2-SMI::mib-2.43.10.2.1.4.1.1 = Counter32: 8909 Всего напечатано страниц
SNMPv2-SMI::mib-2.43.11.1.1.6.1.1 = STRING: «Black Cartridge HP CF226X» Название картриджа
SNMPv2-SMI::mib-2.43.5.1.1.17.1 = STRING: «PHB8K3H0P1» Серийный номер
SNMPv2-SMI::mib-2.43.11.1.1.9.1.1 = INTEGER: 85 Уровень тонера

Возможно, вас еще заинтересует параметр mib-2.43.5.1.1.16.1 — название принтера. Мне лично это не нужно, но если все выводить в сводную таблицу, то может пригодиться. Так же обращаю внимание на параметр mib-2.43.11.1.1.8.1.1. Обычно он показывает максимальное число страниц, которые можно напечатать с текущего картриджа.

Мне приходилось сталкиваться с двумя различными ситуациями в показаниях уровня тонера:

  1. Уровень тонера выводится сразу в % в 2.43.11.1.1.9.1.1. Параметр максимального числа страниц с текущего картриджа указан как 100% в 2.43.11.1.1.8.1.1.
  2. Уровень тонера в 2.43.11.1.1.9.1.1 показывает количество напечатанных страниц с текущего картриджа. Второй параметр 2.43.11.1.1.8.1.1 показывает максимальное количество страниц, которое может быть напечатано текущим картриджем. Тогда уровень тонера в % нужно считать по формуле 100-100*(mib-2.43.11.1.1.9.1.1)/(mib-2.43.11.1.1.8.1.1).

Первая ситуация мне попалась в принтерах HP, вторая в Kyocera и Brother. Из-за этого пришлось сделать 3 разных шаблона под каждого производителя принтеров. Все остальные параметры у них совпали.

В принтерах Brother mib об уровне тонера были немного другие, такие же как у HP и Kyocera, но отличались на последнюю цифру — 2.43.11.1.1.8.1.2 и 2.43.11.1.1.9.1.2 соответственно. Я не знаю, с чем это связано, но видел подобную ситуацию у других людей. Кто-то из-за этого создавал правила автообнаружения, чтобы точно вычислить последнюю цифру. Мне не пришлось этого делать. Достаточно было создать разные шаблоны для каждого производителя. Все принтеры попали в эти шаблоны на 100%.

Отдельная история с цветными принтерами. Там несколько картриджей и надо внимательно смотреть на их номера. Но тоже не сложно, просто смещение будет на одну единицу, все картриджи будут идти по порядку.

Настройка мониторинга принтеров по snmp

На самом сервере мониторинга настраивать особо нечего. Вам достаточно будет взять мои готовые шаблоны, убедиться что MIB и OID совпадают с вашими принтерами и добавить сами принтеры в мониторинг, не забыв указать у них snmp интерфейс.

Printer_HP.xml Printer_Kyocera.xml Printer_Brother.xml

Все шаблоны экспортированы с версии сервера Zabbix 3.4. На других версиях я не проверял, но думаю, что работать будет, так как никаких специфичных вещей в шаблонах нет. Обычные snmp проверки.

Настройка snmp интерфейса в zabbix

Вот пример одного элемента для шаблона принтеров HP.

Элемент данных "Всего напечатано страниц"

А вот пример вычисляемого значения уровня тонера для шаблона Kyocera.

Элемент данных "Уровень тонера"

Пример триггера, который присутствует во всех шаблонах.

Оповещение о низком уровне тонера

Всю информацию о принтерах можно вывести на Dashboard примерно в таком виде:

Сводная таблица принтеров в zabbix

Интервалы опроса итемов в шаблонах:

  • Всего напечатано страниц – 1 час
  • Напечатано на текущем тонере – 10 мин
  • Объем тонера – 10 мин
  • Уровень тонера – 10 мин
  • Название картриджа – 1 день
  • Серийный номер – 1 день

На момент отладки рекомендую поставить эти значения 1 минута.

Для элемента данных «Уровень тонера» указан тип данных «Числовой», чтобы работал триггер и сравнивал значение. Если у вас какие-то ошибки с тонером, например из-за того, что не новый использовали, а заправляли старый, то значение будет приходить -2 или -3 с типом «Строка». Итем станет неактивным с ошибкой:

Value "-2" of type "string" is not suitable for value type "Numeric (unsigned)"

С этим уже ничего не поделать. Можете сделать для таких принтеров отдельный шаблон и изменить тип итема с числового на строковый. Так вы хотя бы будете получать значение -2, а не ошибку итема.

На этом у меня все по данной теме. Добавляйте шаблоны, проверяйте и пользуйтесь.

Заключение

Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!

Такое простое решение, которое на деле оказалось очень полезным. Настраивается быстро, вывод информации наглядный. Возможно есть еще какие-то любопытные и полезные значения, которые можно брать по snmp. Мне просто в голову больше ничего не пришло. Может там есть что-то, что подскажет или намекнет на предстоящий ремонт. Например, ресурс печки или еще какого-нибудь элемента. На МФУ я видел информацию о сканированных страницах, о количестве сделанных копий. Я не придумал, зачем это может быть полезно. Если есть замечания и рекомендации по этой части, прошу делиться в комментариях.

Помогла статья? Есть возможность отблагодарить автора

7 комментариев

  1. Валерий

    Спасибо за инфу! а для Canon принтеров есть шаблон?
    имею Zabbix 3.4.14 ? что-то не нашел..:)

    • Zerox

      У меня нету, но возможно подойдет один из тех, что я представил. Сейчас настраиваю мониторинг принтеров Ricoh, подошел шаблон от HP. Там же все одинаковое, максимум надо OID подправить. Их можно все запросить из принтера и по аналогии найти необходимые.

  2. Александр

    Если не сложно, то какие SNMP OID использовали помимо приведенного в примере?
    Например, у меня HP425MFP на 1.3.6.1.2.1.25.3.2.1.3.1 выводит название принтера. Другие сам пока еще ищу.

    • Zerox

      Использовал только то, что в примере. Я не придумал, какая еще информация может быть полезной.

  3. В шаблоне Kyocera почему то неправильно формируется значение тонера. При только что установленном значении полного картриджа значение тонера равно 1% и соответственно срабатывает тригер на малое количество.

    • Нужно формулу уровня тонера 100-100*(last(«mib-2.43.11.1.1.9.1.1»)/last(«mib-2.43.11.1.1.8.1.1»)) привести к виду 100*(last(«mib-2.43.11.1.1.9.1.1»)/last(«mib-2.43.11.1.1.8.1.1»)) тогда корректные значения будут.

Добавить комментарий

Ваш e-mail не будет опубликован.

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.