Задача
Необходимо отслеживать состояние IPSec каналов до филиалов. В случае изменения состояния отсылать сообщение на почту администраторов.
Оборудование центрального офиса – CISCO 38хх
Оборудование филиалов – CISCO 18хх
Шифрованный канал организован с использованием VTI.
Cisco IOS Embedded Event Manager (EEM)
Ссылки:
Cisco IOS Embedded Event Manager (EEM) позволяет запрограммировать реакцию устройства Cisco на различные события в реальном времени. EEM является частью операционной системы Cisco IOS. Решение EEM состоит из детекторов событий (Event Detectors), менеджера событий (Event Manager), а также механизма политик менеджера событий (Event Manager Policy Engine). Механизм политик управляет двумя типами политик, настраиваемых пользователями – Applet policies и Tcl policies.
Клиенты могут настроить политики для выполнения определенных действий в случае, если программное обеспечение Cisco IOS через встроенные детекторы событий (show event manager detector all) распознает определенные события. Результатом является чрезвычайно мощный и гибкий набор инструментов, позволяющий автоматизировать многие задачи сетевого управления и контролировать работу Cisco IOS с целью повышения доступности, сбора информации и оповещения внешних систем или персонала о критических событиях.
Вариантов решения задачи несколько, остановимся на использовании CLI Applets. Поскольку у нас используются VTI для организации IPSec канала, то ситуация упрощается – будем отслеживать изменение состояния по сообщениям LINEPROTO-5-UPDOWN в syslog’е. Это позволит использовать один апплет для всех каналов.
//Инициализируем переменные, необходимые для отправки писем event manager environment _email_server 192.168.1.10 event manager environment _email_to noc@headoffice.ru;admin@headoffice.ru event manager environment _email_from cisco@headoffice.ru // Создаем апплет event manager applet VPNTunnelTrack // Указываем интересующее нас событие из syslog’а event syslog occurs 1 pattern "LINEPROTO-5-UPDOWN" action 100 regexp "(..:..:..).*(Tunnel[0-9]+), changed state to (.*)" "$_syslog_msg" var time interface_name interface_state // Проверяем, получилось ли вытащить action 200 if $_regexp_result eq 1 // Вытаскиваем строку с описанием интерфейса, изменившего статус action 300 cli command "show interface $interface_name | include Description" // На всякий случай инициализируем переменную, в которую будем вытаскивать // описание интерфейса action 400 set desc "The state of interface $interface_name has changed. Tunnel Description is not set. Please login to Cisco and describe interface $interface_name." // Вытаскиваем описание интерфейса action 500 regexp "Description: (.*)\r" "$_cli_result" var desc //Для каждого адреса в строке адресатов action 600 foreach email "$_email_to" ";" //Отправляем письмо action 700 mail server "$_email_server" to "$email" from "$_email_from" subject "$desc is $interface_state!" body "$desc got $interface_state at $time, Moscow time." //Конец цикла action 800 end // Вот и все action 900 end |
А как авторизовываться на почтовом сервере?
ОтветитьУдалитьHow change above script ,to send the router to reboot if 1 SIP account is missing in "sh sip-ua register status"
ОтветитьУдалить