Автоматизация задач с помощью eem

56
Сергей Никитин Инженер центра технической поддержки Cisco TAC (Moscow) Июль 26, 2016 Автоматизация задач с помощью EEM Cisco Support Community Expert Series Webcast

Upload: cisco-russia

Post on 13-Apr-2017

335 views

Category:

Technology


12 download

TRANSCRIPT

Page 1: Автоматизация задач с помощью EEM

Сергей Никитин

Инженер центра технической поддержки Cisco TAC (Moscow)

Июль 26, 2016

Автоматизация задач с помощью EEM

Cisco Support Community

Expert Series Webcast

Page 2: Автоматизация задач с помощью EEM

Как стать активным участником? Легко!

• Создавайте документы, пишите блоги, загружайте

видео, отвечайте на вопросы пользователей.

• Вклад оценивается на основе таблицы лидеров

• Также оценивается количество документов, блогов и

видео, созданных пользователем.

• Вклад оценивается только по русскоязычному

сообществу, не включая рейтинг, набранный в

глобальном Cisco Support Community.

Премия "Самый активный участник Сообщества Поддержки Cisco"

Page 3: Автоматизация задач с помощью EEM

Оцени контент

Ваши оценки контента дают возможность атворам получать баллы.

Хотите чтобы поиск был удобным и простым? Помогите нам распознать качественный контент в Сообществе. Оценивайте документы, видео и блоги.

Пожалуйста, не забывайте оценивать ответы пользователей, которые щедро делятся своим временем и опытом

https://supportforums.cisco.com/ru/community/4926/pomoshch-help

Page 4: Автоматизация задач с помощью EEM

26 июля 2016 – 05 августа 2016

Сессия «Спросить Эксперта»с Сергеем Никитиным, Дмитрием Леонтьевым и Александром Чевердой

Получить дополнительную информацию, а также задать вопросы эксперту в рамках данной темы Вы можете на странице, доступной по ссылке: https://supportforums.cisco.com/ru/discussion/13078266

Вы можете получить видеозапись данного семинара и текст сессии Q&A в течении ближайших 5 дней по следующей ссылкеhttps://supportforums.cisco.com/community/russian/expert-corner/webcast

Page 5: Автоматизация задач с помощью EEM

Конкурс “Автоматизация задач с помощью EEM”

26 июля в 14:00 мск

Мы предлагаем Вам принять участие в конкурсе после

проведения вебкаста, который так и будет называться

“Автоматизация задач с помощью EEM”

• Первые три победителя получат фирменную флеш-карту Cisco

Support Community

• Ответы присылайте на [email protected]

• Задание конкурса будет размещено сегодня после проведения

вебкаста

Page 6: Автоматизация задач с помощью EEM

Скачать презентацию Вы можете по ссылке:

https://supportforums.cisco.com/ru/document/13078286

Спасибо, что присоединились к нам сегодня!

Page 7: Автоматизация задач с помощью EEM

Присылайте Ваши вопросы!Используйте панель Q&A, чтобы задать вопрос.

Наши эксперты Дмитрий и Александр ответят на

них.

Сегодняшняя

презентация включает

опросы аудитории

Пожалуйста, примите

участие в опросах!

Page 8: Автоматизация задач с помощью EEM

Сергей Никитин

Инженер центра технической поддержки Cisco TAC

26 Июля, 2016

Автоматизация задач с помощью EEM

Cisco Support Community

Expert Series Webcast

Page 9: Автоматизация задач с помощью EEM

Вопрос 1

Какой у Вас опыт работы с EEM?

1. У меня большой опыт работы с ЕЕМ, но я хочу освежить знания или узнать что-то новое

2. Я могу писать EEМ, но нуждаюсь в теории и практике

3. EEM – это нечто новое для меня и мне нужно больше информации

Page 10: Автоматизация задач с помощью EEM

• Вступление

• Архитектура EEM

• Матрица версий

• Апплеты

• TCL скрипты

• IOS.sh скрипты

• Работа с EEM

• Лабораторная работа

• Заключение

Содержание

EEM V1 EEM V2 EEM V3…

Feature 1

Feature 2

Feature 3

Задачи по автоматизации

Теория

Практика

Page 11: Автоматизация задач с помощью EEM

Вступление

Вступление

Архитектура EEM

Матрица версий

Апплеты

TCL скрипты

IOS.sh скрипты

Работа с EEM

Лабораторная работа

Заключение

Page 12: Автоматизация задач с помощью EEM

• Периодические или запланированные задачи - pro-active

• Отслеживание события - re-active

• Действия from inside the box

• Сложные задачи

• Работа с динамическими данными

• Программирование

Вступление

EEM это встроенный функционал

операционных систем Cicso,

отслеживающий события и

управляющий ими. Механизм позволяет

автоматизировать задачи по

информационно-технологическому

обслуживанию и эксплуатации

оборудования Cisco.

Page 13: Автоматизация задач с помощью EEM

Архитектура EEM

Вступление

Архитектура EEM

Матрица версий

Апплеты

TCL скрипты

IOS.sh скрипты

Работа с EEM

Лабораторная работа

Заключение

Page 14: Автоматизация задач с помощью EEM

• Policy – сценарий из команд которые необходимо выполнить

• Апплет – список действий

• TCL скрипт - байткод

• IOS.sh скрипт – скрипт оболочки IOS

• EEM Server

• Event Detector

Архитектура EEM

Page 15: Автоматизация задач с помощью EEM

Архитектура EEM – примеры ED

Событие (Event )

Действие (Action)

application Application specific event

cli CLI event

config Configuration policy event

counter Counter event

env Environmental event

gold GOLD event

interface Interface event

ioswdsysmon IOS WDSysMon event

ipsla IPSLA Event

neighbor discovery Neighbor Discovery event

none Manually run policy event

oir OIR event

resource Resource event

rf Redundancy Facility event

routing Routing event

rpc Remote Procedure Call event

snmp SNMP event

snmp notification SNMP Notification Event

snmp object SNMP object event

syslog Syslog event

tag event tag identifier

timer Timer event

track Tracking object event

show event manager detector all

Page 16: Автоматизация задач с помощью EEM

show event manager detector <event detector> detailed

Пример для syslog ED:

Архитектура EEM - синтаксис детектора

%F

AC

ILIT

Y-S

EV

ER

ITY

-MN

EM

ON

IC

Page 17: Автоматизация задач с помощью EEM

• Глобальные переменные (global a, Tcl-supplied)

• Локальные переменные

• Переменные среды: Заданныепеременные(event manager environment) и встроенные

переменные событий – специфические для каждого ED (sh event manager

detector <event detector>

detailed)

• Переменные в полиси задаются префиксом $

• Системные переменные имеют второй префикс _

Архитектура EEM - переменные

Примеры:

$_event_id – уникальный ID события

$_event_pub_sec – время возникновения события

Page 18: Автоматизация задач с помощью EEM

Часто используемый функционал:

Перенаправление вывода

Remote run - EEM Trap

Вложение полиси - Nesting

Архитектура EEM

Page 19: Автоматизация задач с помощью EEM

Матрица версий

Вступление

Архитектура EEM

Матрица версий

Апплеты

TCL скрипты

IOS.sh скрипты

Работа с EEM

Лабораторная работа

Заключение

Page 20: Автоматизация задач с помощью EEM

Матрица версийshow event manager version

Page 21: Автоматизация задач с помощью EEM

Апплеты

Вступление

Архитектура EEM

Матрица версий

Апплеты

TCL скрипты

IOS.sh скрипты

Работа с EEM

Лабораторная работа

Заключение

Page 22: Автоматизация задач с помощью EEM

• Список процедур - действий

• Пишутся в конфигурации (cli-based)

• В 1 апплете несколько событий. Любое событие является триггером.

• В 1 апплете много действий (нумерация Х.Х, лексикографический порядок)

• Манипуляция значений переменных

• Вложения (nesting)

• А так-же: регулярные выражения, петли, ветвления

Апплеты

Page 23: Автоматизация задач с помощью EEM

• Инициализация - название

• ED

• Описание (desctiption) - опционально

• Действия (actions)

Апплеты - составляющие

Page 24: Автоматизация задач с помощью EEM

Апплеты - действия

Событие (Event )

Действие (Action)

add Add help Read/Set parser help buffer

append Append to a variable if if conditional

break Break out of a conditional loop increment Increment a variable

cli Execute a CLI command info Obtain system specific information

cns-event Send a CNS event mail Send an e-mail

comment add comment multiply Multiply

context Save or retrieve context information policy Run a pre-registered policy

continue Continue to next loop iteration publish-event Publish an application specific event

counter Modify a counter value puts print data to active tty

decrement Decrement a variable regexp regular expression match

divide Divide reload Reload system

else else conditional set Set a variable

elseif elseif conditional snmp-object-value Specify value for the SNMP get request

end end conditional block snmp-trap Send an SNMP trap

exit Exit from applet run string string commands

file file operations subtract Subtract

force-switchover Force a software switchover syslog Log a syslog message

foreach foreach loop track Read/Set a tracking object

gets get line of input from active tty wait Wait for a specified amount of time

handle-error On error action while while loop

Page 25: Автоматизация задач с помощью EEM

event manager applet HIGHCPU_NETDR

event snmp oid 1.3.6.1.4.1.9.9.109.1.1.1.1.3.1 get-type exact entry-op ge entry-val "80" exit-op le exit-val "60" exit-type value poll-interval 20 maxrun 600

description "CSC Webcast Example"

action 1.1 syslog priority informational msg "START LOGGING [$_snmp_oid_val] / Log index [$_event_id.$_event_pub_sec.$_event_pub_msec]"

action 1.2 cli command "enable"

action 2.1 cli command "debug netdr capture rx"

action 2.2 wait 30

action 3.1 cli command "show netdr captured-packets | append disk0:netdr.$_event_id.$_event_pub_sec.$_event_pub_msec.log"

action 3.2 cli command "undebug all"

action 3.3 cli command "debug netdr clear-capture"

action 4.1 syslog priority informational msg "END OF SCRIPT] / Log index [$_event_id.$_event_pub_sec.$_event_pub_msec]"

action 4.2 cli command "show loggi | append disk0:sh_log2.$_event_id. [$_snmp_oid_val$_event_pub_sec.$_event_pub_msec.log"

Апплеты – пример 1. SNMP EDНазваниеED

Действия

Апплет запускается после того, как значение запрашиваемого объекта

превысит входное пороговое значение скрипта.

Апплет повторно инициализируется после превышения выходного

порогового значения

Опции:

oid – отслеживаемый объект

get-type – тип операции (запрашиваемый объект или следующий объект)

poll-interval – интервал между запросамиentry-op, exit-op – оператор (eq, lt, gt, ge, le, ne)

entry-val, exit-val – пороговые значения

entry-type, exit-type - типы пороговых значений: increment (счетчики), rate,

value

Syslog action высылает сообщения с конфигурируемым северити (6-INF

по умолчанию, может быть custom)

https://cway.cisco.com/tools/netdr

Page 26: Автоматизация задач с помощью EEM

event manager applet GLBPFLAP

description "CSC Webcast Example"

event syslog pattern ".*GLBP-6-FWDSTATECHANGE.*"

action 1.1 set i "0"

action 1.2 cli command "enable"

action 2.0 while $i le 4

action 3.0 cli command "show proc cpu so | append flash:glbp.$_event_id.$_event_pub_sec.$_event_pub_msec.log"

action 3.1 increment i

action 4.0 end

Апплеты – пример 2. Syslog ED

Апплет запускается после того, как в логе появится запись

соответствующая конфигурации шаблона.

Cli action – позволяет запускать команды из Command Line Interface

Запуск не отличается от стандартной работы с CLI (authentication,

authorization, enable, VTY)

Page 27: Автоматизация задач с помощью EEM

event manager applet NONE

description "CSC Webcast Example"

event none

action 1.0 cli command "enable"

action 2.0 cli command "show run int $_none_arg1 | append disk0:int.$_event_id.cfg"

Апплеты – пример 3. None ED

Запуск: event manager run POLICYNAME

Апплет запускается в ручном режиме.

Предназначение: проверка и отладка + сложные задачи

Поддерживает до 15 входящих аргументов

Page 28: Автоматизация задач с помощью EEM

Вопрос 2

Лабораторная работа

Какая из нижеперечисленных задач была бы Вам интересна для детального рассмотрения в лаборатории?

1. High CPU прерываниями(interrupts) на 6500. Решение High CPU при помощи NetDR

2. High CPU вызванное процессамина ASR1k. Проверяем утилизацию CPU после появления сообщений в syslog

Page 29: Автоматизация задач с помощью EEM

event manager applet CLIALERT

event cli pattern "^clear logg.*" sync yes

action 1.0 syslog msg "Please do not use $_cli_msg command"

action 3.0 mail server "192.168.229.1" to "[email protected]" from "[email protected]" subject "CLI

execution" body "$_cli_msg executed"

action 2.0 set _exit_status 0

Апплеты – пример 4. CLI ED

Апплет запускается после ввода команды из сконфигурированного

шаблона

В шаблоне могут использоваться регулярные выражения

Есть возможность запуска команды, ее изменения или отмены (exit 0).

Mail action – позволяет высылать email одному или нескольким

пользователям (разделенных запятыми)

Page 30: Автоматизация задач с помощью EEM

event manager applet glbp-change

event syslog pattern ".*GLBP-6-FWDSTATECHANGE.*"

action 3.0 snmp-trap intdata1 123456

!

snmp-server enable traps event-manager

snmp-server host 192.168.0.254 traps public event-manager

Апплеты – пример 5. Действие SNMPTrap

В дополнение к сбору логов на локальном маршрутизаторе, с помощью

действия Трап можем собрать логи на удаленном маршрутизаторе

event manager applet glbp-change

event snmp-notification oid 1.3.6.1.4.1.9.10.91.1.2.3.1.9. oid-val "123456" op eq src-ip-address 192.168.0.253

action 1.0 cli command "enable"

action 2.0 cli command "show proc cpu so | append flash:trap.$_event_id.$_event_pub_sec.$_event_pub_msec.log"

!

snmp-server community public RO

snmp-server manager

Page 31: Автоматизация задач с помощью EEM

TCL скрипты

Вступление

Архитектура EEM

Матрица версий

Апплеты

TCL скрипты

IOS.sh скрипты

Работа с EEM

Лабораторная работа

Заключение

Page 32: Автоматизация задач с помощью EEM

• Исходный код интерпретируется в промежуточный байткод.

• Пишутся как текстовый файл.

• Копируются в память флэш.

• Среда программирования.

• Расширение *.tcl

TCL скрипты

Page 33: Автоматизация задач с помощью EEM

• ED

• Переменные (опционально)

• Импорт библиотек

• Функции входа (опционально)

• Тело скрипта

• Функция выхода (опционально)

TCL скрипты - составляющие

Page 34: Автоматизация задач с помощью EEM

# CSC Webcast Example

::cisco::eem::event_register_syslog pattern {.*GLBP-6-FWDSTATECHANGE.*}

::cisco::eem::description "CSC Webcast Example "

namespace import ::cisco::eem::*

namespace import ::cisco::lib::*

array set arr_einfo [event_reqinfo]

if [catch {cli_open} result] {

error $result $errorInfo

} else {

array set cli1 $result

}

if [catch {cli_exec $cli1(fd) "enable"} _cli_result] {

error $_cli_result $errorInfo

}

if [catch {cli_exec $cli1(fd) "show proc cpu so | append

disk0:/glbp.$arr_einfo(event_id).$arr_einfo(event_pub_sec).$arr_einfo(event_pub_msec).log"} _cli_result] {

error $_cli_result $errorInfo

}

# Close open cli before exit.

catch {cli_close $cli1(fd) $cli1(tty_id)} result

TCL скрипты - примерED

http://www.marcuscom.com/convert_applet/

Переменные

Библиотеки

Page 35: Автоматизация задач с помощью EEM

Работа с TCL

Полезные команды для работы с Tcl

1. show event manager policy available system

2. Регистрация3. event manager directory user library disk0:/eemlib

Добавляем в полиси: source "user_library.tcl“

Page 36: Автоматизация задач с помощью EEM

Router#mkdir disk0:/policies

Router#copy tftp://172.18.123.33/syslog_policy.tcl disk0:/policies/syslog_policy.tcl

Router#config t

Router(config)#event manager directory user policy disk0:/policies

Router(config)#event manager policy syslog_policy.tcl type user

Работа с TCL - Регистрация Tcl

Пометка

Если убрать команду event manager directory user полиси не запустится

mkdir disk0:/policies

event manager directory user policy disk0:/policies

event manager directory user repository "tftp://10.76.76.160/snikitin"

event manager update user policy name POLICYNAME

Page 37: Автоматизация задач с помощью EEM

Отладка TCL

debug event manager tcl cli

Показывает выполняемые команды CLI и их вывод

debug event manager tcl commands

Показывает результат выполнения остальных команд

Page 38: Автоматизация задач с помощью EEM

IOS.sh скрипты

Вступление

Архитектура EEM

Матрица версий

Апплеты

TCL скрипты

IOS.sh скрипты

Работа с EEM

Лабораторная работа

Заключение

Page 39: Автоматизация задач с помощью EEM

• Скрипт

• Пишутся как текстовый файл.

• Системная оболочка

• Процедура регистрации

• Расширение *.sh

IOS.sh скрипты

Page 40: Автоматизация задач с помощью EEM

• ED

• Функции входа (опционально)

• Тело скрипта

• Функция выхода (опционально)

IOS.sh скрипты - составляющие

Page 41: Автоматизация задач с помощью EEM

IOS.sh скрипты

# This script will initiate ping to all hosts from subnetwork 192.168.1.0/29

##::cisco::eem::event_register_none tag pingtest

##::cisco::eem::description "CSC Webcast Example"

for x in 1 2 3 4 5 6

do

ping "192.168.1.$x"

done

Скрипт запустит пинг на все хосты в подсети 192.168.1.0/29

Page 42: Автоматизация задач с помощью EEM

Работа с EEM

Вступление

Архитектура EEM

Матрица версий

Апплеты

TCL скрипты

IOS.sh скрипты

Работа с EEM

Лабораторная работа

Заключение

Page 43: Автоматизация задач с помощью EEM

• show event manager policy registered – показывает все зарегистрированные полиси

• show event manager policy pending – показывает процессы ожидающие запуска

• show event manager policy active – процессы запущенные в данный момент

• debug event manager detector – включение дебага определенного ED

Работа с EEM

По умолчанию полиси запускаются в течение 20 сек.

#Выполнение exit/end вконце действий.

KILLRouter#event manager scheduler clear all

Page 44: Автоматизация задач с помощью EEM

Если на оборудовании настроен AAA, то все команды CLI авторизируются.

2 способа: авторизируемся или обходим авторизацию

Настройка авторизации для EEM

event manager session cli username <username>

Пользователь с соответствующими привилегиями (Priviledge)

Обойти авторизацию можно так:

Applet:event manager applet myapplet authorization bypass

Tcl:event manager policy mypol.tcl authorization bypass type user

IOS.sh:event manager policy mypol.sh authorization bypass type user

Работа с EEM - Авторизация

Page 45: Автоматизация задач с помощью EEM

• Eclipse, Komodo – IDE

• Tkcon http://wintcltk.sourceforge.net/

• LMS

• EASy Installer – tcl скрипт для интерактивного управления (например Deploy, Verify) tcl скриптами

Работа с EEM - иструментарий

http://www.eclipse.org/dltk/install.php

http://www.activestate.com/activetcl

Page 46: Автоматизация задач с помощью EEM

Лабораторная работа

Вступление

Архитектура EEM

Матрица версий

Апплеты

TCL скрипты

IOS.sh скрипты

Работа с EEM

Лабораторная работа

Заключение

Page 47: Автоматизация задач с помощью EEM

Заключение

Вступление

Архитектура EEM

Матрица версий

Апплеты

TCL скрипты

IOS.sh скрипты

Работа с EEM

Лабораторная работа

Заключение

Page 48: Автоматизация задач с помощью EEM

• Tcl Scripting for Cisco IOS • Tcl 8.5 Network Programming

Заключение - литература

Page 49: Автоматизация задач с помощью EEM

Заключение - ссылки

• “Writing Embedded Event Manager Policies Using the Cisco IOS CLI”

• “Embedded Event Manager (EEM) Scripting Community (Cisco Beyond)”

• “Cisco EEM Best Practices”

• “Cisco IOS Shell Configuration Guide”

Page 50: Автоматизация задач с помощью EEM

Вопрос 3

Какие презентации по тематике автоматизации Вам могли бы быть интересны?

1. OnePK

2. TCL

3. OpenFlow

Page 51: Автоматизация задач с помощью EEM

Отправьте свой вопрос сейчас!Используйте панель Q&A, чтобы задать вопрос.

Эксперты ответят на Ваши вопросы.

Page 52: Автоматизация задач с помощью EEM

Приглашаем Вас активно участвовать в Сообществе и социальных сетях

Vkontakte http://vk.com/cisco

Facebook http://www.facebook.com/CiscoSupportCommunity

Twitter https://twitter.com/CiscoRussia

You Tube http://www.youtube.com/user/CiscoRussiaMedia

Google+ https://plus.google.com/106603907471961036146

LinkedIn http://www.linkedin.com/groups/Cisco-Russia-CIS-3798428

Instgram https://instagram.com/ciscoru

Newsletter [email protected]

Page 53: Автоматизация задач с помощью EEM

Мы также предоставляем Вашему вниманию Сообщества на других языках!

Если Вы говорите на Испанском, Португальском или Японском, мы приглашаем Вас принять участие в Сообществах:

Русскоеhttp://russiansupportforum.cisco.com

Испанскоеhttps://supportforums.cisco.com/community/spanish

Португальскоеhttps://supportforums.cisco.com/community/portuguese

Японскоеhttps://supportforums.cisco.com/community/csc-japan

Китайскоеhttp://www.csc-china.com.cn

Если Вы говорите на Испанском,

Португальском или Японском, мы

приглашаем Вас принять участие на

Вашем родном языке

Page 54: Автоматизация задач с помощью EEM

Технические семинары в клубе Cisco Expo Learning Club

http://ciscoclub.ru/events

Page 55: Автоматизация задач с помощью EEM

Пожалуйста, участвуйте в опросе

Спасибо за Ваше внимание!

Page 56: Автоматизация задач с помощью EEM