Pull to refresh

Мониторинг состояния BGP пиров Cisco роутера при помощи Zabbix

Появилась насущная задача: мониторить состояние BGP пира и получать уведомления, если сессия отваливается. BGP у нас настроен на Cisco 3945, из установленных NMS под рукой был Zabbix 1.8., на нем и решено было сделать соответствующий триггер.

image

1. Сознательно опускаю детали работы с Zabbix. Будем считать, что хост уже заведен в систему, SNMP настроен. Переходим в создание нового Item для хоста.



Самым не очевидным параметром здесь будет SNMP OID. В случае с Cisco найти его можно здесь.
Поиск по ключевому слову «bgp» привел к объекту bgpPeerState, OID 1.3.6.1.2.1.15.3.1.2, который возвращает в числовом формате состояние BGP сессии.
Нас интересует состояние 6- Established.

2. На всякий случай, OID можно легко проверить с помощью snmpwalk:

snmpwalk -v2c -c snmp community адрес хоста 1.3.6.1.2.1.15.3.1.2

Если все верно, то ответ будет примерно следующим:

SNMPv2-SMI::mib-2.15.3.1.2.192.168.130.1 = INTEGER: 6

В этом примере, 192.168.130.1- адрес пира.

3. Возвращаемся в Zabbix и в поле SNMP OID вводим наш объект в формате:

1.3.6.1.2.1.15.3.1.2.xxx.xxx.xxx.xxx
, где xxx.xxx.xxx.xxx- адрес BGP peer.

В поле Key для собственного удобства я также вбил xxx.xxx.xxx.xxx.



4. Если не возникло ошибок при сохранении Item, то переходим к созданию триггера. Так как важно отследить только падение сессии, то есть переход из состояния Established в любое другое, триггер будет очень простым.

Нажимаем на кнопку Expression, выбираем созданный на предыдущих этапах Item.
Function: Last value < N, где N равно 6.
Имя триггера и Severity выбираем на свой вкус.



5. В принципе все готово. Осталось лишь убедиться, что Item ассоциирован с хостом, а также настроен Action при срабатывании триггера.

Решение весьма и весьма простое, но не считаю это недостатком. На данный момент нет задачи мониторить другие пиры, поэтому я ограничился одним триггером. В перспективе планирую сделать аналогичное решение для Juniper.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.