В предыдущей статье я описывал как можно автоматически искать новые устройства в сети, применять к ним шаблоны и добавлять в мониторинг. Сейчас же мы рассмотрим как можно автоматически добавлять интерфейсы или другие объекты в мониторинг хоста. Это очень полезно, если мы применяем шаблон к коммутаторам с разным количеством портов.
Удобство автоматического обнаружения интерфейсов заключается в том, что нам более не нужно руками прописывать каждый интерфейс в конфигурации хоста и при удалении/ добавлении менять конфигурацию руками, все будет происходить автоматически.
Откроем ваш шаблон для хоста (посмотреть как создавать шаблон вы можете в этой статье) и сразу переходим в раздел 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 библиотека тот или иной макрос?
Привет, спасибо за отличные статьи.
Есть практический вопрос про автообнаружение.
Железки например все разные, 10 таких, 10 таких, 10 таких.
Автообнаружение их находит, а что дальше то с ними делать. Как привязать одни к одному шаблону, другие к другому.
Буду благодарен за совет.