03.03.2015

Dude и SNMP

Про The Dude я уже писал. Отличная система мониторинга для сетей, построенных на базе оборудования Mikrotik. Столкнулся со следующей проблемой: хочу получить графики пропускной способности интерфейсов коммутаторов не строя при этом связи между портом коммутатора и конечным устройством на схеме (ну не надо мне перегружать карту клиентскими компами/телефонами). Что-то подобное Dude организовать может, но в ходе чтения различных материалов и обсуждений конкретного решения я не нашел и пришлось копать дальше в тему. Для нетерпеливых: ответа я пока не нашел.

Итак, мы можем опросить устройство по SNMP и произвести какие-либо манипуляции с полученными данными средствами самой дудки. Стандартный SNMP позволяет нам увидеть следующие параметры:
ifSpeed1.3.6.1.2.1.2.2.1.5Текущая скорость интерфейса в битах за секунду.
ifInOctets1.3.6.1.2.1.2.2.1.10Полное число полученных байтов, включая символы заголовков
ifOutOctets1.3.6.1.2.1.2.2.1.16Полное количество отправленных октетов с интерфейса, включая символы заголовков.

Сначала я думал, что первая строчка этой таблицы спасет меня. Но нет - она показывает скорость, в которую установлен интерфейс (10/100/1000 Мб/с). Соответственно, ковырять придется второй и третий параметры. Вычислить скорость, исходя из полученных данных можно так: (ifInOctets(time1) - ifInOctets(time2)) / (time2 - time1)
Но вот проблема: куда записать текущее значение полученных байтов, чтобы потом вычесть одно из другого. Тут должны помочь функции, встроенные в Dude. Но использование переменных я в них не нашел. Поэтому откладываю эту задачку на неопределенное время. 
На форуме предлагают решение для The Dude 3.6, но в 4 версии оно не работает. Ссылки, которые дали информацию для размышлений: 1, 2, 3, 4, 5

5 комментариев:

  1. Анонимный02.04.2016, 13:04

    Не надо там ничего записывать (ifInOctets(time1) - ifInOctets(time2)) вычисляется как (diff32(oid("1.3.6.1.2.1.2.2.1.10.x")) и делить результат надо на время опроса метки, если в метку помещаем.

    ОтветитьУдалить
    Ответы
    1. Анонимный02.04.2016, 15:34

      Интересно, какой смысл в графиках пропускной способности интерфейсов коммутаторов? Если интерфейс 100 Мбит, значит и пропускная способность у него 100 Мбит в идеальных условиях. Другое дело, что конкретно там проходит меньше. Например, по EPL-каналу подают 45 Мбит, значит на интерфейсе 100 никогда не будет. Интереснее получать результат по ошибкам на интерфейсах, чтобы видеть и решать проблемы, которые влияют на пропускную способность. Правда и тут интереснее это не на коммутаторах, а на интерфейсах маршрутизаторов. В принципе задача по ошибкам решается.

      Удалить
    2. Наверное, я неправильно выразил. Необходимо мерить не пропускную способность интерфейса , а количество трафика, проходящего по нему. Тогда можно будет увидеть аномальное количество трафика и делать какие-то выводы, основываясь на этом.

      Удалить
  2. здравствуйте! подскажите пожалуйста, в торопях, настраивая схему мониторинга я случайно в поле "имя" ввел значение [Device.Name], я так понял что задал программе цикл. могли бы вы мне помочь исправить эту проблему, напишите пожалуйста на адрес atomicpel@yandex.ru

    ОтветитьУдалить
    Ответы
    1. Проблему решили, общаясь по почте. Оказывается, это глюк The Dude. При последующих запусках клиента система сразу зависает. Лечится удалением девайса с некорректным именем из веб-интерфейса из вкладки devices (не Map!). Саппорт микротика сообщает, что баг в версии The Dude 4.0beta3 - ну а что мы хотим от беты. В других версиях не тестировалось.
      Баг проявляется только в клиенте, запущенном на той же машине, что и сервер. С клиента на другой машине повторить не удалось.

      Удалить