EEM全解.docx
《EEM全解.docx》由会员分享,可在线阅读,更多相关《EEM全解.docx(12页珍藏版)》请在冰豆网上搜索。
![EEM全解.docx](https://file1.bdocx.com/fileroot1/2023-1/28/453aceb4-cd16-4ece-9a36-bd81970aa761/453aceb4-cd16-4ece-9a36-bd81970aa7611.gif)
EEM全解
EmbeddedEventManager(EEM)
之前的任何一种网络管理技术,如SNMP,RMON,在检测到事件发生后,并不能解决问题,这些传统的网管技术只有监测功能,却没有解决故障的功能,因此,为了更有效的管理网络,能够在事件发生时,便采用有效的动作来杜绝网络问题,Cisco推出更进一步的网管技术—EmbeddedEventManager(EEM)。
EEM在正常工作时,能够定期监视指定的事件,当被监测的事件发生后,EEM可以产生指定的信息或指定的动作。
EEM如何检测指定的事件,需要指定相应的监测方法和监测标准,当事件发生后,需要产生的信息或执行的动作也需要定义,这一系列的事件和事件发生后需要执行的动作集合起来称为EEMpolicy;由于EEM工作复杂,所以EEM需要根据不同的分工定义不同的组件,EEM共有如下几个组件:
EEMserver
相当于EEM主程序。
CoreEventPublishers(EventDetectors)
也就是EEM用于检测事件的组件,负责检测各种定义好的事件,事件的检测可以基于其它网管技术,EventDetectors会在事件发生时向Server报告。
EventSubscribers(Policies)
当EventDetector检测到指定的事件发生后,EventSubscribers便执行指定的动作,动作包括产生特定的消息,或执行特定的命令。
EEM可以单独使用,也可以和其它网管技术配合使用,在配置EEM时,就是配置EEM Policy,因为Policy就是事件和事件发生后需要执行的动作集合,配置Policy,分两种方式:
Applet
ToolCommandLanguage(Tcl)
其中Applet是使用IOS的CLI来配置的,操作相对简单,而ToolCommandLanguage(Tcl)是一种编程所使用的脚本工具,比较专业,需要使用外置的第三方ASCIIeditor才能编辑和配置,所以,在理论上,单纯只学习Cisco课程应该没有能力编写ASCIIeditor的,CCIE考试中,目前推算几乎不太可能会考到,而Applet却直接就能在设备上进行配置。
由于Cisco的IOS版本众多,所以EEM的版本也是相当多,对于事件的检测和能够执行的动作,会因为EEM版本的不同而有所不同,基本上新版本会包含老版本的功能,对于各个EEM版本所支持的检测方法和执行的动作只作统一列举,而不一一列举,目前所有EEM的版本和对应的IOS版本信息如下:
EEM1.0
支持的IOS:
12.0(26)S、12.3(4)T以及后续版本。
EEM2.0
支持的IOS:
12.2(25)S以及后续版本。
EEM2.1
支持的IOS:
12.3(14)T,12.2(18)SXF5,12.2(28)SB,12.2(33)SRA以及后续版本。
EEM2.2
支持的IOS:
12.4
(2)T,12.2(31)SB3,12.2(33)SRB以及后续版本。
EEM2.3
支持的IOS:
Catalyst6500交换机上12.2(33)SXH以及后续版本。
EEM2.4
支持的IOS:
12.4(20)T,12.2(33)SXI,12.2(33)SRE以及后续版本。
EEM3.0
支持的IOS:
12.4(22)T,12.2(33)SRE以及后续版本。
EEM3.1
支持的IOS:
15.0
(1)M以及后续版本。
对于事件的检测,总体上支持如下一些方式,具体哪个版本支持哪个方式,请以实际IOS为准,不在该文档中详细说明,事件检测方式如下:
Application-Specific
CLI
Counter
CustomCLI
EnhancedObjectTracking
GOLD
InterfaceCounter
IPSLA
NF
None
OIR
Resource
RF
Routing
RPC
SNMP
SNMPNotification
SNMPObject
Syslog
SystemManager
Timer
IOSWDSysMon(CiscoIOSwatchdog)
WDSysMon(CiscoIOSSoftwareModularitywatchdog)
当事件发生后,能够执行的动作如下:
ExecuteaCLIcommand
GenerateaCNSevent
Generateaprioritizedsyslogmessage
GenerateanSNMPtrap
ManuallyrunanEEMpolicy
Publishanapplication-specificevent
Readthestateofatrackedobject
ReloadtheCiscoIOSsoftware
Requestsysteminformation
Sendashorte-mail
Setormodifyanamedcounter
Setthestateofatrackedobject
SwitchtoasecondaryRP
对于配置Policy,只对Applet做出介绍,由于ToolCommandLanguage(Tcl)已经超过范围,不再讨论。
EEMApplet
在配置Applet时,共有3种配置状态:
Event,Action,Set。
Event用于定义事件标准,当指定的要求发生或阀值触发时,则表示该事件产生。
Action当事件发生后执行的动作。
Set是设置变量的,目前只支持_exit_。
在EEMApplet配置中,一个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监测EnhancedObjectTracking状态
3.配置EEM监测CPU利用率
4.配置EEM在事件触发时发送简短E-mail
1.配置EEM监测内存使用率:
(1)查看当前内存情况:
Router#showprocessesmemory
ProcessorPoolTotal:
30623072Used:
17889156Free:
12733916
I/OPoolTotal:
6291456Used:
4429312Free:
1862144
PIDTTY Allocated Freed Holding Getbufs RetbufsProcess
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#shipprotocols
Router#
说明:
路由器当前没有配置任何路由协议。
(3)配置EEM监测内存使用率:
Router(config)#eventmanagerappletMEM
Router(config-applet)#eventsnmpoid1.3.6.1.4.1.9.9.48.1.1.1.6.1get-typeexactentry-opltentry-val30623072poll-interval90
Router(config-applet)#action01.0clicommand"enable"
Router(config-applet)#action02.0clicommand"conft"
Router(config-applet)#action03.0clicommand"routereigrp100"
Router(config-applet)#exit
说明:
EEM当前监测内存的使用情况,如果空闲大小低于30623072,则事件被触发,采集间隔为90秒一次,如果事件触发后,执行的第一个动作为在命令行下输入命令enable,执行的第二个动作为在命令行下输入命令conft,执行的第三个动作为在命令行下输入命令routereigrp100,其实结果就是在事件发生后,自动启用一个EIGRP进程,AS号为100;结合之前可以得知,内存总大小为30623072,所以内存空闲空间肯定会小于30623072,那么该EEMpolicy配置后,事件肯定是被触发的。
其中动作标签为01.0格式。
(4)查看EEMPolicy注册情况:
Router#showeventmanagerpolicyregistered
No. Class Type EventType Trap TimeRegistered Name
1 applet system snmp Off FriMar100:
10:
532002 MEM
oid{1.3.6.1.4.1.9.9.48.1.1.1.6.1}get_typeexactentry_opltentry_val{30623072}poll_interval90.000
action01.0clicommand"enable"
action02.0clicommand"conft"
action03.0clicommand"routereigrp100"
Router#
说明:
正常工作的EEMPolicy名字为MEM,并且其它详细信息也能看见。
(5)查看当前内存使用情况:
Router#showprocessesmemory
ProcessorPoolTotal:
30623072Used:
18103504Free:
12519568
I/OPoolTotal:
6291456Used:
4429312Free:
1862144
PIDTTY Allocated Freed Holding Getbufs RetbufsProcess
0 0 35624856 13980528 18744396 608 78*Init*
0 0 12128 155784 12128 0 0*Sched*
Router#
说明:
当前内存空闲大小为12519568,小于事件定义的30623072,所以事件肯定已经触发。
(6)再次查看路由协议情况:
Router#shipprotocols
RoutingProtocolis"eigrp100"
Outgoingupdatefilterlistforallinterfacesisnotset
Incomingupdatefilterlistforallinterfacesisnotset
Defaultnetworksflaggedinoutgoingupdates
Defaultnetworksacceptedfromincomingupdates
EIGRPmetricweightK1=1,K2=0,K3=1,K4=0,K5=0
EIGRPmaximumhopcount100
EIGRPmaximummetricvariance1
Redistributing:
eigrp100
EIGRPNSF-awarerouteholdtimeris240s
Automaticnetworksummarizationisineffect
Maximumpath:
4
RoutingforNetworks:
RoutingInformationSources:
Gateway Distance LastUpdate
Distance:
internal90external170
Router#
Router#
说明:
由于EEM事件被触发,所以自动启用一个EIGRP进程,AS号为100。
(7)查看EEM事件记录:
Router#showeventmanagerhistoryeventsdetailed
No. TimeofEvent EventType Name
1 FriMar1 00:
14:
532002 snmp applet:
MEM
oid{1.3.6.1.4.1.9.9.48.1.1.1.6.1}
val{12725680}
2 FriMar1 00:
16:
232002 snmp applet:
MEM
oid{1.3.6.1.4.1.9.9.48.1.1.1.6.1}
val{12532448}
Router#
说明:
结果显示了相应的EEM事件触发了两次。
2:
配置EEM监测EnhancedObjectTracking状态
(1)开启接口F0/0:
Router(config)#intf0/0
Router(config-if)#noshutdown
Router(config-if)#exi
Router(config)#exi
Router#shinterfacesf0/0
FastEthernet0/0isup,lineprotocolisup
HardwareisGt96kFE,addressisc000.03d0.0000(biac000.03d0.0000)
说明:
接口F0/0处于双up状态。
(2)配置EnhancedObjectTracking,跟踪接口F0/0的状态:
Router(config)#track1interfacef0/0line-protocol
Router(config-track)#exit
Router(config)#exit
Router#showtrack
Track1
InterfaceFastEthernet0/0line-protocol
LineprotocolisUp
1change,lastchange00:
00:
06
Router#
说明:
当前EnhancedObjectTracking跟踪接口F0/0的line-protocol状态,由于接口F0/0目前为双up状态,所以EnhancedObjectTracking的状态也为up。
(3)配置EEM监测EnhancedObjectTracking的状态:
Router(config)#eventmanagerappletEOT
Router(config-applet)#eventtrack1statedown
Router(config-applet)#actionaclicommand"enable"
Router(config-applet)#actionbclicommand"conft"
Router(config-applet)#actioncclicommand"routerospf100"
Router(config-applet)#exit
说明:
EEM监测track1的状态,如果为down,则事件触发,并且在事件触发后,自动配置ospf,进程为100。
其中动作标签为字母格式。
(4)查看EEMPolicy注册情况:
Router#sheventmanagerpolicyregistered
No. Class Type EventType Trap TimeRegistered Name
1 applet system snmp Off FriMar100:
13:
232002 MEM
oid{1.3.6.1.4.1.9.9.48.1.1.1.6.1}get_typeexactentry_opltentry_val{30623072}poll_interval90.000
action01.0clicommand"enable"
action02.0clicommand"conft"
action03.0clicommand"routereigrp100"
2 applet system track Off FriMar100:
22:
492002 EOT
track1statedown
actionaclicommand"enable"
actionbclicommand"conft"
actioncclicommand"routerospf100"
Router#
说明:
显示了正常工作的EEMPolicy,包含之前的MEM和现在的EOT。
(5)将EnhancedObjectTracking的状态变为down:
Router(config)#intf0/0
Router(config-if)#shutdown
Router(config-if)#exit
Router#showtrack
Track1
InterfaceFastEthernet0/0line-protocol
LineprotocolisDown(hwadmin-down)
2changes,lastchange00:
00:
08
Trackedby:
EEMappletEOT
Router#
说明:
由于接口F0/0被关闭,所以EnhancedObjectTracking的状态变为down,也显示了当前EnhancedObjectTracking的状态正被EEM所监测。
(6)再次查看路由器上的路由协议:
Router#shipprotocolssummary
IndexProcessName
0 connected
1 static
2 eigrp100
3 ospf100
Router#
说明:
由于EnhancedObjectTracking的状态变为down,EEM事件被触发,所以自动配置了OSPF,进程号100。
(7)查看EEM事件记录:
Router#showeventmanagerhistoryevents
No. TimeofEvent EventType Name
1 FriMar1 00:
14:
532002 snmp applet:
MEM
2 FriMar1 00:
16:
232002 snmp applet:
MEM
3 FriMar1 00:
17:
532002 snmp applet:
MEM
4 FriMar1 00:
19:
232002 snmp applet:
MEM
5 FriMar1 00:
20:
532002 snmp applet:
MEM
6 FriMar1 00:
22:
232002 snmp applet:
MEM
7 FriMar1 00:
23:
532002 snmp applet:
MEM
8 FriMar1 00:
24:
282002 track applet:
EOT
Router#
说明:
结果显示了EnhancedObjectTracking引起的EEM事件。
3.配置EEM监测CPU利用率
(1)查看当前CPU利用率:
Router#showprocessescpu
CPUutilizationforfiveseconds:
8%/0%;oneminute:
4%;fiveminutes:
4%
PIDRuntime(ms) Invoked uSecs 5Sec 1Min 5MinTTYProcess
1 4 47 85 0.00% 0.00% 0.00% 0ChunkManager
2 12 312 38 0.08% 0.01% 0.00% 0LoadMeter
3 31580 4185 7545 8.35% 3.53% 3.35% 0Exec
Router#
说明:
当前CPU利用率大于4