Автоматизация задач с помощью встроенного менеджера событий Cisco EEM

Автоматизация задач с помощью встроенного менеджера событий Cisco EEM

Новости

Рассмотрим, как настроить встроенный менеджер событий Cisco EEM (Embedded Event Manager) и автоматизировать выполнение разнообразных задач устройства. Исследуемая топология состоит из маршрутизатора Cisco 2911 с ПО Cisco IOS версии 15. Допускается использование других маршрутизаторов и версий Cisco IOS.

Программное обеспечение Cisco IOS, используя встроенные детекторы, способно распознавать определенные события. А знаете ли Вы, что устройства Cisco можно запрограммировать на различные варианты действий в ответ на эти события? Сделать это можно при помощи Embedded Event Manager (EEM). Эта часть операционной системы Cisco IOS состоит из детекторов событий, менеджера событий и механизма политик менеджера событий. EEM, в основе которого лежит язык Tcl, открывает широкие возможности по автоматизации задач и управлению типами политик.

 

Схема топологии следующая:

 

 

Сценарий

Cisco IOS Embedded Event Manager (EEM) – это подсистема Cisco IOS, которая позволяет создавать апплеты EEM. Аплеты EEM состоят из операторов, которые обнаруживают событие, произошедшее на устройстве IOS или в подключенной сети, и действий, которые должны выполняться при обнаружении события. В IOS доступен ряд детекторов событий, количество которых может варьироваться в зависимости от версии IOS. Действия EEM включают выполнение команд IOS, создание ловушки SNMP (SNMP trap), выполнение других политик EEM или отправку уведомления по электронной почте на адрес, указанный в политике и другие.

В первой части этой статьи будет создан апплет EEM, который будет определять, когда интерфейс становится неработоспособным (line protocol down). Когда интерфейс выходит из строя, предполагается, что в этом интерфейсе возникла проблема. Политика отключает интерфейс и активирует резервный интерфейс.

Во второй части этой статьи будет создан апплет EEM, который определяет, когда была выдана команда для сохранения текущей конфигурации в загрузочную конфигурацию. Перед сохранением конфигурации текущая конфигурация  отправляется на сервер TFTP в качестве резервной копии последней конфигурации.

 

Задачи

Часть 1. Выполнение базовых настроек маршрутизатора
Часть 2. Внедрение апплета EEM для детектора системного журнала (Syslog Detector EEM Applet)
Часть 3. Внедрение апплета EEM детектора интерфейса командной строки (CLI Detector EEM Applet)

 

Часть 1. Команды базовых настроек маршрутизатора
hostname R1
no ip domain lookup
line con 0
exec-t 0 0
logg sync
interface GigabitEthernet0/1
description Link to PC
ip address 192.168.1.1 255.255.255.0
no shutdown
interface Loopback1
description Primary Interface
ip address 192.168.10.1 255.255.255.0
no shutdown
interface Loopback2
description Backup Interface
ip address 192.168.20.1 255.255.255.0
shutdown
end

 

Также можно настроить Tcl-скрипт для базовых настроек:

tclsh
puts [ open "flash:BASE.GFG" w+ ] {
ios_config "hostname R1" "no ip domain lookup" "line con 0" "exec-t 0 0" "logg sync" "exit" "interface GigabitEthernet0/1" "description Link to PC" "ip address 192.168.1.1 255.255.255.0" "no shutdown" "exit"
ios_config "interface Loopback1" "description Primary Interface" "ip address 192.168.10.1 255.255.255.0" "no shutdown" "exit" "interface Loopback2" "description Backup Interface" "ip address 192.168.20.1 255.255.255.0" "shutdown" "end"
}
tclquit

 

Для упрощения запуска скрипта настроим псевдоним (alias) в режиме глобальных конфигураций:

alias exec BASE tclsh BASE.GFG

 

Запустить скрипт теперь можно в привилигированном режиме командой:

BASE

 

Часть 2. Внедрение апплета EEM для детектора системного журнала (Syslog Detector EEM Applet)

 

Было обнаружено, что интерфейс иногда становится нестабильным и выходит из строя по неизвестным причинам. Инженер исследует проблему, чтобы определить причину. Между тем, было принято решение реализовать апплет EEM, который будет обнаруживать сообщение системного журнала, которое выдается, когда интерфейс выходит из строя (line protocol down). При обнаружении этого события будет выполнена серия команд IOS, которые выключат нестабильный интерфейс и активируют резервный интерфейс. В этой статье интерфейсы loopback будут использоваться для моделирования неисправного основного интерфейса и резервного интерфейса.

event manager applet BACKUP_INTERFACE
event syslog pattern "Line protocol on Interface Loopback1, changed state to down"
action 1.0 cli command "enable"
action 1.5 cli command "configure terminal"
action 2.0 cli command "interface loopback1"
action 2.5 cli command "shutdown"
action 3.0 cli command "interface loopback2"
action 3.5 cli command "no shutdown"
action 4.0 cli command "end"
action 5.0 mail server "mailserver.example.com" to "[email protected]" from "[email protected]" subject "Primary interface down." body "Backup interface active $_cli_result"

 

Команды для проверки настроенного апплета:

show event manager policy registered
show ip interface brief
show event manager detector all
show event manager policy pending
show event manager policy active
debug event manager detector
debug event manager tcl cli
debug event manager tcl commands
debug event manager action cli

 

Команда, имитирующая сообщение системного журнала, для проверки работы апплета:

send log "Line protocol on Interface Loopback1, changed state to down"

 

Часть 3. Внедрение апплета EEM детектора интерфейса командной строки (CLI Detector EEM Applet)

 

Детектор CLI срабатывает, когда указанная команда вводится в командную строку. Подобно детектору событий системного журнала, можно указать шаблон регулярного выражения (regular expression pattern), соответствующий желаемой команде CLI. В апплете данной статьи обнаруживается команда copy running-config startup-config. Перед тем как команде будет разрешено выполнение, текущая конфигурация startup-config будет скопирована во флэш-память.

event manager environment TFTP_SERVER tftp://[your PC IP address]/
event manager environment FILE R1_config.cfg
event manager applet LAST_CONFIG
event cli pattern "cop.* ru.* st.*" sync yes
action 1.0 cli command "enable"
action 2.0 cli command "configure terminal"
action 3.0 cli command "file prompt quiet"
action 4.0 cli command "end"
action 5.0 cli command "copy start $TFTP_SERVER$FILE"
action 6.0 cli command "configure terminal"
action 7.0 cli command "no file prompt quiet"
action 8.0 syslog priority information msg "Configuration file backed up to TFTP."
end

 

Посмотрим настроенные переменные:

show event manager environment

 

Снова запускаем

debug event manager action cli

И проверяем работу апплета.

 

Есть важные замечания по написанию апплетов:

  • в именах переменных нельзя использовать дефисы (TFTP-SERVER нельзя, TFTP_SERVER можно);
  • номера действий записываются в формате X.Y, при этом если Х равно, например, 10.Y или 15.Y, то такая запись будет вставляться между 1.Y и 2.Y. Чтобы избежать недорозумений, связанных с нумерацией рекоментуется число Х назначать в пределах от 1 до 9.

 

 

Спасибо за уделенное время на прочтение статьи о том, как настроить встроенный менеджер событий Cisco EEM (Embedded Event Manager) и автоматизировать выполнение разнообразных задач маршрутизатора с Cisco IOS!

 

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet (программируемые сети) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco и Linux с трудоустройством!

Спешите подать заявку! Осталось пару мест. Группы стартуют 22 июля, а следующая 19 августа, 23 сентября, 21 октября, 25 ноября, 16 декабря, 20 января, 24 февраля.
Что Вы получите?
  • Поможем стать экспертом в сетевом администрировании и получить международные сертификаты Cisco CCNA Routing & Switching или Linux LPI.
  • Предлагаем проверенную программу и учебник экспертов из Cisco Networking Academy и Linux Professional Institute, сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и сделать карьеру. 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проводим вечерние онлайн-лекции на нашей платформе или обучайтесь очно на базе Киевского офиса.
  • Спросим у вас об удобном времени для практик и подстроимся: понимаем, что времени учиться мало.
  • Если хотите индивидуальный график — обсудим и осуществим.
  • Выставим четкие дедлайны для самоорганизации. Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
А еще поможем Вам:
  • отредактировать резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроим на работу в Cisco по программе Cisco Incubator, New Graduate и Experienced. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco CCNA Routing & Switching и Linux LPI, подайте заявку или получите бесплатную консультацию.
Новости

Больше похожих постов

4 комментария. Оставить новый

  • Можно код апплета внедрить с помошью tcl ?
    Ответить
  • Добрый день, Евгений! Подробно про использование tcl для создания апплетов EEM Вы можете почитать здесь: https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/eem/configuration/15-mt/eem-15-mt-book/eem-policy-tcl.html
    Ответить
  • Владислав
    21 января 2021 13:28
    Добрый день. Интересует вопрос у меня на 2 роутерах 2951 и 2921 настроено аплет на падение интерфейса, то есть когда гиг 0/0 падает должен подняться гиг 0/1. На 2951 работает, а на 2921 нет. Конфиг одинаковый, куда смотреть?
    track 1 interface GigabitEthernet0/0 line-protocol
    event manager applet Gi0/0-down
    event track 1 state down
    action 1.0 cli command «enable»
    action 2.0 cli command «config term»
    action 3.0 cli command «interface Gi0/1»
    action 4.0 cli command «no shut»
    action 5.0 cli command «end»
    action 6.0 cli command «exit»
    event manager applet Gi0/0-up
    event track 1 state up
    action 1.0 cli command «enable»
    action 2.0 cli command «config term»
    action 3.0 cli command «interface Gi0/1»
    action 4.0 cli command «shut»
    action 5.0 cli command «end»
    action 6.0 cli command «exit»
    Ответить
  • У вас включен AAA? Может event manager session cli username надо ввести.
    Попробуйте debug event manager action cli, вдруг какое-то сообщение из дибага вам поможет.
    Ответить

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения

Самое читаемое
Меню