В рамках внутренней автоматизации и упрощения администрирования сетевых принтеров, я разработал Telegram-бота, который позволяет получать информацию о состоянии принтеров KYOCERA через SNMP.
📌 Основной функционал:
- Вывод информации о принтерах при команде /start.
- Настройка порога уведомления через команду /set_level.
- Фоновая проверка уровней тонера каждые 15 минут.
- Уведомления о низком уровне тонера всем пользователям, запустившим бота.
🧱 Стек технологий:
- Python — основной язык программирования.
- python-telegram-bot — для взаимодействия с Telegram API.
- pysnmp — для получения данных через SNMP.
- JSON — для хранения списка принтеров.
🧠 Философия KISS
При разработке я придерживался принципа KISS: не нужно усложнять. Бот не хранит данные в базе, не имеет админ-панели — только команды /start и /set_level. Это делает его надёжным и простым в поддержке.
🧪 Пару слов про SNMP
SNMP — это такой протокол, с помощью которого можно получать информацию от сетевых устройств. В нашем случае — уровень тонера. Для этого используются OID:
* 1.3.6.1.2.1.1.6.0 — имя принтера.
* 1.3.6.1.2.1.43.11.1.1.9.1.1 — текущий уровень.
* 1.3.6.1.2.1.43.11.1.1.8.1.1 — максимальный уровень.
snmpget -v 2c -c public 192.168.0.233 1.3.6.1.2.1.1.6.0
🧩 Итог
Бот получился простой, работает стабильно, уведомления приходят своевременно. Он не решает все проблемы, но экономит время. А ещё его легко развернуть, поддерживать и адаптировать под себя.
🚀 Как использовать
- Скачать:
git clone https://gitverse.ru/suvorinov/kyocera_monitor.git
-
Заполните .env:
BOT_TOKEN — токен вашего бота. -
Отредактируйте printers.json.
-
Выполните команду:
make run
- Просмотр логов:
make logs
Read more: