Мониторинг протоколов динамической маршрутизации в Zabbix, на примере BGP и ISIS
В наше время без протоколов динамической маршрутизации не может обойтись ни один провайдер, а без подобающего мониторинга мы не можем быть точно уверены в том что всё работает как надо ( Например, наш узел переключился на резерв и мы даже не увидели перерыва связи, а isis через основной канал "развалился").
Начнём с ISIS. С помощью шаблона мы сможем найти всех соседей определённого маршрутизатора, их holdtime, router ID, состояние.
Создадим шаблон для LLD. Как это делается можно посмотреть в статье "Низкоуровневое обнаружени Zabbix". Название придумайте любое, например ISIS discovery. Сразу оговорюсь, настраивать буду для cisco. Для juniper в конце дам OID. Если потребуется - можете настроить по аналогии.
В качестве OID для обнаружения будем использовать 1.3.6.1.4.1.9.10.118.1.6.1.1.4 (ciiISAdjNeighSNPAAddress)
Нам понадобится 2 элемента. ID соседей (с помощью этого ID можно будет узнать с кем именно упала сессия, а так же с помощью автозамены в Zabbix указать hostname оборудования), и состояние ISIS.
Теперь мы будем собирать с маршрутизатора данные с Router ID и текущем состоянии для всех ISIS сессий. Для более точного мониторинга можно собирать uptime, т.к. ISIS может успеть поменять своё состояние несколько раз за время опроса (30 сек). В триггере мы будем проверять значение ISIS state. Если оно не равно 3, значит сессия упала.
Чтобы вместо ID у нас высвечивался например hostname, можно настроить автозамену, так же автозамену можно настроить для состояний. Идём в Администрирование -> Общее -> Преобразование значений. Создаём правила. Затем эти правила нужно применить к прототипам узлов. В меню "Отображение значений" выбрать наше правило.
В результате, сообщение триггера будет выглядеть следующим образом: ISIS with host *hostname* (*router ID*) is *status*
Для Juniper OID немного отличается: удаляется пару октетов, например для обнаружения необходимо использовать такой:
1.3.6.1.2.1.138.1.6.1.1.4
Соответственно для Router ID в конце вместо 4 ставим 6, для состояния 2.
BGP для обоих вендоров настравивается одинакого, поэтому достаточно создать всего 1 шаблон.
Настройки аналогичные, используем следующие OID:
1.3.6.1.2.1.15.3.1.7 -remote IP для обнаружения
1.3.6.1.2.1.15.3.1.3 - административное состояние
1.3.6.1.2.1.15.3.1.2 - состояние BGP
1.3.6.1.2.1.15.3.1.7 - добавим remote IP как элемент для замены (как в случае с ISIS)
Остаётся добавить триггеры. Я добавил 2. Одни реагирует на изменение состояния сессии ( если не 6 - established и с нашей стороны всё включено, т.е. административное состояние=2), второй информирует если с нашей стороны сессию погасили (административное состояние=1)
Для состояний BGP так же желательно настроить замену:
1 : idle
2 : connect
3 : active
4 : opensent
5 : openconfirm
6 : established
В результате получаем информативный мониторинг нашей сети: