В предыдущей статье я описывал как можно автоматически искать новые устройства в сети, применять к ним шаблоны и добавлять в мониторинг. Сейчас же мы рассмотрим как можно автоматически добавлять интерфейсы или другие объекты в мониторинг хоста. Это очень полезно, если мы применяем шаблон к коммутаторам с разным количеством портов.
Удобство автоматического обнаружения интерфейсов заключается в том, что нам более не нужно руками прописывать каждый интерфейс в конфигурации хоста и при удалении/ добавлении менять конфигурацию руками, все будет происходить автоматически.
Откроем ваш шаблон для хоста (посмотреть как создавать шаблон вы можете в этой статье) и сразу переходим в раздел Discovery rules
и нажимаем кнопку справа вверху Create discovery rule
.
Заполняем поля как показано на скриншоте (значения ниже):
Name
— ну тут понятно
Type
— SNMPv2 (так как мониторим по snmp)
Key
— Задаём уникальный ключ(придумываем сами)
SNMP OID
— Здесь указываем OID для получения значений. Форма записи которую вы видите на скриншоте сразу привязывает полученное значение к макросу, который в будущем мы будем использовать.
SNMP community
— указываем макрос который позволит получить значение из настроек хоста
Name - Network Interfaces Key - net.if.discovery SNMP OID - discovery[{#SNMPVALUE},1.3.6.1.2.1.2.2.1.8,{#IFADMINSTATUS},1.3.6.1.2.1.2.2.1.7,{#IFALIAS},1.3.6.1.2.1.31.1.1.1.18,{#IFNAME},1.3.6.1.2.1.31.1.1.1.1,{#IFDESCR},1.3.6.1.2.1.2.2.1.2,{#IFTYPE},1.3.6.1.2.1.2.2.1.3,{#IFOPERSTATUS},1.3.6.1.2.1.2.2.1.8] SNMP community - {$SNMP_COMMUNITY}
Далее открываем вкладку Filters и вносим параметры:
Настраиваем 2 фильтра которые будут добавлять только интерфейсы в которые сейчас подключены какие-то устройства и диапазон портов 1-28 (так как в сети мы используем в основном коммутаторы на 26 — 28 портов)
{#IFOPERSTATUS} - 1 {#SNMPINDEX} - ^(?:[1-9]|1[0-9]|2[0-8])$
Сохраняем настройки, часть работы сделана. Теперь нужно добавить прототип айтема. Добавлять прототипы триггеров и графиков мы не будем, в конце статьи я выложу готовый шаблон.
Переходим в раздел Item prototypes
и создаём новый прототип (кнопка справа вверху)
Name — это ясно, однако мы используем макросы которые мы задали немного выше для того, чтобы получить номер порта и его подпись.
Key
— уникальный ключ
SNMP OID
— OID по которому мы считываем значение
Units
— bps
Name - PORT {#IFNAME}({#IFALIAS}): Bits received Key - net.if.in[ifHCInOctets.{#SNMPINDEX}] SNMP OID - 1.3.6.1.2.1.31.1.1.1.6.{#SNMPINDEX} Units - bps
Перейдем на вкладку Preprocessing
значения указываем:
Change per second Custom multiplier - 8
Сохраняем наш прототип и теперь после применения шаблона к хосту раз в час будет происходить проверка всех портов коммутатора и добавление их в мониторинг в ином случае при стандартных настройках если порт был добавлен но потом стал неактивным, он будет сохранен на период в 30 дней.
Надеюсь мне удалось в 2х словах на маленьком примере показать как настраивать Discovery rules
, ниже привожу шаблон который использую я в текущей конфигурации мониторинга.
Можете объяснить значение символов в выражении которое относится к макросу snmpindex.
Каким образом можно уточнить поддерживает mib библиотека тот или иной макрос?