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;
Несколько пояснений:
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». Даем название графику, в самом низу добавляем к графику данные. Я всегда добавляю на один график данные для входящего и исходящего трафика с одного порта. В результате получаю график вида:
Аналогично создаем графики для всех остальных портов.
Подготовительные этапы завершены, теперь нужно добавить наш коммутатор с которого мы будем снимать данные. Открываем раздел «Configuration->Hosts->Create host«. Заполняем форму, удаляем Agent interfaces и добавляем SNMP interfaces с IP адресом устройства. Переходим на вкладку Templates и добавляем наш шаблон.
Сохраняем настройки и занимаемся пару минут своими делами, а потом в разделе графиков наблюдаем как наша система собрала данные и нарисовала график
Вот таким образом возможно мониторить практически все данные которые предоставляет сетевое устройство по snmp. Если у вас возникли вопросы или проблемы при настройке, пишите комментарии, выясним причину, найдем решение.
А MIB-ы и OID-ы для коммутаторов D-Link одинаковые или существует база данных для отдельно взятых коммутаторов?
Почти все OID’s одинаковы для всех коммутаторов, могут быть небольшие различия в зависимости от модели
Если охота капитально заморочиться с этим делом, то по мибам сюда:
http://ftp.dlink.ru/pub/Switch
От себя вопрос — никто не раздумывал, что нужно мониторить, чтобы отследить момент снижения пропускной способности портов? На 1510-28LP/ME был эпизод, когда порты на коммутаторе (используемого в качестве центра звезды) снизили свою пропускную полосу, со стороны народа посыпались жалобы «тырнет устал, ютуб долго открывается» (тип жалоб описан исключительно образно). По шаблонам с share.zabbix.com отследить и предупредить этот момент не удалось.
Возможно, нужно строить триггер с сопоставлением данных элементов по состоянию аппаратной части коммутатора (типа частоты CPU и т.д.) и текущей ширины канала портов. Это пока идея )
Сложно сказать, можно прикрутить тригер на даунлинк, но это плохое решение. Думаю нужно смотреть в сторону настроек QoS
Доброго времени суток. У вас на скриншоте видно как в «Applications» Вы выбираете Byte RX. У меня же изначально в «Applications» ничего нет кроме «none». Как это сделать ?
Заполните строчку
New application
, она подсвечена зеленым цветомИ да кстати, когда создаю «item» выбираю «Type — SNMPv2 agent» у меня нету почему то «Host interface»
Коммутатор как узел связи добавлен и мониторится…
Zabbix 3.0
У вас добавлен snmp интерфейс?
Ну вот видимо нет…. только только начал в zabbix разбираться…..
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… как в таком случае быть ?
Если у вас интерфейсы поддерживают больше 1Gbps используйте
ifHCOutOctets
,ifHCInOctets
Где обо всем об этом можно прочитать ? MIB и OID ?
http://ftp.dlink.ru/pub/
На фтп длинка есть файлы с мибами для устройств. Например для DGS-1510-28X/ME мибы с оидами можно скачать за линком — http://ftp.dlink.ru/pub/Switch/DGS-1510-28X_ME/SNMP/
Для просмотра нужно приложение D-View http://ftp.dlink.ru/pub/SNMP/
Все взлетело ! Заббиксу все равно какой порт оптический или медный… все равно одновременно допустим 25F и 25T использовать не получится… по этому выбираем активный порт по номеру и все работает ! Спасибо за статью !
Подскажите как дать в Zabbix «понятные» имена сетевым интерфейсам, мой switch в отличие от D-Link не позволяет задавать описание имен интерфейсов и в названии элемента данных/триггера написано что типа «Interface TEG-524WS 1.00.010 Port 01: Operational status», а хотелось бы вместо {#IFDESCR} указать что-либо с преобразованием значений — и получить строку вида «Interface Switch Port 01 — Printer: »
Никак не могу найти примеров как это сделать….
ifAlias, можно привязать на макрос и получим название порта которое задали в настройках
Добрый день, а не подскажите как для dlink dgs 3420 настроить проверку питания ( когда подключен 220 и когда он от батареи )?
Добрый день. К сожалению не подскажу, не сталкивался с 3420 в работе.
Но можешь почитать вот эту тему https://local.com.ua/forum/topic/82286-eltex-mes1124mb/
Здравствуйте, кто — нибудь может подсказать в таком вопросе… Снимаю данные через zabbix по портам, данные входящего и исходящего трафика… С помощью оидов 31.1.1.1.10.хх и 31.1.1.1.6.хх соответственно. Но когда снимаю данные, но какая — то хрень происходит…. Один раз, 2…3…5 — все верно снимает, а потом хренак и берет какое-то дикое значение не понятно из какой строчки и какого оида… А потом опять все верно, потом опять хренак и ещё какое-то левое число откуда-то берет…. Как вылечить такой сбор данных? Я проверял, индекс snmp верный, ну например 910….имя порта верно, дескрипшен верно взял, но вот конкретно байты с вероятностью 90% правильно берет, но есть 10% когда он берет хрен знает с какого оида числа((
А не подскажите, как поставить на контроль нагрузку CPU коммутаторов через zabbix, используя SNMPv2
Зависит от коммутатора. На 99% уверен что у него есть свой MIB для этого. Просто загуглите
commutator_name_model CPU MIB
.