- Zabbix + SNMP ( Zabbix + SNMP )
- zloykolobok
- Страницы
- понедельник, 10 декабря 2012 г.
- Zabbix — детальный мониторинг узлов сети, используя SNMP
- Мониторинг коммутаторов Cisco, D-Link, 3Com, Zyxel в системе Zabbix
- Включаем мониторинг
- Генератор шаблонов
- Отладка
- Карта сети
- Мониторинг состояния портов
- Производительность
Zabbix + SNMP ( Zabbix + SNMP )
30 марта 2010 (обновлено 2 ноября 2014)
Настраиваем взаимодействие оборудования с системой мониторинга Zabbix с помощью протокола SNMP.
Первым делом предупреждение и напоминание предупреждённым: протокол SNMP в тех его реализациях, что используется до сих пор элементарным активным сетевым оборудованием, вроде модемов и коммутаторов, невероятно небезопасен.
Фактически защиты нет. Единственный, на мой взгляд, способ защитится от компрометации SNMP трафика оборудования и воздействия на него злоумышленника — это вывод всего активного оборудования в закрытые от пользователей зоны и заградить сетевыми экранами с чёткими и однозначными листами доступа. Не очевидное ключевое слово — идентификатор community может несколько обезопасить работу с оборудованием, но это не панацея, так как оно выявляется путём примитивного «снифинга» трафика.
Нам понадобится «MIB browser» — приложение, позволяющее обращаться по SNMP протоколу к агенту и выспрашивать у него значения параметров по адресам. Разумеется, приложение не называлось бы «браузером», не будь оно способно строить иерархическую структуру параметров и позволять нам по ней ходить.
Есть несколько реализаций такого ПО. Можно выбрать по своему вкусу. Я, в своё время попробовал «GetIf» (http://www.wtcs.org/snmp4tpc/getif.htm) и никакое другое приложение для просмотра дерева параметров так и не понадобилось. Приложение простое, не загромождённое свиристелками и издавалками звуков и работает именно браузером а не заменителем половины других приложений, что могут понадобится в жизни. В общем, все описания именно про него.
Для пробной отрисовки графиков таких снимаемых значений, как утилизация интерфейсов и тому подобное, можно использовать PRTG Traffic Grapher (http://www.paessler.com/prtg6). Приложение задает минимум вопросов и вполне корректно работает с оборудованием поддерживающим стандартную базу MIB.
Настраиваем SNMP взаимодействие с модемами ZyXEL Prestige.
ZyXEL Prestige 791R EE и P-792H EE, а именно с ними мы будем работать, поддерживают связь по реализациях протокола SNMPv1 и SNMPv2.
Большинство производителей активного сетевого оборудования создают свои дополнения к дереву параметров SNMP. ZyXEL не исключение. Для того, чтобы погулять по ветвям параметров оборудования необходимо скачать и применить к «браузеру» файлы с описанием дополнительных параметров:
Распаковываем и копируем mib файлы в директорию «Mibs» нашего «браузера», удаляем файл .index и перезапускаем приложение. Получаем стандартное дерево SNMP с дополнениями от производителя оборудования.
Настраиваем оборудование на работу с протоколом SNMP.
С модемами ZyXEL все просто. Переходим к пункту меню «SNMP Configuration» (22) и приводим переменные к следующему виду:
Проверяем, отдаст ли оборудование данные по запросу члена community:
В ответ мы должны получить список параметров, нечто вроде этого:
Если нам ответили что-то вроде «Timeout: No Response from [host]», то взаимодействие между узлами не налажено и нужно разбираться с причиной.
Настраиваем Zabbix сервер для работы с модемами ZyXEL.
Создаем шаблон «t_zyxel».
Создаем группу «Modems».
Настроим мониторинг загрузки Ethernet интерфейса. Можно попробовать мониторить WAN интерфейс, тогда SNMP OID для «Incoming traffic» должен быть «1.3.6.1.2.1.2.2.1.10.2» а для «Outgoing traffic» — «1.3.6.1.2.1.2.2.1.16.2». Выбор Ethernet в качестве интерфейса для мониторинга обусловлен тем, что в некоторых модемах с старой версией прошивки в рамках общей конфигурации WAN интерфейс не мониторился совсем. И в моем случае все модемы работают мостами, так что трафик на интерфейсах по идее одинаков за исключением небольшого количества управляющего.
Создаем параметр «IncTraf: eth0» шаблона «t_zyxel»:
Создаем параметр «OutTraf: eth0» шаблона «t_zyxel»:
Указав интервал обновления в восемь (8) секунд с умножителем показателя в единицу (1), методом сохранения данных как разницу между двумя показаниями счётчика в указанный период обновления и тем, что количество проходящей через интерфейс информации исчисляется в октетах (байтх), результирующим показателем будет количество бит в секунду на интерфейсе; иначе говоря — «bps». Если нужен меньший интервал обновления, то множитель соответственно увеличивается.
Создаем график «NetUtilization: eth0»:
Применяем в шаблонах к показателям ключевое слово для организации community, заводим хосты, вводим их в шаблон «t_zyxel» и получаем мониторинг модемов по заданным показателям с отображением соответствующих графиков.
Настраиваем SNMP взаимодействие с Cisco PIX.
Cisco PIX отлично поддерживает связь по реализации протокола SNMPv2.
На маршрутизаторе разрешаем хождение трафика SNMP откуда и куда нужно:
Указываем маршрутизатору параметры конфигурации SNMP:
Проверяем, отдаст ли оборудование данные по запросу члена community (в нашем случае серверу Zabbix):
# /usr/bin/snmpwalk -c [community] -v 2c [host]
В ответ мы должны получить список параметров, нечто вроде этого:
Если нам ответили что-то вроде «Timeout: No Response from [host]», то взаимодействие между узлами не налажено и нужно разбираться с причиной.
Настраиваем Zabbix сервер для работы с Cisco PIX.
Создаем шаблон «t_pix».
Создаем группу «Channels».
От Cisco PIX нам нужно не так уж и много информации. Необходимо мониторить утилизацию внешнего интерфейса и количество соединений обслуживаемых на текущий момент маршрутизатором. Ради интереса можно отслеживать количество отвергнутых пакетов и попыток нарушить периметр безопасности, но это уже отдельная тема.
Настроим мониторинг загрузки внешнего (Outside) Ethernet интерфейса.
Создаем параметр «in.eth0» шаблона «t_pix»:
Создаем параметр «out.eth0» шаблона «t_pix»:
Указав интервал обновления в восемь (8) секунд с умножителем показателя в единицу (1), методом сохранения данных как разницу между двумя показаниями счётчика в указанный период обновления и тем, что количество проходящей через интерфейс информации исчисляется в октетах (байтах), результирующим показателем будет количество бит в секунду на интерфейсе; иначе говоря — «bps». Если нужен меньший интервал обновления, то множитель соответственно увеличивается.
Создаем параметр «connections» шаблона «t_pix»:
Создаем график «util.eth0»:
Применяем в шаблонах к показателям ключевое слово для организации community, заводим хосты, вводим их в шаблон «t_pix» и получаем мониторинг маршрутизаторов по заданным показателям с отображением соответствующих графиков.
Настраиваем SNMP взаимодействие с Cisco 1800.
Cisco 1800 отлично поддерживает связь по реализации протокола SNMPv2.
На маршрутизаторе создаем ACL разрешающий хождение трафика SNMP откуда и куда нужно для последующего прикрепления к правилам community:
Указываем маршрутизатору параметры конфигурации SNMP:
Проверяем, отдаст ли оборудование данные по запросу члена community (в нашем случае серверу Zabbix):
В ответ мы должны получить список параметров, нечто вроде этого:
Если нам ответили что-то вроде «Timeout: No Response from [host]», то взаимодействие между узлами не налажено и нужно разбираться с причиной.
Настраиваем Zabbix сервер для работы с Cisco 1800.
Создаем шаблон «t_cisco1800».
Создаем группу «Channels».
От Cisco 1800 нам нужно н так уж и много информации. Необходимо мониторить утилизацию интерфейсов и количество соединений обслуживаемых на текущий момент маршрутизатором. Ради интереса можно отслеживать количество отвергнутых пакетов и попыток нарушить периметр безопасности, но это уже отдельная тема. Интересующие нас интерфейсы в нашем случае могут быть на произвольных портах, поэтому точное значение OID придётся подбирать индивидуально для каждого хоста.
Настроим мониторинг загрузки Ethernet интерфейса.
Создаем параметр «in.eth0» шаблона «t_cisco1800»:
Создаем параметр «out.eth0» шаблона «t_cisco1800»:
Указав интервал обновления в восемь (8) секунд с умножителем показателя в единицу (1), методом сохранения данных как разницу между двумя показаниями счётчика в указанный период обновления и тем, что количество проходящей через интерфейс информации исчисляется в октетах (байтах), результирующим показателем будет количество бит в секунду на интерфейсе; иначе говоря — «bps». Если нужен меньший интервал обновления, то множитель соответственно увеличивается.
SNMP OID: .1.3.6.1.2.1.2.2.1.10 — Сбор входящего трафика (inOctets);
SNMP OID: .1.3.6.1.2.1.2.2.1.16 — Сбор исходящего трафика (outOctets).
Прибавление ещё одного значения определит целевой интерфейс — номер интерфейса по принципу:
.1 — FatEthernet0;
.2 — FatEthernet1;
.3 — FatEthernet2;
.4 — FatEthernet3;
.5 — FatEthernet4;
.6 — FatEthernet5;
.7 — FatEthernet6;
.8 — FatEthernet7;
.9 — FatEthernet8;
.10 — FatEthernet9;
Создаем параметр «Connections» шаблона «t_cisco1800»:
Создаем график «util.eth0»:
[ уже посетило: 39266 / +1 ] [ интересно! / нет ]
Поблагодарить автора
Источник
zloykolobok
Блог посвящен: технологии ADSL, ADSL-модемам, а также CMS Joomla
Страницы
понедельник, 10 декабря 2012 г.
Zabbix — детальный мониторинг узлов сети, используя SNMP
Доброго времени суток. Мы продолжаем рассматривать замечательный мониторинг сети и узлов сети Zabbix. Так мы с Вами уже установили данную систему и настроили, разобрали основные понятия Zabbix, настроили простую проверку узлов сети (доступность). А в данной статье мы перейдем к настройке более детального мониторинга узла сети, используя SNMP.
Кратко об SNMP
SNMP (Simple Network Management Protocol) — это простой протокол сетевого управления или протокол управления устройствами в IP-сетях на основе TCP/UDP. SNMP предоставляет данные для управления устройствами сети в виде переменных, которые описывают конфигурацию данного оборудования. Эти переменные могут быть запрошены или заданы (если это позволяет оборудование и его конфигурация) управляющими приложениями.
В самом протоколе SNMP не определено какая информация заложена в переменных. Для этого SNMP использует базу управляющей информации (базу MIB). Базы MIB описывают структуру управляемых данных и информацию заложенную в переменных. MIB имеет иерархическую структуру пространства имен, содержащие идентификаторы объектов (OID). Каждый OID определяет переменную, которая может быть считана или установлена с помощью SNMP.
Существует три версии протокола SNMP:
- SNMPv1 — начальная реализация данного протокола, основная проблема данной версии низкая защита.
- SNMPv2 — вторая версия, улучшена производительность и безопасность.
- SNMPv3 — третья версия ничего нового не добавляет в данный протокол, единственное отличие от предыдущей версии это криптографическая защита данных.
Как уже говорилось в предыдущих статьях, система мониторинга Zabbix поддерживает протокол SNMP. И дальше мы с Вами настроим мониторинг порта на узле (мы будем мониторить текущее состояние интерфейса )
Создание узла сети
Первое, что мы сделаем создадим узел сети. Для этого переходим: Настройка -> Узлы сети и жмем на кнопку “Создать узел сети”.
Источник
Мониторинг коммутаторов Cisco, D-Link, 3Com, Zyxel в системе Zabbix
Мониторинг — это один из столпов обеспечения высокой доступности ИТ-систем.
Как правило, системные администраторы при установке системы мониторинга в первую очередь настраивают ее на проверку параметров серверов и обнаружение недоступности сервисов, запущенных на этих серверах. Безусловно это приоритетная задача, но не стоит забывать и о другом оборудовании: ИБП, системах кондиционирования, сетевом оборудовании.
В этом топике я покажу как решить за полчаса задачу мониторинга активного сетевого оборудования (т.е. свитчей, роутеров и т.п.) в системе Zabbix с помощью пары полезных инструментов. В результате вы сможете получить полную картину происходящего в сети.
Включаем мониторинг
Думаю, я не ошибусь, если скажу, что большинству системных администраторов приходится работать с унаследованным «зоопарком» оборудования различных моделей и вендоров. К счастью, большинство моделей поддерживает открытый протокол SNMP. Именно по нему мы и будем получать информацию о состоянии сетевых интерфейсов.
Предположим, что Zabbix у вас уже установлен. Чтобы воспользоваться SNMP нужно:
- включить поддержку SNMP на сетевом устройстве (команды зависят от производителя)
- добавить соответствующие item в Zabbix — по одному на каждый параметр; для этого нужно указать используемую версию SNMP, корректный идентификатор параметра SNMP OID и SNMP community (что-то типа имени пользователя)
- добавить триггеры для отслеживания нежелательных значений item
С учетом того, что у каждого сетевого порта может быть несколько отслеживаемых параметров, у типичного свитча — 24, а то и 48 портов, а свитчей в сети могут быть десятки, ручная конфигурация чересчур трудоемка.
Для облегчения задачи необходимо использовать шаблоны (templates). Шаблон содержит в себе все необходимые item’ы, триггеры и графики — остается только завести хост и подключить к нему шаблон.
Для Zabbix уже есть много готовых шаблонов, которые можно или нагуглить или посмотреть в мануале.
Если вы не нашли нужный шаблон, не расстраивайтесь: как правило, производители используют стандартные OID’ы из RFC1213 и RFC2233:
| sysName.0 | имя узла | |
| .1.3.6.1.2.1.1.3.0 | uptime | |
| .1.3.6.1.2.1.2.2.1.8.X | статус порта: 1(up) / 2(down) | X — номер порта; у Cisco номер порта пятизначный: 100XX для 100 Мбитных портов, 101XX для 1 Гбит/c |
| .1.3.6.1.2.1.2.2.1.16.X | отправлено байт | |
| .1.3.6.1.2.1.2.2.1.10.X | принято байт | |
| .1.3.6.1.2.1.31.1.1.1.5.X | отправлено broadcast пакетов | |
| .1.3.6.1.2.1.31.1.1.1.3.X | принято broadcast пакетов | |
| .1.3.6.1.2.1.31.1.1.1.4.X | отправлено multicast пакетов | |
| .1.3.6.1.2.1.31.1.1.1.2.X | принято multicast пакетов | |
| .1.3.6.1.2.1.2.2.1.17.X | отправлено unicast пакетов | |
| .1.3.6.1.2.1.2.2.1.11.X | принято unicast пакетов | |
| .1.3.6.1.2.1.2.2.1.20.X | ошибок при отправке | |
| .1.3.6.1.2.1.2.2.1.14.X | ошибок при получении |
Помимо этого можно считать имя интерфейса, MTU, скорость и другие параметры. Полный список смотрите на сайте Cisco.
Cisco Catalyst, как правило, поддерживают дополнительно:
.1.3.6.1.4.1.9.9.109.1.1.1.1.5.1 — процент загрузки CPU
.1.3.6.1.4.1.9.9.48.1.1.1.5.1 — занятая память (в байтах)
.1.3.6.1.4.1.9.5.1.2.13.0 — статус температуры (1 — нормальная, 2 — повышенная, 3 — критическая)
Генератор шаблонов
Заметив, то что идентификаторы стандартизованы, я написал простенький скрипт на PHP, который позволяет сгенерировать XML-шаблон для Zabbix с нужными OID для всех портов. Мы протестировали его на оборудовании Cisco (500G, 2960. 3550 и 3750), 3Com (2426, 2924, 2948), паре D-Link и Zyxel 4012. (Кто хочет, может скачать исходники).
Генератор создает шаблоны, которые умеют:
- отслеживать параметры интерфейсов (см. таблицу выше) и выводить их на графике;
- устанавливать триггер на падение порта;
- устанавливать триггер на превышение скорости прироста ошибок на порте;
- отслеживать загрузку процессора, памяти и температуры для Cisco.
После того, как вы сгенерировали и сохранили шаблон для устройства, сымпортируйте его: перейдите в Configuration → Templates и нажмите справа вверху кнопку Import. Создайте новый Host или отредактируйте существующий — привяжите к нему ваш шаблон.
Если вы хотите изменить какие-либо параметры (например, SNMP community), то это можно сделать прямо в Zabbix: зайдите в шаблон в Configuration → Templates , в Items выделите нужные элементы галочками и внизу выберите из выпадающего списка Mass update.
В результате вы получите симпатичные графики:
Отладка
Если прошло несколько минут после добавления к устройству шаблона, а данные от SNMP так и не появились, необходимо проверить, может ли сервер Zabbix считать данные с устройства. Делается это утилитой snmpget:
snmpget -v версия_протокола -c комьюнити адрес_устройства OID
Например, получим число отправленных байт на первом гигабитном порту для Cisco:
snmpget -v 2c -c qwerty 192.168.1.1 .1.3.6.1.2.1.2.2.1.16.10101
IF-MIB::ifOutOctets.10101 = Counter32: 2044250092
Для не-Cisco железки:
snmpget -v 2c -c qwerty 192.168.1.2 .1.3.6.1.2.1.2.2.1.16.1
IF-MIB::ifOutOctets.1 = Counter32: 1691279168
Если вы получаете сообщение Timeout: No Response from . , значит вам нужно убедиться, что SNMP включен на устройстве и серверу разрешено соединяться с портом 161/UDP коммутатора.
Сообщение No Such Object available on this agent at this OID говорит о том, что запрашиваемый параметр не поддерживается.
Чтобы прочитать полный список параметров с устройства выполните:
snmpwalk -v версия_протокола -c комьюнити адрес_устройства
Любители GUI для чтения SNMP-данных с устройства могут воспользоваться программами типа MIB Browser.
Карта сети
Карту придется кропотливо составлять вручную. Тут надо знать пару трюков. Чтобы над соединительными линиями между оборудованием показывать скорость, добавьте в подпись вызов соответствующего item в фигурных скобках. Например:
↑ <02-CS-42-3750:ifOutOctets.10112.last(0)>
<02-CS-42-3750:ifInOctets.10112.last(0)>↓
Запись 02-CS-42-3750:ifOutOctets.10112.last(0) означает получить у хоста 02-CS-42-3750 последнее по времени значение параметра ifOutOctets (отправлено байт). ↑ и ↓ это просто коды стрелочек ↑ и ↓ для красоты.
Также в свойствах Link вы можете настроить отображении линии красным в случае падения порта в down.
Мониторинг состояния портов
К сожалению, в Zabbix нет удобного инструмента для просмотра состояния отдельных портов устройств, поэтому его пришлось написать. Информация импортируется из Zabbix и выводится администратору в удобном виде:
Серый цвет порта обозначает, то что он находится в down. Цвет от зеленого до красного меняется в зависимости от загрузки порта. Гигабитные порты выделены рамочкой.
Минус скрипта в том, что он писался «для себя», поэтому установка достаточно корявая (-:. Скачайте исходники и прочитайте readme. UPD 13.03.13 (Версия для Zabbix 2.0)
Производительность
Нельзя не упомянуть о возможной проблеме с производительностью zabbix-сервера. Предположим, что вы раз в минуту получаете информацию об 11 параметрах каждого порта 50-ти 24-портовых свитчей. На базу данных zabbix-сервера ляжет нагрузка в среднем 220 записей в секунду. Для слабой машины она может оказаться непосильной. Поэтому рекомендуется ограничивать количество item’ов или увеличивать интервал проверки. Мы считаем достаточным запрашивать статус порта, трафик, количество ошибок и широковещательных пакетов раз в 60 секунд.
Источник