Меня попросили получить общее количество страниц для более чем 100 принтеров, которые у нас есть на работе. Все они HP Laser или Business Jet, и подавляющее большинство из них подключены через какую-либо сетевую карту/коммутатор HP JetDirect. После многих часов ввода IP-адресов и копирования и вставки соответствующих цифр в Excel меня теперь просят делать это еженедельно. Это навело меня на мысль, что должен быть более простой способ, как ИТ-специалист я наверняка могу придумать какой-нибудь способ сэкономить время, чтобы решить эту проблему.
Достаточно сказать, что я не чувствую себя профессионалом после целого дня попыток заставить SNMP работать у меня!
Насколько я понимаю, первым делом нужно включить SNMP на принтере. Готово. Далее мне понадобится что-то для запроса бита SNMP. Я решил использовать открытый исходный код и бесплатно, и кто-то здесь порекомендовал net-snmp как достойный инструмент (я бы хотел просто добавить принтеры как узлы в SolarWinds, но у нас, по-видимому, немного туго с лицензиями). Далее мне нужно имя MIB. Я считаю, что для этого в HP-LASERJET-COMMON-MIB есть правильная информация. Загрузил это и добавил в net-snmp. Теперь мне нужен OID, который, как я полагаю, после долгих поисков — это printer-media-simplex-count (у нас нет дуплексных принтеров, которые нас интересуют по крайней мере). Выполнение следующей команды дает следующий деморализующий вывод:
snmpget -v 2c -c public 10.168.5.1 HP-LASERJET-COMMON-MIB:.1.3.6.1.2.1.1.16.1.1.1
(OID был получен в результате выполнения:
snmptranslate -IR -On printed-media-simplex-count
Unlinked OID in HP-LASERJET-COMMON-MIB: hp ::= { enterprises 11 }
Undefined identifier: enterprises near line 3 of C:/usr/share/snmp/mibs/HP-LASER
JET-COMMON-MIB..txt
.1.3.6.1.2.1.1.16.1.1.1 )
Unlinked OID in HP-LASERJET-COMMON-MIB: hp ::= { enterprises 11 }
Undefined identifier: enterprises near line 3 of C:/usr/share/snmp/mibs/HP-LASER
JET-COMMON-MIB..txt
HP-LASERJET-COMMON-MIB:.1.3.6.1.2.1.1.16.1.1.1:
Я что, совсем не туда лаю? Моей целью было написать скрипт для вывода в файл всех IP-адресов принтеров, а затем засунуть его в Excel, чтобы мои господа и хозяева могли переварить его на досуге. У меня такое чувство, что я использую либо неправильный MIB, либо неправильный OID из указанного MIB (или и то, и другое). Есть ли у кого-нибудь какие-нибудь указания по этому поводу? Или мне следует сдаться и вернуться к навигации по каждой веб-странице принтеров по отдельности (надеюсь, что нет).
решение1
Ну, это довольно странно — я думал, что эта информация предоставляется через SNMP. Однако быстрый snmpwalk одного из наших P4515 показал только количество страниц, напечатанных с установленным в данный момент термоэлементом. Чтобы просмотреть всю информацию, предоставленную через snmp, я сделал следующее:
snmpwalk -Cc -v 1 -c public ipaddress
Если OID для напечатанных страниц на установленном в данный момент термоблоке имеет какое-либо значение, то он выглядит следующим образом:
2.43.10.2.1.4.1.1
решение2
Стандартное «общее количество страниц» составляет 1.3.6.1.2.1.43.10.2.1.4.1.1
Различные модели используют разные OID для таких сведений, как количество отправленных по факсу/скопированных/напечатанных/двусторонней печати/цветной/черно-белой печати/...
решение3
Боюсь, я не смогу помочь с MIB, но вы могли бы использовать PowerShell, чтобы облегчить себе задачу по извлечению значений с веб-страницы на принтере. Должно быть, можно изменить пример ниже, чтобы сделать то, что вам нужно:
В Perl/Python также имеются модули веб-скрапинга, если это возможно.