Thursday, March 30, 2017

Настройка мониторинга VPN туннелей для Cisco ASA 5500 на Zabbix версии 3.x

Задача: На cisco ASA 5500 есть настроенные site-to-site IPsec VPN туннели. Нужно настроить мониторинг загрузки и состояния туннелей в Zabbix 3.x.

В данной статье не рассматривается настройка Zabbix сервера c нуля и cisco ASA 5500, а только конкретный случай. SNMP уже должно быть настроено.


1. В начале нужно на Zabbix сервер установить дополнительные компоненты для perl, так как у меня Ubuntu, то делается это так:
sudo apt-get install libnet-snmp-perl
sudo apt-get install libswitch-perl 

2.  Потом необходимо воспользоваться специальным скриптом query_lan2lan_cisco.pl, который можно скачать по ссылке - http://forums.cacti.net/download/file.php?id=13363 

3. Далее копируем файл или создаем файл (с содержими из этого файла) в каталоге - /usr/lib/zabbix/externalscripts, так как Zabbix по умолчанию ищет их там.

4. Даем права на файл:
chown zabbix:zabbix query_lan2lan_cisco.pl

5. Для проверки можно запустить скрипт c вашими параметрами:
query_lan2lan_cisco.pl community host {ASA,CONCENTRATOR} index
query_lan2lan_cisco.pl community host {ASA,CONCENTRATOR} query {RX,TX}
query_lan2lan_cisco.pl community host {ASA,CONCENTRATOR} get {RX,TX} DEVICE

6. Далее переходим к настройке в Zabbix и создаем новый шаблон -
Template S2S ASA, а в нем добавляем Discovery rules - IPsec VPN tunnels, чтобы туннели добавлялись автоматически по правилу низкоуровневого обнаружения Zabbix (Low-level discovery).


- Name: IPsec VPN tunnels
- Type: SNMP agent
- Key: ciscoMgmt.171.1.2.3.1.7
- SNMP OID:discovery[{#SNMPVALUE},CISCO-SMI::ciscoMgmt.171.1.2.3.1.7]
- SNMP community: {$SNMP_COMMUNITY}

7. В Discovery rules - IPsec VPN tunnels добавляем Item prototype для входящего трафика, исходящего и для состояния интерфейса.
1) Incoming traffic in tunnel to {#SNMPVALUE}

- Name: Incoming traffic in tunnel to {#SNMPVALUE}
- Type: External check
- Key: query_lan2lan_cisco.pl[{$SNMP_COMMUNITY},{HOST.IP},ASA,get,RX,{#SNMPVALUE}]
- Type of information: Numeric (unsigned)
- Data type: Decimal
- Units: bps
- Use custom multiplier: 8
- Store value: Delta (speed per second)

2) Outgoing traffic in tunnel to {#SNMPVALUE}

- Name: Outgoing traffic in tunnel to {#SNMPVALUE}
- Type: External check
- Key: query_lan2lan_cisco.pl[{$SNMP_COMMUNITY},{HOST.IP},ASA,get,TX,{#SNMPVALUE}]
- Type of information: Numeric (unsigned)
- Data type: Decimal
- Units: bps
- Use custom multiplier: 8
- Store value: Delta (speed per second)

3) IPSec Tunnel Status {#SNMPVALUE}

- Name: IPSec Tunnel Status {#SNMPVALUE}
- Type: External check
- Key: query_lan2lan_cisco.pl[{$SNMP_COMMUNITY}, {HOST.IP},ASA,index,{#SNMPVALUE}]
- Type of information: Log

В итоге получим:


8. Для реагирования, что туннель не работает нужно сделать Trigger prototypes:

- Name: S2S to {#SNMPVALUE} Disconnected
- Severity: HIGH
- Expression: {Template S2S ASA:query_lan2lan_cisco.pl[{$SNMP_COMMUNITY}, {HOST.IP},ASA,index,{#SNMPVALUE}].str({#SNMPVALUE},30)}<>0

В итоге получаем:

9. Подключаем шаблон нужным устройствам и ждем пока пойдут данные
9. Далее сделаем графики, чтобы наглядно было видно трафик:

10. Результат:



Источники:
http://www.admuser.net/2017/03/monitor-site-to-site-tunneling-health.html
https://habrahabr.ru/post/195622/


No comments:

Post a Comment