Snmp


В сети много инстркций как установить сервер монитринга The Dude от Mikrotik. Сейчас пакет сервера мониторинга выпускают только для RouterOS. Я использовал версию 4.0 для Windows.

image

Здесь я хотел рассмотреть, как сделать мониторинг принтеров в сети: отслеживать уровень тонера, если он закончился вывести уведомление. Запускаем:



Нажимаем подключиться:



Нажимаем добавить устройство(красный плюс) и вводим ip-адрес принтера:



На следующем шаге нажимаем обнаружение, он находит все доступные зонды, нажимаем закончить:



Два раза нажимаем по появившемуся значку, открываются настройки, тип выбираем «принтер», и нажимаем «ок»:



Правой кнопкой нажимаем по значку и выбираем вид:



В поле метка прописываем OID’ы:
[Device.Name] – имя устройства
[oid(«1.3.6.1.2.1.43.5.1.1.16.1»)] – модель принтера
[oid(«1.3.6.1.2.1.43.11.1.1.6.1.1»)] – тип картриджа
[oid(«1.3.6.1.2.1.43.11.1.1.9.1.1»)] – уровень тонера
Во вкладке изображение можно прикрепить свою иконку:



Выходим, получается так:



Не на всех принтерах oid(«1.3.6.1.2.1.43.11.1.1.9.1.1») показывает сразу уровень тонера, на некоторых этот параметр показывает сколько осталось напечатать страниц. Чтобы рассчитать уровень тонера нужно разделить сколько осталось напечатать страниц на общий ресурс картриджа и умножить на 100. Для этого снова выбираем «вид», потом Functions:



Нажимаем создать новую функцию(красный плюс):



Я назвал функцию toner:



В поле код пишем формулу и сохраняем:

round(100*oid("1.3.6.1.2.1.43.11.1.1.9.1.1")/oid("1.3.6.1.2.1.43.11.1.1.8.1.1"))

В метке заменяем [oid(«1.3.6.1.2.1.43.11.1.1.9.1.1»)] на вызов функции [toner()]



Выходим. Получается так:



Чтобы узнать нужные oid и прописать нужные параметры можно использовать функцию snmp walk, правая кнопка на принтере – инструменты обход Snmp:



Выдается дерево объектов принтера:



Нажимаем правой кнопкой на нужном нам и нажимаем копировать OID.

Уведомления


Теперь настроим уведомления по событию (картридж закончился). Открываем принтер, переходим на вкладку службы, нажимаем плюсик(добавить новую службу):



В поле зонд нажимаем три точки чтобы выбрать нужный зонд:



Создадим свой собственный зонд, нажмем красный плюс:



Я назвал его toner, тип выбираем SNMP, агент по умолчанию, профиль Snmp по умолчанию,
Oid прописываем который отвечает за уровень тонера 1.3.6.1.2.1.43.11.1.1.9.1.1, тип Oid Integer, метод сравнения >= 1



Сохраняем и в поле зонд выбираем только что созданный toner, во вкладке оповещения можно настроить какие оповещения мы хотим получать и сохраняем:



Для демонстрации я выбрал что уровень тонера не должен быть ниже 80, принтер окрасился в красный цвет:



Комментарии (11)


  1. Chronas
    21.08.2019 06:49

    Мои «5 копеек»:
    Для контроля количества тонера во времени, лучше создать зонд Function
    image
    И получить в результате
    image
    Или можно контролировать все картриджи по цветам

    имя: printer_magenta
    доступность: oid_raw("iso.3.6.1.2.1.43.11.1.1.8.1.4") > 0
    ошибка: if(oid_raw("iso.3.6.1.2.1.43.11.1.1.9.1.4") * 100 / oid_raw("iso.3.6.1.2.1.43.11.1.1.8.1.4") > 5, "", concatenate("Low toner = ", oid_raw("iso.3.6.1.2.1.43.11.1.1.9.1.4") * 100 / oid_raw("iso.3.6.1.2.1.43.11.1.1.8.1.4"), "%"))
    значение: oid_raw("iso.3.6.1.2.1.43.11.1.1.9.1.4") * 100 / oid_raw("iso.3.6.1.2.1.43.11.1.1.8.1.4")
    единица измерения: %

    image
    OID'ы во всех принтерах одинаковые
    black: iso.3.6.1.2.1.43.11.1.1.9.1.1
    yellow: iso.3.6.1.2.1.43.11.1.1.9.1.2
    cyan: iso.3.6.1.2.1.43.11.1.1.9.1.3
    magenta: iso.3.6.1.2.1.43.11.1.1.9.1.4

    P.S. обозначения типа «iso» в OID'ах можно использовать только при наличии MIB файлов c описанием значений


  1. DaemonGloom
    21.08.2019 07:22

    На всякий случай: dude можно поставить в виртуальную машину (mikrotik chr). Если у вас не сотни/тысячи принтеров, которые нужно постоянно опрашивать по snmp каждые несколько секунд, то вам хватит бесплатной версии (ограничение сетевого интерфейса в один мегабит). За пару тысяч можно взять гигабитную лицензию. Перед покупкой лицензии на высокую скорость интерфейсов можно воспользоваться триалом на 60 дней.
    Ну и сам mikrotik chr — это полноценный программный роутер с полным функционалом RouterOS.


    1. NRinat
      21.08.2019 08:22

      Ну и триал можно продлевать каждые 60 дней. Сделать это возможно даже скриптом, чтобы не заходить на сам девайс.
      Спрашивали про такой «баг» у коллег из Микротика, они в ответ просто улыбаются.


      1. DaemonGloom
        21.08.2019 09:04

        Вообще, если не требуются обновления RouterOS, то триал можно даже не сбрасывать — всё и так будет работать. С другой стороны — это не такая уж и большая сумма за хороший софт.


        1. NRinat
          21.08.2019 14:55

          Да, согласен! Микротики должны бы стоить больше, учитывая качество софта.


    1. skovpen
      21.08.2019 22:26

      на виртуальную машину, можно не CHR, а обычную X86 из ISO CD Image поставить. Там лицензия на мегабиты не требуется.


  1. VGusev2007
    21.08.2019 14:23

    Очень тупой вопрос можно задать? К чему мириться с рядом ограничений (в бесплатной версии), если можно поставить zabbix. Или в zabbix такой же функционал долго пилить придется?


    1. borisdenis
      21.08.2019 14:59

      zabbix надо куда то ставить, а если у вас уже есть работающая железка (или виртуалка) то зачем что то придумывать и плодить машины?


      1. VGusev2007
        21.08.2019 16:09

        Ну то есть, никаких более веских причин на использование этой балалайки в общем то нету?


        1. borisdenis
          21.08.2019 16:59

          большой плюс (для меня) в такой балалайке это если у вас принтер (к примеру) находится в сети к которой прямого доступа нет, то можно сказать что получи данные с него используя вон тот микротик. И всё будет отлично.


          1. VGusev2007
            21.08.2019 17:26

            О..! Спасибо! Теперь понятна идея!