Доброго
времени суток. Мы продолжаем рассматривать замечательный мониторинг
сети и узлов сети Zabbix. Так мы с Вами уже установили данную систему и настроили, разобрали основные понятия Zabbix, настроили простую проверку узлов сети (доступность). А в данной
статье мы перейдем к настройке более детального мониторинга узла сети,
используя SNMP.
Кратко об SNMP
SNMP (Simple Network Management Protocol) - это простой протокол сетевого управления или протокол управления устройствами в IP-сетях на основе TCP/UDP. SNMP предоставляет данные для управления устройствами сети в виде переменных, которые описывают конфигурацию данного оборудования. Эти переменные могут быть запрошены или заданы (если это позволяет оборудование и его конфигурация) управляющими приложениями.
В самом протоколе SNMP не определено какая информация заложена в переменных. Для этого SNMP использует базу управляющей информации (базу MIB). Базы MIB описывают структуру управляемых данных и информацию заложенную в переменных. MIB имеет иерархическую структуру пространства имен, содержащие идентификаторы объектов (OID). Каждый OID определяет переменную, которая может быть считана или установлена с помощью SNMP.
Существует три версии протокола SNMP:
Создание узла сети
Первое, что мы сделаем создадим узел сети. Для этого переходим: Настройка -> Узлы сети и жмем на кнопку “Создать узел сети”.
Дальше заполняем поля нашего узла сети:
На этом создание узла мы завершаем. Теперь мы создадим элементы данных, которые будем мониторить на данном узле. В нашем случае это состояние порта.
Создание элементов данных
Переходим Настройка -> Узлы сети и выбираем вновь созданный узел. И переходим в Элементы данных.
Как видим у нас пока нет элементов данных. Жмем “Создать элемент данных”
В поле:
Если мы сделали все правильно и сбор информации по SNMP стал проходить, то мы должны увидеть напротив нашего хоста зеленый квадрат с надписью SNMP:
Специальные OID в Zabbix
После того, как мы настроили опрос состояния порта нам приходят данные с оборудования. Теперь нам необходимо создать правило (триггер), после срабатывания которого нам zabbix сообщит о наличии проблемы.
Создание триггера.
Переходим Настройка -> Узлы сети и выбираем узел для которого будем создавать триггер. Дальше переходим по ссылке “Триггеры”
Пока триггеров у нас нет. Жмем “Создать триггер”
В поле:
элементы данных жмем “Выбрать” и выбираем наш элемент данных port_status, в поле “Функция” выбираем необходимую функцию, в моем случае, Last value = N (это означает, что при получении значения равного N мой триггер сработает) и в поле “N” ставим 2 (т.к. если порт не в коннекте, то OID вернет значение 2. Жмем “Вставить”.
На этом настройка триггера завершена.
Теперь наш мониторинг на основе zabbix проверяет статус порта узла сети, используя SNMP.
На этом настройка детального мониторинга узла завершена. С помощью SNMP можно настроить мониторинг множества параметров оборудования. Так у меня мониториться температура, нагрузка на процессор, фактическая скорость на порту. В следующей статье мы настроим мониторинг скорости на порту и создадим график, который будет отображать данную скорость. А на этом пока все.
Кратко об SNMP
SNMP (Simple Network Management Protocol) - это простой протокол сетевого управления или протокол управления устройствами в IP-сетях на основе TCP/UDP. SNMP предоставляет данные для управления устройствами сети в виде переменных, которые описывают конфигурацию данного оборудования. Эти переменные могут быть запрошены или заданы (если это позволяет оборудование и его конфигурация) управляющими приложениями.
В самом протоколе SNMP не определено какая информация заложена в переменных. Для этого SNMP использует базу управляющей информации (базу MIB). Базы MIB описывают структуру управляемых данных и информацию заложенную в переменных. MIB имеет иерархическую структуру пространства имен, содержащие идентификаторы объектов (OID). Каждый OID определяет переменную, которая может быть считана или установлена с помощью SNMP.
Существует три версии протокола SNMP:
- SNMPv1 - начальная реализация данного протокола, основная проблема данной версии низкая защита.
- SNMPv2 - вторая версия, улучшена производительность и безопасность.
- SNMPv3 - третья версия ничего нового не добавляет в данный протокол, единственное отличие от предыдущей версии это криптографическая защита данных.
Создание узла сети
Первое, что мы сделаем создадим узел сети. Для этого переходим: Настройка -> Узлы сети и жмем на кнопку “Создать узел сети”.
Дальше заполняем поля нашего узла сети:
- Имя узла сети - вводим название нашего узла, который мы будем мониторить
- Видимое имя - название узла, которое будет отображаться
- В группах - добавляем группу, в которой будет находиться наш узел, если группу мы еще не создали, то в поле “Новая группа узлов сети” мы можем добавить название новой группы, куда поместим наш узел сети.
- Интерфейс агента вводим ip адрес или доменное имя узла
- Теперь нужно в “Интерфейсы SNMP” нажать “Добавить” и ввести ip адрес узла или доменное имя узла, а также при необходимости изменить порт для работы SNMP.
- Наблюдение через прокси, оставляем без прокси.
- Состояние - Под наблюдением (для включения мониторинга для данного узла)
На этом создание узла мы завершаем. Теперь мы создадим элементы данных, которые будем мониторить на данном узле. В нашем случае это состояние порта.
Создание элементов данных
Переходим Настройка -> Узлы сети и выбираем вновь созданный узел. И переходим в Элементы данных.
Как видим у нас пока нет элементов данных. Жмем “Создать элемент данных”
В поле:
- Узел сети - находиться название узла сети для которого мы создаем элемент данных. Если в этом поле не тот узел, то жмем по “Выбрать” и выбираем необходимый узел.
- Имя - вводим имя элемента данных. Пусть в нашем случае это будет port_status.
- В поле Тип - выбираем тип элемента данных, в нашем случае это SNMPv2 агент. Вы должны выбрать соответствующую версию SNMP.
- В поле ключ вводим необходимый OID. Тут Вам необходимо обратиться к документации по оборудованию, а точнее к MIB. В моем случае - это 1.3.6.1.2.1.2.2.1 и дальше идет номер порта. Поэтому в данном поле я ввожу 1.3.6.1.2.1.2.2.1.1, т.е. я запрашиваю статус интерфейса под номером 1.
- В поле интерфейс узла сети указываем интерфейс для SNMP, который мы создали при создании узла.
- В поле SNMP OID указываем такое же значение как и в поле ключ 1.3.6.1.2.1.2.2.1.1
- В поле SNMP Community указываем пароль для доступа к считываю информации по SNMP. Тут нужно смотреть конфигурацию самого оборудования.
- В поле порт указываем порт по которому работает наш SNMP, по умолчанию это порт 161
- В поле тип информации оставляем Числовой(целое положительное), т.к. полученная информация у нас будет 1 - когда порт в коннекте, 2 - когда порт не в коннекте, 5 - когда порт в статусе admin down (т.е. выключен административно).
- В поле Тип данных оставляем десятичный, получаемые данные целые десятичные.
- В поле единица измерения ничего не прописываем
- В поле пользовательский множитель ничего не прописываем.
- В поле интервал обновления устанавливаем интервал обновления в секундах, по умолчанию 30 секунд
- Остальные поля также не трогаем.
Если мы сделали все правильно и сбор информации по SNMP стал проходить, то мы должны увидеть напротив нашего хоста зеленый квадрат с надписью SNMP:
Специальные OID в Zabbix
Специальный OID | Идентификатор | Описание |
ifIndex | 1.3.6.1.2.1.2.2.1.1 | Уникальное значение для каждого интерфейса. От 1 до ifnumber. |
fDescr | 1.3.6.1.2.1.2.2.1.2 | Текстовая строка содержащая информацию о интерфейсе. Эта строка может включать в себя название компании производителя, имя продукта, аппаратную версию интерфейса. |
ifType | 1.3.6.1.2.1.2.2.1.3 | Тип интерфейса, например, 6 - ethernet; 9 - 802.5 маркерное кольцо; 23 - PPP; 28 - SLIP. |
ifMtu | 1.3.6.1.2.1.2.2.1.4 | Mtu для конкретного интерфейса. Размер наибольшей датаграммы, которую может отправить/получить интерфейс, указывается в байтах |
ifSpeed | 1.3.6.1.2.1.2.2.1.5 | Текущая скорость интерфейса в битах за секунду. |
ifPhysAddress | 1.3.6.1.2.1.2.2.1.6 | Физический адрес интерфейса или строка нулевой длины для интерфейсов без физического адреса (напр. последовательный). |
ifAdminStatus | 1.3.6.1.2.1.2.2.1.7 | Текущее административное состояние интерфейса. |
ifOperStatus | 1.3.6.1.2.1.2.2.1.8 | Текущее рабочее состояние интерфейса. |
ifInOctets | 1.3.6.1.2.1.2.2.1.10 | Полное число полученных байтов, включая символы заголовков. |
fInUcastPkts | 1.3.6.1.2.1.2.2.1.11 | Количество пакетов одноадресной рассылки, доставленных на верхний уровень стека протокола. |
ifInNUcastPkts | 1.3.6.1.2.1.2.2.1.12 | Количество пакетов НЕ одноадресной рассылки (broadcast и multicast), доставленных на верхний уровень стека протокола. |
ifInDiscards | 1.3.6.1.2.1.2.2.1.13 | Количество входящих, но отвергнутых пакетов, даже если не было обнаружено ошибок, мешающих доставке пакетов на верхний уровень стека протокола. Одна из возможных причин для отвержения пакета могло быть освобождение места в буфере. |
ifInErrors | 1.3.6.1.2.1.2.2.1.14 | Количество входящих пакетов, полученных с ошибкой, из за которой пакеты не были доставлены на верхний уровень стека протокола. |
ifInUnknownProtos | 1.3.6.1.2.1.2.2.1.15 | Количество пакетов, полученных через интерфейс, но отвергнутых из за неизвестного или не поддерживаемого протокола. |
ifOutOctets | 1.3.6.1.2.1.2.2.1.16 | Полное количество отправленных октетов с интерфейса, включая символы заголовков. |
ifOutUcastPkts | 1.3.6.1.2.1.2.2.1.17 | Полное количество пакетов, которые пытался отправить верхний уровень стека протокола, и которые адресованы НЕ на broadcast или multicast адреса на этом суб-уровне, включая те которые были отвергнуты или не отправлены. |
ifOutNUcastPkts | 1.3.6.1.2.1.2.2.1.18 | Полное количество пакетов, которые пытался отправить верхний уровень стека протокола, и которые адресованы на broadcast или multicast адреса на этом суб-уровне, включая те которые были отвергнуты или не отправлены. |
ifOutDiscards | 1.3.6.1.2.1.2.2.1.19 | Количество исходящих пакетов, которые были отвергнуты даже если не было обнаружено ошибок, мешающих отправке. Одна из возможных причин отвержения пакета могло быть освобождение места в буфере. |
ifOutErrors | 1.3.6.1.2.1.2.2.1.20 | Количество исходящих пакетов, которые не могут быть отправлены из за ошибок. |
ifOutQLen | 1.3.6.1.2.1.2.2.1.21 | Длина очереди исходящих пакетов (количество). |
После того, как мы настроили опрос состояния порта нам приходят данные с оборудования. Теперь нам необходимо создать правило (триггер), после срабатывания которого нам zabbix сообщит о наличии проблемы.
Создание триггера.
Переходим Настройка -> Узлы сети и выбираем узел для которого будем создавать триггер. Дальше переходим по ссылке “Триггеры”
Пока триггеров у нас нет. Жмем “Создать триггер”
В поле:
- Имя - задаем название нашего триггера. В моем случае - Port_Status
- Выражение жмем “Добавить” и в открывшемся окне
элементы данных жмем “Выбрать” и выбираем наш элемент данных port_status, в поле “Функция” выбираем необходимую функцию, в моем случае, Last value = N (это означает, что при получении значения равного N мой триггер сработает) и в поле “N” ставим 2 (т.к. если порт не в коннекте, то OID вернет значение 2. Жмем “Вставить”.
- Важность я поставил “Предупреждение”.
- Активно необходимо поставить галочку для активации данного триггера.
- Жмем “Сохранить”
Теперь наш мониторинг на основе zabbix проверяет статус порта узла сети, используя SNMP.
На этом настройка детального мониторинга узла завершена. С помощью SNMP можно настроить мониторинг множества параметров оборудования. Так у меня мониториться температура, нагрузка на процессор, фактическая скорость на порту. В следующей статье мы настроим мониторинг скорости на порту и создадим график, который будет отображать данную скорость. А на этом пока все.
Ромчик, добрый день, подскажите пожалуйста какие действия требуются что бы в списке узлов (доступных сетевых устройств) горела иконка зеленым цветом ?
ОтветитьУдалитьПоджеч и смотреть через зелёное стёклышко :-)
ОтветитьУдалитьВключите snmp на устройстве
ОтветитьУдалитьСделал по инструкции, а показатели все врут. На серваке скорость передачи 50 мб, заббикс рисует график 5 мб. Как только не игрался с множителями все время разный результат и далек от нужного. А когда проходят бэкапы так там вообще за гб улетает хотя макс скорость на серваке 800-900 мб.
ОтветитьУдалить