Skip to main content

Мониторинг протоколов динамической маршрутизации в Zabbix, на примере BGP и ISIS

В наше время без протоколов динамической маршрутизации не может обойтись ни один провайдер, а без подобающего мониторинга мы не можем быть точно уверены в том что всё работает как надо ( Например, наш узел переключился на резерв и мы даже не увидели перерыва связи, а isis через основной канал "развалился").

zabbix triggers

Начнём с ISIS. С помощью шаблона мы сможем найти всех соседей определённого маршрутизатора, их holdtime, router ID, состояние. 

Создадим шаблон для LLD. Как это делается можно посмотреть в статье "Низкоуровневое обнаружени Zabbix". Название придумайте любое, например ISIS discovery. Сразу оговорюсь, настраивать буду для cisco. Для juniper в конце дам OID. Если потребуется - можете настроить по аналогии.

zabbix isis1

В качестве OID для обнаружения будем использовать 1.3.6.1.4.1.9.10.118.1.6.1.1.4 (ciiISAdjNeighSNPAAddress)

zabbix isis2

 Нам понадобится 2 элемента. ID соседей (с помощью этого ID можно будет узнать с кем именно упала сессия, а так же с помощью автозамены в Zabbix указать hostname оборудования), и состояние ISIS.

zabbix isis3zabbix isis4

Теперь мы будем собирать с маршрутизатора данные с Router ID и текущем состоянии для всех ISIS сессий. Для более точного мониторинга можно собирать uptime, т.к. ISIS может успеть поменять своё состояние несколько раз за время опроса (30 сек). В триггере мы будем проверять значение ISIS state. Если оно не равно 3, значит сессия упала.

zabbix isis5

Чтобы вместо ID у нас высвечивался например hostname, можно настроить автозамену, так же автозамену можно настроить для состояний. Идём в Администрирование -> Общее -> Преобразование значений. Создаём правила. Затем эти правила нужно применить к прототипам узлов. В меню "Отображение значений" выбрать наше правило.

zabbix isis6

В результате, сообщение триггера будет выглядеть следующим образом: ISIS with host *hostname* (*router ID*) is *status*

zabbix isis7

 Для 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)

zabbix bgp1

zabbix bgp2

Для состояний BGP так же желательно настроить замену:

1 : idle
2 : connect
3 : active
4 : opensent
5 : openconfirm
6 : established

В результате получаем информативный мониторинг нашей сети:

 zabbix bgp3

zabbix, triggers, monitoring, bgp, isis