MikroTik не умеет IPsec SNMP, эта проблема касается только туннельного режима, так как в транспортном мы в основной используем для шифрования GRE/IPIP/L2TP и т.д., то есть создаем интерфейс, информацию о котором RouterOS может передать по SNMP.
Но при этом RoS умеет по SNMP запускать скрипты и отдавать по ним значения
Профессиональная настройка MikroTik
Без предоплаты
Telegram: @Engineer_MikroTik
Идея взята с https://github.com/gitpel/routeros-ipsec-snmp и немного переделана (всего чуть-чуть)
Для начала необходимо правильно назвать политики IPsec, чтобы был порядок
: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
Теперь с ZABBIX сервера по OID можно выполнить скрипт и получить значение
Получение нужного 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, чтобы сделали сортировку скриптов