您现在的位置: IT培训 > CCIE > CCIE学习资料 > 正文

【CCIE考点Feature】Embedded Event Manager (EEM)

发布时间:2013-03-18 09:18:11

    之前的任何一种网络管理技术,如SNMP,RMON,在检测到事件发生后,并不能解决问题,这些传统的网管技术只有监测功能,却没有解决故障的功能,因此,为了更有效的管理网络,能够在事件发生时,便采用有效的动作来杜绝网络问题,Cisco推出更进一步的网管技术—Embedded Event Manager (EEM)。
    EEM在正常工作时,能够定期监视指定的事件,当被监测的事件发生后,EEM可以产生指定的信息或指定的动作。EEM如何检测指定的事件,需要指定相应的监测方法和监测标准,当事件发生后,需要产生的信息或执行的动作也需要定义,这一系列的事件和事件发生后需要执行的动作集合起来称为EEM policy ;由于EEM工作复杂,所以EEM需要根据不同的分工定义不同的组件,EEM共有如下几个组件:
EEM server
相当于EEM主程序。
 
Core Event Publishers (Event Detectors)
也就是EEM用于检测事件的组件,负责检测各种定义好的事件,事件的检测可以基于其它网管技术,Event Detectors会在事件发生时向Server报告。
 
Event Subscribers (Policies)
当Event Detector检测到指定的事件发生后,Event Subscribers便执行指定的动作,动作包括产生特定的消息,或执行特定的命令。
 
   EEM可以单独使用,也可以和其它网管技术配合使用,在配置EEM时,就是配置EEM  Policy,因为Policy就是事件和事件发生后需要执行的动作集合,配置Policy,分两种方式:
Applet
Tool Command Language (Tcl)
其中Applet是使用IOS的CLI来配置的,操作相对简单,而Tool Command Language (Tcl)是一种编程所使用的脚本工具,比较专业,需要使用外置的第三方ASCII editor才能编辑和配置,所以,在理论上,单纯只学习Cisco课程应该没有能力编写ASCII editor的,CCIE考试中,目前推算几乎不太可能会考到,而Applet却直接就能在设备上进行配置。
 
由于Cisco的IOS版本众多,所以EEM的版本也是相当多,对于事件的检测和能够执行的动作,会因为EEM版本的不同而有所不同,基本上新版本会包含老版本的功能,对于各个EEM版本所支持的检测方法和执行的动作只作统一列举,而不一一列举,目前所有EEM的版本和对应的IOS版本信息如下:
 
EEM 1.0
支持的IOS :12.0(26)S 、 12.3(4)T 以及后续版本。
 
EEM 2.0
支持的IOS :12.2(25)S 以及后续版本。
 
EEM 2.1
支持的IOS :12.3(14)T, 12.2(18)SXF5, 12.2(28)SB, 12.2(33)SRA以及后续版本。
 
EEM 2.2
支持的IOS :12.4(2)T, 12.2(31)SB3, 12.2(33)SRB以及后续版本。
 
EEM 2.3
支持的IOS :Catalyst 6500 交换机上12.2(33)SXH以及后续版本。
 
EEM 2.4
支持的IOS :12.4(20)T, 12.2(33)SXI, 12.2(33)SRE以及后续版本。
 
EEM 3.0
支持的IOS :12.4(22)T, 12.2(33)SRE以及后续版本。
 
EEM 3.1
支持的IOS :15.0(1)M以及后续版本。
 
对于事件的检测,总体上支持如下一些方式,具体哪个版本支持哪个方式,请以实际IOS为准,不在该文档中详细说明,事件检测方式如下:
 
Application-Specific
CLI
Counter
Custom CLI
Enhanced Object Tracking
GOLD
Interface Counter
IPSLA
NF
None
OIR
Resource
RF
Routing
RPC
SNMP
SNMP Notification
SNMP Object
Syslog
System Manager
Timer
IOSWDSysMon (Cisco IOS watchdog)
WDSysMon (Cisco IOS Software Modularity watchdog)
 
 
当事件发生后,能够执行的动作如下:
Execute a CLI command
Generate a CNS event
Generate a prioritized syslog message
Generate an SNMP trap
Manually run an EEM policy
Publish an application-specific event
Read the state of a tracked object
Reload the Cisco IOS software
Request system information
Send a short e-mail
Set or modify a named counter
Set the state of a tracked object
Switch to a secondary RP
 
 
对于配置Policy,只对Applet做出介绍,由于 Tool Command Language (Tcl)已经超过范围,不再讨论。
 
 
EEM Applet
在配置Applet时,共有3种配置状态:Event, Action, Set。
Event用于定义事件标准,当指定的要求发生或阀值触发时,则表示该事件产生。
Action当事件发生后执行的动作。
Set是设置变量的,目前只支持_exit_。
 
在EEM Applet配置中,一个Policy只支持一个event,也就是一个Policy只能检测一个事件,如果退出Policy配置时并没有event,则会有警告,表示Applet没有注册成功;但如果没有action,事件照样被检测,只是事件发生后不会执行任何动作,一个Policy中可以配置多个action。
 
注:如果修改配置,在没有退出配置模式前,是不会生效的。
 
在配置Applet时,每一个action动作是有标签的,多个action将由标签的顺序来执行,标签可以是字母,也可以是数字,如果是数字,需要写成如01.0,,02.0等等,或1.0,2.0。
 
 
配置EEM
说明: 配置中共包含
1.配置EEM监测内存使用率

2.配置EEM监测Enhanced Object Tracking 状态

3.配置EEM监测CPU利用率

4.配置EEM在事件触发时发送简短E-mail
 
1.配置EEM监测内存使用率:
(1)查看当前内存情况:
Router#show processes memory
Processor Pool Total:   30623072 Used:   17889156 Free:   12733916
      I/O Pool Total:    6291456 Used:    4429312 Free:    1862144
 
 PID TTY  Allocated      Freed    Holding    Getbufs    Retbufs Process
   0   0   35624856   13980528   18744396        608         78 *Init*         
   0   0      12128     122652      12128          0          0 *Sched*        
   0   0     248956     895688        564          1          0 *Dead*         
    
Router#  
说明:从结果中看出,内存总大小为30623072,空闲大小为12733916。
 
(2)查看当前路由协议状态:
Router#sh ip protocols  
 
Router#
说明:路由器当前没有配置任何路由协议。
 
(3)配置EEM监测内存使用率:
Router(config)#event manager applet MEM
Router(config-applet)#event snmp oid 1.3.6.1.4.1.9.9.48.1.1.1.6.1 get-type exact entry-op lt entry-val 30623072 poll-interval 90       
Router(config-applet)#action 01.0 cli command "enable"
Router(config-applet)#action 02.0 cli command "conf t"
Router(config-applet)#action 03.0 cli command "router eigrp 100"
Router(config-applet)#exit
说明:EEM当前监测内存的使用情况,如果空闲大小低于30623072,则事件被触发,采集间隔为90秒一次,如果事件触发后,执行的第一个动作为在命令行下输入命令enable,执行的第二个动作为在命令行下输入命令conf t,执行的第三个动作为在命令行下输入命令router eigrp 100,其实结果就是在事件发生后,自动启用一个EIGRP进程,AS号为100;结合之前可以得知,内存总大小为30623072,所以内存空闲空间肯定会小于30623072,那么该EEM policy配置后,事件肯定是被触发的。其中动作标签为01.0格式。
 
(4)查看EEM Policy注册情况:
Router#show event manager policy registered
No.  Class   Type    Event Type          Trap  Time Registered           Name
1    applet  system  snmp                Off   Fri Mar 1 00:10:53 2002   MEM
 oid {1.3.6.1.4.1.9.9.48.1.1.1.6.1} get_type exact entry_op lt entry_val {30623072} poll_interval 90.000
 action 01.0 cli command "enable"
 action 02.0 cli command "conf t"
 action 03.0 cli command "router eigrp 100"
 
Router#
说明:正常工作的EEM Policy名字为MEM,并且其它详细信息也能看见。
 
(5)查看当前内存使用情况:
Router#show processes memory               
Processor Pool Total:   30623072 Used:   18103504 Free:   12519568
      I/O Pool Total:    6291456 Used:    4429312 Free:    1862144
 
 PID TTY  Allocated      Freed    Holding    Getbufs    Retbufs Process
   0   0   35624856   13980528   18744396        608         78 *Init*         
   0   0      12128     155784      12128          0          0 *Sched*        
    
Router#
说明:当前内存空闲大小为12519568,小于事件定义的30623072,所以事件肯定已经触发。
 
(6)再次查看路由协议情况:
Router#sh ip protocols      
Routing Protocol is "eigrp 100"
  Outgoing update filter list for all interfaces is not set
  Incoming update filter list for all interfaces is not set
  Default networks flagged in outgoing updates
  Default networks accepted from incoming updates
  EIGRP metric weight K1=1, K2=0, K3=1, K4=0, K5=0
  EIGRP maximum hopcount 100
  EIGRP maximum metric variance 1
  Redistributing: eigrp 100
  EIGRP NSF-aware route hold timer is 240s
  Automatic network summarization is in effect
  Maximum path: 4
  Routing for Networks:
  Routing Information Sources:
    Gateway         Distance      Last Update
  Distance: internal 90 external 170
 
Router#
Router#
说明:由于EEM事件被触发,所以自动启用一个EIGRP进程,AS号为100。
(7)查看EEM事件记录:
Router#show event manager history events detailed
No.  Time of Event             Event Type          Name
1    Fri Mar 1  00:14:53 2002  snmp                applet: MEM
 oid {1.3.6.1.4.1.9.9.48.1.1.1.6.1}
 val {12725680}
2    Fri Mar 1  00:16:23 2002  snmp                applet: MEM
 oid {1.3.6.1.4.1.9.9.48.1.1.1.6.1}
 val {12532448}
Router#
说明:结果显示了相应的EEM事件触发了两次。
 
 
 
2:配置EEM监测Enhanced Object Tracking 状态
(1)开启接口F0/0:
Router(config)#int f0/0
Router(config-if)#no shutdown
Router(config-if)#exi
Router(config)#exi
 
Router#sh interfaces f0/0
FastEthernet0/0 is up, line protocol is up
  Hardware is Gt96k FE, address is c000.03d0.0000 (bia c000.03d0.0000)
 
说明:接口F0/0处于双up状态。
 
(2)配置Enhanced Object Tracking,跟踪接口F0/0的状态:
 
Router(config)#track 1 interface f0/0 line-protocol
Router(config-track)#exit
Router(config)#exit
 
 
Router#show track
Track 1
  Interface FastEthernet0/0 line-protocol
  Line protocol is Up
    1 change, last change 00:00:06
Router#
说明:当前Enhanced Object Tracking跟踪接口F0/0的line-protocol状态,由于接口F0/0目前为双up状态,所以Enhanced Object Tracking的状态也为up。
 
(3)配置EEM监测Enhanced Object Tracking的状态:
Router(config)#event manager applet EOT
Router(config-applet)#event track 1 state down
Router(config-applet)#action a cli command "enable"
Router(config-applet)#action b cli command "conf t"
Router(config-applet)#action c cli command "router ospf 100"
Router(config-applet)#exit
说明:EEM监测track 1的状态,如果为down,则事件触发,并且在事件触发后,自动配置ospf,进程为100。其中动作标签为字母格式。
 
 
(4)查看EEM Policy注册情况:
Router#sh event manager policy registered
No.  Class   Type    Event Type          Trap  Time Registered           Name
1    applet  system  snmp                Off   Fri Mar 1 00:13:23 2002   MEM
 oid {1.3.6.1.4.1.9.9.48.1.1.1.6.1} get_type exact entry_op lt entry_val {30623072} poll_interval 90.000
 action 01.0 cli command "enable"
 action 02.0 cli command "conf t"
 action 03.0 cli command "router eigrp 100"
 
2    applet  system  track               Off   Fri Mar 1 00:22:49 2002   EOT
 track 1 state down
 action a cli command "enable"
 action b cli command "conf t"
 action c cli command "router ospf 100"
 
Router#
说明:显示了正常工作的EEM Policy,包含之前的MEM和现在的EOT。
 
(5)将Enhanced Object Tracking的状态变为down:
Router(config)#int f0/0
Router(config-if)#shutdown
Router(config-if)#exit
 
 
Router#show track
Track 1
  Interface FastEthernet0/0 line-protocol
  Line protocol is Down (hw admin-down)
    2 changes, last change 00:00:08
  Tracked by:
    EEM applet EOT
Router#
说明:由于接口F0/0被关闭,所以Enhanced Object Tracking的状态变为down,也显示了当前Enhanced Object Tracking的状态正被EEM 所监测。
 
 
(6)再次查看路由器上的路由协议:
Router#sh ip protocols summary           
Index Process Name
0     connected
1     static
2     eigrp 100
3     ospf 100
Router#
说明:由于Enhanced Object Tracking的状态变为down,EEM事件被触发,所以自动配置了OSPF,进程号100。
 
(7)查看EEM事件记录:
Router#show event manager history events 
No.  Time of Event             Event Type          Name
1    Fri Mar 1  00:14:53 2002  snmp                applet: MEM
2    Fri Mar 1  00:16:23 2002  snmp                applet: MEM
3    Fri Mar 1  00:17:53 2002  snmp                applet: MEM
4    Fri Mar 1  00:19:23 2002  snmp                applet: MEM
5    Fri Mar 1  00:20:53 2002  snmp                applet: MEM
6    Fri Mar 1  00:22:23 2002  snmp                applet: MEM
7    Fri Mar 1  00:23:53 2002  snmp                applet: MEM
8    Fri Mar 1  00:24:28 2002  track               applet: EOT
Router#
说明:结果显示了Enhanced Object Tracking引起的EEM事件。
 
 
 
3.配置EEM监测CPU利用率
(1)查看当前CPU利用率:
Router#show processes cpu
CPU utilization for five seconds: 8%/0%; one minute: 4%; five minutes: 4%
 PID Runtime(ms)   Invoked      uSecs   5Sec   1Min   5Min TTY Process
   1           4        47         85  0.00%  0.00%  0.00%   0 Chunk Manager   
   2          12       312         38  0.08%  0.01%  0.00%   0 Load Meter      
   3       31580      4185       7545  8.35%  3.53%  3.35%   0 Exec            
 
Router#
说明:当前CPU利用率大于4%。
 
(2)配置EEM监测CPU使用率:
Router(config)#event manager applet CPU
Router(config-applet)#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 1 poll-interval 10
Router(config-applet)#action 1.0 syslog msg "CPU Over"
Router(config-applet)#exit
说明:配置EEM监测CPU的使用率,每10秒种采集一次,如果使用率超过1%,则事件被触发,当事件触发后,自动产生syslog消息”CPU Over”,CPU使用率肯定超过了1%,所以事件已经触发。
 
(3)开启syslog功能:
Router(config)#logging on
Router(config)#logging buffered 10000 7
说明:开启syslog缓存信息功能。
 
(4)查看EEM Policy注册情况:
Router#show event manager policy registered
No.  Class   Type    Event Type          Trap  Time Registered           Name
1    applet  system  snmp                Off   Fri Mar 1 00:13:23 2002   MEM
 oid {1.3.6.1.4.1.9.9.48.1.1.1.6.1} get_type exact entry_op lt entry_val {30623072} poll_interval 90.000
 action 01.0 cli command "enable"
 action 02.0 cli command "conf t"
 action 03.0 cli command "router eigrp 100"
 
2    applet  system  track               Off   Fri Mar 1 00:22:49 2002   EOT
 track 1 state down
 action a cli command "enable"
 action b cli command "conf t"
 action c cli command "router ospf 100"
 
3    applet  system  snmp                Off   Fri Mar 1 00:40:12 2002   CPU
 oid {1.3.6.1.4.1.9.9.109.1.1.1.1.3.1} get_type exact entry_op ge entry_val {1} poll_interval 10.000
 action 1.0 syslog msg "CPU Over"
 
Router#
说明:显示了正常工作的EEM Policy,包含之前的MEM,EOT和现在的CPU。
 
(5)查看syslog状态:
Router#sh logging
Syslog logging: enabled (11 messages dropped, 0 messages rate-limited,
                0 flushes, 0 overruns, xml disabled, filtering disabled)
    Console logging: level debugging, 78 messages logged, xml disabled,
                     filtering disabled
    Monitor logging: level debugging, 0 messages logged, xml disabled,
                     filtering disabled
    Buffer logging: level debugging, 2 messages logged, xml disabled,
                    filtering disabled
    Logging Exception size (4096 bytes)
    Count and timestamp logging messages: disabled
 
No active filter modules.
 
ESM: 0 messages dropped
 
    Trap logging: level informational, 83 message lines logged
         
Log Buffer (10000 bytes):
         
*Mar  1 00:40:32.155: %HA_EM-6-LOG: CPU: CPU Over
*Mar  1 00:40:39.395: %SYS-5-CONFIG_I: Configured from console by console
Router#
说明:因为CPU使用率超过1%,所以自动产生了syslog信息” CPU Over”。
 
 
(6)查看EEM事件记录:
Router#
Router#show event manager history events detailed
No.  Time of Event             Event Type          Name
1    Fri Mar 1  00:34:23 2002  snmp                applet: MEM
 oid {1.3.6.1.4.1.9.9.48.1.1.1.6.1}
 val {12133372}
2    Fri Mar 1  00:35:53 2002  snmp                applet: MEM
 oid {1.3.6.1.4.1.9.9.48.1.1.1.6.1}
 val {12013372}
3    Fri Mar 1  00:37:23 2002  snmp                applet: MEM
 oid {1.3.6.1.4.1.9.9.48.1.1.1.6.1}
 val {12026628}
4    Fri Mar 1  00:38:53 2002  snmp                applet: MEM
 oid {1.3.6.1.4.1.9.9.48.1.1.1.6.1}
 val {12020216}
5    Fri Mar 1  00:40:22 2002  snmp                applet: CPU
 oid {1.3.6.1.4.1.9.9.109.1.1.1.1.3.1}
 val {11}
6    Fri Mar 1  00:40:23 2002  snmp                applet: MEM
 oid {1.3.6.1.4.1.9.9.48.1.1.1.6.1}
 val {12014284}
7    Fri Mar 1  00:40:32 2002  snmp                applet: CPU
 oid {1.3.6.1.4.1.9.9.109.1.1.1.1.3.1}
 val {1}
8    Fri Mar 1  00:40:52 2002  snmp                applet: CPU
 oid {1.3.6.1.4.1.9.9.109.1.1.1.1.3.1}
 val {1} 
Router#
Router#
说明:结果显示了CPU利用率触发的事件。
 
 
 
4.配置EEM在事件触发时发送简短E-mail
(1)配置EEM在CPU利用率超过阀值时发送简短E-mail:
Router(config)#event manager applet EMAIL
Router(config-applet)#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 75 poll-interval 10
Router(config-applet)#action 1.0 cli command "enable"
Router(config-applet)#action 2.0 cli command "show process cpu"
Router(config-applet)#action 3.0 mail server "192.168.1.146" to "engineer@cisco.com" from "eem@cisco.com" subject "CPU Alert" body "CPU Alert 75"
说明:EEM Policy定义了CPU利用率在超过75%时,将命令show process cpu的结果发送到邮箱地址"engineer@cisco.com" 邮箱源地址为"eem@cisco.com" ,邮件主题为 "CPU Alert",正文同时添加"CPU Alert 75"。
 
(2)查看EEM Policy注册情况:
Router#show event manager policy registered
No.  Class   Type    Event Type          Trap  Time Registered           Name
1    applet  system  snmp                Off   Fri Mar 1 00:13:23 2002   MEM
 oid {1.3.6.1.4.1.9.9.48.1.1.1.6.1} get_type exact entry_op lt entry_val {30623072} poll_interval 90.000
 action 01.0 cli command "enable"
 action 02.0 cli command "conf t"
 action 03.0 cli command "router eigrp 100"
 
2    applet  system  track               Off   Fri Mar 1 00:22:49 2002   EOT
 track 1 state down
 action a cli command "enable"
 action b cli command "conf t"
 action c cli command "router ospf 100"
 
3    applet  system  snmp                Off   Fri Mar 1 00:40:12 2002   CPU
 oid {1.3.6.1.4.1.9.9.109.1.1.1.1.3.1} get_type exact entry_op ge entry_val {1} poll_interval 10.000
 action 1.0 syslog msg "CPU Over"
 
4    applet  system  snmp                Off   Fri Mar 1 00:53:37 2002   EMAIL
 oid {1.3.6.1.4.1.9.9.109.1.1.1.1.3.1} get_type exact entry_op ge entry_val {75} poll_interval 10.000
 action 1.0 cli command "enable"
 action 2.0 cli command "show process cpu"
 action 3.0 mail server "192.168.1.146" to "engineer@cisco.com" from "eem@cisco.com" subject "CPU Alert" body "CPU Alert 75"
         
Router#
说明:结果显示了正常工作中的EEM policy。