Получение метрик в Zabbix 7.4 с принтеров Kyocera и HP
Введене
На только что установленный Zabbix 7.4 необходимо получать метрики с принтеров организации. Нужно мониторить доступность принтеров (они все сетевые), состояние и запас картриджей, вести статистику по общему кол-ву отпечатанных страниц. По накомплению этой статистики можно как-то приблизительно прогнозировать расход картриджей или бумаги и их закупку. Да и просто познакомимся с протоколом SNMP
SNMP (Simple Network Management Protocol) — стандартный интернет-протокол для управления устройствами в IP-сетях. Работает на прикладном уровне модели TCP/IP.
Информация в SNMP организована в виде древовидной структуры, называемой MIB (Management Information Base). Каждый параметр имеет свой уникальный идентификатор — OID (Object Identifier). Например: 1.3.6.1.2.1.43.10.2.1.4.1.1 на Kyocera хранит информацию об общем кол-ве отпечатанных страниц. Или например так выглядит информация о поддерживаемых моделях картриджей:
iso.3.6.1.2.1.43.11.1.1.6.1.1 = STRING: "TK-8365C" iso.3.6.1.2.1.43.11.1.1.6.1.2 = STRING: "TK-8365M" iso.3.6.1.2.1.43.11.1.1.6.1.3 = STRING: "TK-8365Y" iso.3.6.1.2.1.43.11.1.1.6.1.4 = STRING: "TK-8365K"
Подготовка сервера Zabbix
Для того, чтобы мы могли получать в Zabbix данные по SNMP протоколу, нужно в самой OS установить соответствующий клиент:
sudo apt update sudo apt install snmp snmp-mibs-downloader snmpwalk -v
Получаем метрики с принтера Kyocera
Чуть пиже я прикреплю ссылку на получившийся у меня шаблон, но а пока опишу путь как я пришёл к нему.
В Windows нужно в программах и компонентах установить SNMP клиент. По идеи он там должен был бы быть, но в текущей редакции Windows 11 у меня его не было, так что я проще и быстрее сделал это через bash и тут приходит на помощь WSL:
snmpwalk -v 2c -c public 192.168.0.20
А если, как я, вы используете WSL, то удобнее всего вывод команды получить сразу себе в виде файла.
snmpwalk -v 2c -c public 192.168.0.20 > /mnt/c/Users/USERNAME/Documents/snmp_output.txt
Отсюда я нашёл необходимые значения OID'ов, сравнивая результаты с тем, что нарисовано в WEB морде принтера Kyocera.
Общее кол-во напечатанных страниц: iso.3.6.1.2.1.43.10.2.1.4.1.1 = Counter32: 35587
Модель картриджа:
Cyan: iso.3.6.1.2.1.43.11.1.1.6.1.1 = STRING: "TK-8365C"
Magenta: iso.3.6.1.2.1.43.11.1.1.6.1.2 = STRING: "TK-8365M"
Yellow: iso.3.6.1.2.1.43.11.1.1.6.1.3 = STRING: "TK-8365Y"
Black: iso.3.6.1.2.1.43.11.1.1.6.1.4 = STRING: "TK-8365K"
Текущее состояние тонера
Cyan: iso.3.6.1.2.1.43.11.1.1.9.1.1 = INTEGER: 1680
Magenta: iso.3.6.1.2.1.43.11.1.1.9.1.2 = INTEGER: 600
Yellow: iso.3.6.1.2.1.43.11.1.1.9.1.3 = INTEGER: 9600
Black: iso.3.6.1.2.1.43.11.1.1.9.1.4 = INTEGER: 3750
Максимальная вместимость:
Cyan: iso.3.6.1.2.1.43.11.1.1.8.1.1 = INTEGER: 12000
Magenta: iso.3.6.1.2.1.43.11.1.1.8.1.2 = INTEGER: 12000
Yellow: iso.3.6.1.2.1.43.11.1.1.8.1.3 = INTEGER: 12000
Black: iso.3.6.1.2.1.43.11.1.1.8.1.4 = INTEGER: 25000
Ещё в чем прикол — у принтеров Kyocera не пишется в процентном соотношении остаток тонера. Чтобы получить процентное соотношение нужно Текущее состояние тонера/Максимальную вместимость и умножать на 100.
На примере картриджа Cyan:
1680/12000*100 = 14%
Отдельно то как собирать шаблоны для Zabbix я тут не буду писать, если у вас отличаются OID на ваших принтерах вам не составит труда подправить их в XML файле шаблона.
Сам шаблон: zbx_kyocera_color для цветного МФУ Kyocera
Получаем метрики с принтера HP
Тут всё аналогично, разве что OID отличаются и, как я уже писал ранее — остаток тонера счиатется сразу в процентах.
Сам шаблон: zbx_hp_color для цветного МФУ HP
Добавляем шаблоны принтеров в Zabbix
В Data collection 👉 Templates 👉 Import грузим оба наших шаблона
Добавление SNMP хоста Принтера в Zabbix
При добавление хоста в Monitoring 👉 Hosts 👉 Create host под Host groups ниже есть раздел Interfaces и там добавляем интрефейс через add выбирав тип интерфейса SNMP, далее указываем адрес и впринципе всё.
После уже настраиваем dashboard и тригерры как вам необходимо, или как вы умеете 😆.