Skip to main content
Zabbix and snmp

Zabbix и snmp на примере коммутатора D’link

SNMP — специальный протокол 7го уровня OSI, специально разработанный для проверки функционирования сетевых устройств, таких как маршрутизаторы, коммутаторы, принтеры, серверы и другое. Является очень удобным средством для получения информации с устройств, особенно если ваша система поддерживает данный тип мониторинга.Углубляться в тему SNMP мы не будем, более подробно можно почитать тут и тут. И так, нам понадобится немного знаний из предыдущих статей, немного snmp MIB’s и терпение, ведь будет довольно большое количество рутинной работы, но оно того стоит.

У меня имеется в наличии коммутатор D-Link DGS-3420-28SC и сегодня мы научимся получать данные с этой железки.

Первым делом я всегда создаю группу хостов, если это чистая система. Заходим в «Configuration->Host Groups->Create Host Group». Просто вводим название группы и нажимаем «Add«.

Следующий шаг — добавление Шаблона(Template). Переходим «Configuration->Templates->Create Template». Сложностей в добавлении шаблона нет, задаем имя и к каким группам он относится, все.

Шаблон мы добавили, начинается самое интересное, добавление элементов данных(items). Для получения данных о трафике нам нужно создать по 2 элемента на 1 порт. Один для входящей скорости, второй для исходящей. Делается это очень просто. Открываем наш созданный шаблон, переходим на вкладку Items и нажимаем кнопку Create Item.

Заполняем поля:

Name - Имя элемента, для первого порта создал название Port 1 In;
Type - SNMPv2 agent;
Key - ifInOctets.1;
Host interface - выбираем наш коммутатор;
SNMP OID - 1.3.6.1.2.1.31.1.1.1.6.1;
SNMP community - public;
Type of information - Numeric (unsigned);
Data type - Decimal;
Units - bps;
Use custom multiplier - 8;
Update interval (in sec) - 60;
Store value - Delta (speed per second);
Show value - As is;

Zabbix - add new item

Несколько пояснений:
SNMP OID — идентификатор объекта в дереве MIB. MIB в свою очередь — это база данных идентификаторов.
Use custom multiplier — множитель данных.
Key — ключ элемента данных. Для snmp ifInOctets — количество полученных байт.

Сейчас мы создали элемент данных для мониторинга входящей скорости на порту 1, теперь создадим подобный элемент, но только для исходящей скорости.

Открываем наш созданный элемент данных, опускаемся в самый низ и нажимаем на кнопку Clone. Меняем название, Key — ifOutOctets.1, SNMP OID — 1.3.6.1.2.1.31.1.1.1.10.1. Сохраняем элемент. Теперь по такому же принципу создаем для всех остальных портов, меняя последнее значение в параметрах ifInOctets.1, ifOutOctets.1, 1.3.6.1.2.1.31.1.1.1.6.1, 1.3.6.1.2.1.31.1.1.1.10.1.

ifInOctets.1-28
ifOutOctets.1-28
1.3.6.1.2.1.31.1.1.1.6.1-28
1.3.6.1.2.1.31.1.1.1.10.1-28

Элементы данных для мониторинга скорости добавлены, теперь нужно добавить графики. Открываем вкладку «Graphs» нажимаем на кнопку «Add Graph». Даем название графику, в самом низу добавляем к графику данные. Я всегда добавляю на один график данные для входящего и исходящего трафика с одного порта. В результате получаю график вида:

Zabbix - Graph example

Аналогично создаем графики для всех остальных портов.

Подготовительные этапы завершены, теперь нужно добавить наш коммутатор с которого мы будем снимать данные. Открываем раздел «Configuration->Hosts->Create host«. Заполняем форму, удаляем Agent interfaces и добавляем SNMP interfaces с IP адресом устройства. Переходим на вкладку Templates и добавляем наш шаблон.

Zabbix - add new host

Сохраняем настройки и занимаемся пару минут своими делами, а потом в разделе графиков наблюдаем как наша система собрала данные и нарисовала график

Вот таким образом возможно мониторить практически все данные которые предоставляет сетевое устройство по snmp. Если у вас возникли вопросы или проблемы при настройке, пишите комментарии, выясним причину, найдем решение.

Простой шаблон для импорта из этой статьи.

21 thoughts to “Zabbix и snmp на примере коммутатора D’link”

  1. А MIB-ы и OID-ы для коммутаторов D-Link одинаковые или существует база данных для отдельно взятых коммутаторов?

    1. Если охота капитально заморочиться с этим делом, то по мибам сюда:

      http://ftp.dlink.ru/pub/Switch

      От себя вопрос — никто не раздумывал, что нужно мониторить, чтобы отследить момент снижения пропускной способности портов? На 1510-28LP/ME был эпизод, когда порты на коммутаторе (используемого в качестве центра звезды) снизили свою пропускную полосу, со стороны народа посыпались жалобы «тырнет устал, ютуб долго открывается» (тип жалоб описан исключительно образно). По шаблонам с share.zabbix.com отследить и предупредить этот момент не удалось.

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

  2. Доброго времени суток. У вас на скриншоте видно как в «Applications» Вы выбираете Byte RX. У меня же изначально в «Applications» ничего нет кроме «none». Как это сделать ?

  3. И да кстати, когда создаю «item» выбираю «Type — SNMPv2 agent» у меня нету почему то «Host interface»
    Коммутатор как узел связи добавлен и мониторится…
    Zabbix 3.0

      1. snmp интерфейс добавлен… Вопрос такого плана… если на коммутаторе имеются комбо порты как с них снимать трафик ? Вы настраивали:
        ifInOctets.1
        ifOutOctets.1
        1.3.6.1.2.1.31.1.1.1.6.1
        1.3.6.1.2.1.31.1.1.1.10.1
        Последняя цифра OID это, как я понял, и есть порт ? У меня на коммутаторе имеются порты 25T, 26T, 25F, 26F, 27F, 28F. Допустим использую оптику и активен порт 28F… как в таком случае быть ?

          1. Где обо всем об этом можно прочитать ? MIB и OID ?

  4. Все взлетело ! Заббиксу все равно какой порт оптический или медный… все равно одновременно допустим 25F и 25T использовать не получится… по этому выбираем активный порт по номеру и все работает ! Спасибо за статью !

  5. Подскажите как дать в Zabbix «понятные» имена сетевым интерфейсам, мой switch в отличие от D-Link не позволяет задавать описание имен интерфейсов и в названии элемента данных/триггера написано что типа «Interface TEG-524WS 1.00.010 Port 01: Operational status», а хотелось бы вместо {#IFDESCR} указать что-либо с преобразованием значений — и получить строку вида «Interface Switch Port 01 — Printer: »
    Никак не могу найти примеров как это сделать….

  6. Добрый день, а не подскажите как для dlink dgs 3420 настроить проверку питания ( когда подключен 220 и когда он от батареи )?

      1. Здравствуйте, кто — нибудь может подсказать в таком вопросе… Снимаю данные через zabbix по портам, данные входящего и исходящего трафика… С помощью оидов 31.1.1.1.10.хх и 31.1.1.1.6.хх соответственно. Но когда снимаю данные, но какая — то хрень происходит…. Один раз, 2…3…5 — все верно снимает, а потом хренак и берет какое-то дикое значение не понятно из какой строчки и какого оида… А потом опять все верно, потом опять хренак и ещё какое-то левое число откуда-то берет…. Как вылечить такой сбор данных? Я проверял, индекс snmp верный, ну например 910….имя порта верно, дескрипшен верно взял, но вот конкретно байты с вероятностью 90% правильно берет, но есть 10% когда он берет хрен знает с какого оида числа((

  7. А не подскажите, как поставить на контроль нагрузку CPU коммутаторов через zabbix, используя SNMPv2

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *