Задача
Необходимо отслеживать состояние 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"
ОтветитьУдалить