Низкоуровневое обнаружение Zabbix (Low-level discovery)
В данной статье будет рассмотрена возможность низкоуровнего обнаружения в системе мониторинга Zabbix, для автоматизированного мониторинга сетевых интерфейсов коммутаторов/маршрутизаторов, BGP и ISIS сессий.
Начнём с обнаружения сетевых интерфейсов. Это нужно в первую очередь для автоматизации мониторинга. Вместо того чтобы добавлять интерфейсы по одному, мы создадим шаблон, который при подключении к оборудованию начнёт искать сетевые интерфейсы, добавлять нужные нам графики, триггеры и тд.
Для начала создадим шаблон. Назовём его, например, Template SNMP. Шаблон универсальный для всего оборудования, т.к. использует стандартные OID, которые поддерживаются всеми вендорами (проверено на Cisco, Juniper, Zyxel, Raisecom, Dell)
После того, как создали пустой шаблон, необходимо его заполнить. Зайдём в него и перейдём во вкладку "Правила обнаружения" и создадим правило обнаружения.
Искать интерфейсы будем искать по OID IF-MIB::ifName. При такой схеме Zabbix запустит обнаружение и на оборудовании Cisco найдёт следующие интерфейсы:
IF-MIB::ifName.1 = STRING: Gi1/1
IF-MIB::ifName.2 = STRING: Gi1/2
IF-MIB::ifName.3 = STRING: Gi1/3
IF-MIB::ifName.4 = STRING: Gi1/4
IF-MIB::ifName.5 = STRING: Gi1/5
IF-MIB::ifName.6 = STRING: Gi1/6
IF-MIB::ifName.7 = STRING: Gi1/7
IF-MIB::ifName.8 = STRING: Gi1/8
IF-MIB::ifName.9 = STRING: Gi1/9
И создаст 2 массива: {#SNMPVALUE} и {#SNMPINDEX}
В SNMPVALUE содержится значение поиска. В данном случае: Gi1/1, Gi1/2 и тд. А в SNMPINDEX содержится уникальная часть OID. Например, полный OID интерфейса Gi1/1: IF-MIB::ifName.1, который мы нашли с помощью IF-MIB::ifName, уникальная часть в данном случае цыфры от 1 до 9. Для наглядности SNMPVALUE помечен красным цветом, SNMPINDEX зелёным.
IF-MIB::ifName.1 = STRING: Gi1/1
После того, как мы настроили обнаружение, необходимо создать прототимы элементов, которые будут заполняться автоматически, с помощью описанных ранее массивов. Для этого зайдём в шаблон, потом в Правила обнаружения, затем в прототимы элементов данных.
Настроим 3 прототипа: для входящего траффика, исходящего, и описания интерфейса, для более наглядного описания графиков.
Осталось создать графики для отображения нагрузки на интерфейсах. Для этого перейдём в прототип графиков и создадим с названием:
{#SNMPVALUE} - {{HOST.HOST}:ifAlias[{#SNMPVALUE}].last(0)}
После обработки данных макросов, названия графиков будут содержать имя интерфейса (Gi1/1) и его описание (discription). В качестве элементов данных добавляем прототипы входящего и исходящего интерфейсов.
Осталось закрепить данный шаблон за нужным оборудованием, остальное zabbix сделает за Вас.