O EEM – Embedded Event Manager é um subsistema dentro do IOS, que permite monitorar eventos em real time, bem como executar medida corretivas ou informativas com base nestes eventos.
É possivelmente a funcionalidade mais “cool” que a Cisco já colocou no roteador. Com o EEM podemos criar ações customizadas para uma dezena de situações, tendo como limite apenas a imaginação.
Por exemplo, se uma interface fica down, automaticamente o roteador gera uma mensagem syslog. Mas com o EEM podemos criar uma política, onde além da mensagem, um e-mail seja enviado ou até mesmo que um mensagem seja enviada para o Twitter (sério, e isso já existe, veja o @myciscorouter).
Deu para perceber as possibilidades??
Além de ser executado automaticamente por gatilhos (eventos), também é possível executar o Applet ou Script manualmente, como veremos abaixo.
Alguns termos importantes
-
EEM Policy: é uma entidade que define um evento e as ações a serem tomadas quando este evento ocorrer.
-
Applet: forma mais simples de política, criada usando a própria CLI. Apenas um evento é permitido em no Applet.
-
Script: é a política criada usando o TCL – Tool Command Language. É como uma linguagem de programação, e os scripts devem ser criados em um editor de texto. Depois são enviados para a flash e registrados no EEM.
-
Event Detectors: programas usados pelo EEM para detectar quando um evento ocorre. São sistemas separados, que fazem a interface entre o EEM Agent e o EEM Policy. Exemplos de Event Detectors: CLI ED, Counter ED, GOLD ED, IP SLA ED, SNMP ED, entre outros.
-
EEM Actions: ação configurada em uma política e executada após um evento monitorado. Exemplos de ações: executar um comando (ou conjunto de comandos), gerar um trap SNMP, reiniciar o roteador, enviar um e-mail.
-
EEM Environment Variables: são variáveis que podemos usar nas políticas. Funcionam de forma similar as variáveis utilizadas em linguagens de programação. Existem variáveis pré definidas e também é possível criar variáveis.
EEM Applet – Gerando uma mensagem
Depois da introdução, vamos para prática. Como vocês devem ter percebido, o EEM é bem interessante, mas também pode ser complexo.
Este exemplo é apenas para iniciarmos, e não teria nenhuma aplicação prática.
Mensagem Syslog gerada através de um EEM Applet
BrainRT01#conf t
! No nome de conf global crie um applet e de um nome
BrainRT01(config)#event manager applet falha1
! Defina o evento, neste caso nenhum
BrainRT01(config-applet)# event none
! Defina a ação. Neste caso uma mensagem Syslog será gerada
BrainRT01(config-applet)# action TESTE syslog priority emergencies msg "TESTE APPLET"
BrainRT01(config-applet)#end
! No modo de configuração privilegiado execute o applet criado.
BrainRT01#event manager run falha1
BrainRT01#
May 12 18:12:27.503: %HA_EM-0-LOG: falha1: TESTE APPLET
EEM Applet – No shutdown automático
Este exemplo, mais elaborado, encontrei no blog anetworkerblog. Com ele uma interface que é colocada em administrativamente down, volta ficar UP automaticamente (imagina a cara do administrador…).
No shutdown em uma interface com EEM
BrainRT01#conf t
! Crie um applet
BrainRT01(config)#event manager applet No_shut_Lo0
! Defina o evento
BrainRT01(config-applet)#event syslog occurs 1 pattern "Loopback0, changed state to admin"
! Coloque as ações. Aqui temos um conjunto, onde geremos mensagens syslog e
! também comandos, que vão restaurar a interface
BrainRT01(config-applet)#action 1.0 syslog msg "Desabilitaram a Loopbackp0…"
BrainRT01(config-applet)#action 1.1 syslog msg "Vou fazer a lo0 ficar UP novamente, kkkk"
BrainRT01(config-applet)#action 1.2 cli command "enable"
BrainRT01(config-applet)#action 1.3 cli command "conf t"
BrainRT01(config-applet)#action 1.4 cli command "int lo0"
BrainRT01(config-applet)#action 1.5 cli command "no shut"
BrainRT01(config-applet)#action 1.6 syslog msg "Pronto, a Loopback 0 esta UP"
BrainRT01(config-applet)#end
BrainRT01#
Com este applet configurado, sempre que alguém dar um shutdown na interface Loopback0 o EEM vai perceber, através da mensagem gerada pelo roteador, e vai restaurar a interface com o comando no shutdown.
No próximo post vou falar sobre os scripts EEM (que permitem criar políticas mais elaboradas), com um exemplo bacana, e também sobre os riscos do Embedded Event Manager.
E se alguém quiser compartilhar applets/scripts fique a vontade.
Links
Introdução EEM
http://www.cisco.com/en/US/docs/ios/netmgmt/configuration/guide/nm_eem_overview.html
Criando Applets
http://www.cisco.com/en/US/docs/ios/netmgmt/configuration/guide/nm_eem_policy_cli.html
Até a próxima.