🛠 Как я создал Telegram-бота для мониторинга принтеров

Олег Суворинов Sat 14 October 2023 10:00 1 мин

В рамках внутренней автоматизации и упрощения администрирования сетевых принтеров, я разработал 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

🧩 Итог


Бот получился простой, работает стабильно, уведомления приходят своевременно. Он не решает все проблемы, но экономит время. А ещё его легко развернуть, поддерживать и адаптировать под себя.

🚀 Как использовать


  1. Скачать:
    git clone https://gitverse.ru/suvorinov/kyocera_monitor.git
  1. Заполните .env:
    BOT_TOKEN — токен вашего бота.

  2. Отредактируйте printers.json.

  3. Выполните команду:

    make run
  1. Просмотр логов:
    make logs

Read more:

Related posts: