Как устроен SNMP и что Принтум получает от принтеров
Кратко
SNMP (Simple Network Management Protocol) — протокол опроса сетевых устройств. Принтум использует SNMP для получения данных от принтеров и МФУ без установки агентов на устройства.
Как устроена информация в принтере
Каждый принтер содержит базу данных объектов — MIB (Management Information Base). Каждый объект в MIB имеет уникальный адрес — OID (Object Identifier).
OID — это числовой путь, например: 1.3.6.1.2.1.43.11.1.1.9.1.1
Структура OID иерархична — как путь в файловой системе:
1.3.6.1 — интернет
1.3.6.1.2 — management
1.3.6.1.2.1 — mib-2 (стандартные объекты)
1.3.6.1.2.1.43 — Printer MIB (RFC 3805)
1.3.6.1.2.1.43.11 — prtMarker (данные о расходных материалах)
Что можно получить по OID
| Данные | OID-ветка | Примечание |
|---|---|---|
| Модель устройства | 1.3.6.1.2.1.25.3.2.1.3 | hrDeviceDescr |
| Серийный номер | 1.3.6.1.2.1.43.5.1.1.17 | prtGeneralSerialNumber |
| Счётчик отпечатков | 1.3.6.1.2.1.43.10.2.1.4 | prtMarkerLifeCount |
| Оставшийся ресурс тонера | 1.3.6.1.2.1.43.11.1.1.9 | prtMarkerSuppliesLevel |
| Максимальный ресурс | 1.3.6.1.2.1.43.11.1.1.8 | prtMarkerSuppliesMaxCapacity |
| Статус устройства | 1.3.6.1.2.1.25.3.5.1.1 | hrPrinterStatus |
| IP-адрес | 1.3.6.1.2.1.4.20.1.1 | ipAdEntAddr |
Версии SNMP
| Версия | Аутентификация | Когда использовать |
|---|---|---|
| SNMPv1 | Community string (открытый текст) | Старые устройства |
| SNMPv2c | Community string (открытый текст) | Большинство современных устройств |
| SNMPv3 | Логин + пароль + шифрование | Повышенные требования к безопасности |
Принтум поддерживает SNMPv1 и SNMPv2c. Community string по умолчанию: public.
Почему разные вендоры показывают разные данные
Стандарт Printer MIB (RFC 3805) описывает общую структуру. Но производители реализуют его по-своему:
- Одни передают оставшийся ресурс в процентах.
- Другие — в страницах.
- Третьи не передают вообще и возвращают
-1или0. - Некоторые устройства передают некорректные значения (
253,254).
Принтум компенсирует это:
- Если устройство передаёт данные — использует их напрямую.
- Если не передаёт — рассчитывает самостоятельно по счётчику отпечатков.
- Расчётные значения помечаются символом *.
Как проверить SNMP вручную
Команда snmpwalk позволяет просмотреть все данные устройства:
snmpwalk -v 2c -c public <ip-адрес-принтера>
Получить конкретный OID:
snmpget -v 2c -c public <ip> 1.3.6.1.2.1.43.10.2.1.4.1.1
Это полезно при диагностике — если snmpwalk не отвечает, устройство не будет обнаружено Сетевым агентом.
Связанные страницы
Как работает мониторинг устройств в Принтум