Мониторинг IPsec Tunnel в ZABBIX по SNMP

MikroTik не умеет отдавать данные по SNMP о IPsec, эта проблема касается только туннельного режима, так как в транспортном мы в основной используем для шифрования GRE/IPIP/L2TP и т.д., то есть создаем интерфейс, информацию о котором RouterOS может передать по SNMP.

Но при этом RoS умеет по SNMP запускать скрипты и отдавать по ним значения

Идея взята с https://github.com/gitpel/routeros-ipsec-snmp и немного переделана (всего чуть-чуть)

Для начала необходимо правильно назвать политики IPsec, чтобы был порядок

Пример логичного названия: Peer_to_MCS
Правда для транспортного режима (GRE), но суть та же
System > Script
Создаем скрипт с аналогичным названием
:local PeerName Peer_to_MCS
if ([/ip ipsec policy get value-name=ph2-state [find peer=$PeerName]] = "established") do={
:put 1
} else= {
:put 0;
/ip ipsec policy enable numbers=[find dst-address=$sadstip];
}

Либо если у вас несколько dst-address, смотрим по IP:

:local sadstip IP/32

if ([/ip ipsec policy get value-name=ph2-state [find dst-address=$sadstip]] = "established") do={
    :put 1
} else= {
    :put 0
    /ip ipsec policy enable numbers=[find dst-address=$sadstip];
}

Строка /ip ipsec policy enable numbers=[find dst-address=$sadstip];
перезапускает IPsec принудительно

Для выполнения скрипта нужно разрешить ZABBIX серверу запись по SNMP

IP > SNMP > Communites

Теперь с ZABBIX сервера по OID можно выполнить скрипт и получить значение

Создаемся сбор данных по UID
1.3.6.1.4.1.14988.1.1.18.1.1.2.1
И делаем на основе него триггер

Получение нужного OID

Основа OID 1.3.6.1.4.1.14988.1.1.18.1.1.2.X
Где X это порядковый номер скрипта. Номера не показываются в системе, но их можно увидеть через /system script print

Обратите внимание, что в RouterOS скрипты сортируются по алфавиту, но внутри системе по последнему добавленному! Так же внутри системы начинается на 0, но по OID вызывается с 1

Я написал в техническую поддержку MikroTik, чтобы сделали сортировку скриптов

Люблю писать им в поддержку, отвечают быстро и по делу 🙂
Многие вещи добавляют только если народ действительно просит.
Так давайте попросим активнее!