本帖最后由 liu.zhimin 于 2021-2-28 21:58 编辑 1.1 EEM的定义
EEM是Cisco IOS的嵌入式事件管理器(Embeded Event Manager)的缩写,它提供了一种分布式的、可扩展的、可根据用户需求而灵活定制的,用于进行事件监控和故障恢复的机制。利用这种机制,当被监控的事件发生,或者是达到某个门限值时,EEM提供了进行消息报告以及采取相应动作的能力。一个完整的EEM的操作被称作 EEM Policy (EEM 策略),EEM Policy包括:定义监控的事件以及当被监控事件发生时所要执行的动作。
随着客户的网络规模日益庞大,单纯依靠现有网管架构下网管服务器与网络设备之间的主从模式,很难解决网络管理的成本、复杂性、扩展性以及出现故障时处理的及时性等等这些越来越有挑战性的问题。因此未来的网络管理需求要求网络设备本身具有更高的智能,能够根据各种不同的预定条件或网管人员的要求对网络设备本身进行不同的操作,减少网管人员的维护压力、提高对网络故障的响应速度。
Cisco的EEM,从根本上改变了网络设备的管理方式,使得网络设备由现有网络管理架构中的被动报告者和应答者,转变成为积极主动的参与者。让网络设备本身变得更为智能、灵活,帮助网络的运维人员更轻松、更及时、更准确地进行网络优化和故障排除。未来EEM的发展将继续延伸网络设备的智能,实现构建真正“自诊断、自愈合”的网络的目标。
目前在Cisco的绝大多数路由交换产品平台上都提供了EEM的功能。
1.2 EEM的应用场景
EEM的使用能够给客户带来诸多优势,下面通过一些具体的场景来介绍EEM的应用:
1. 每隔几天路由器就会丢失掉它所有的OSPF邻居关系
EEM可以通过过滤Syslog中的OSPF邻居Up/Down消息,来触发执行EEM 动作:打开OSPF的debug开关、保存debug显示结果和OSPF的相关show信息,而且主动执行ClearIP OSPF Process命令尝试重新建立OSPF邻居关系
2. 每隔几个星期,在下午2点左右,路由器的可使用内存就会即将耗尽
EEM可以监控路由器内存的使用情况,当可用内存小于某个预定值时,触发执行EEM 动作:保存当前内存的显示结果并且将保存的结果发送到指定的Syslog server。如果当前路由器中存在主备引擎,那么也可以配置EEM在此时执行主动的引擎主备切换(HA)操作
3. 路由器有两条冗余的链路连接到其他网络设备,但是其中一条链路上的误码率很高,但是该链路在物理上还保持UP的状态
网管管理员可以编写EEM Policy,监控接口上的报文计数器,并且设定当接口上的误码率高于某个预定值时,通过EEM主动shutdown掉该接口,使得网络流量通过另外一条正常链路传输,并且发送SNMP Trap给后台的网管服务器
4. 网络管理员要求每周六凌晨12点时更新接口的ACL表项
网管管理员可以编写EEM Policy,在某个固定时间执行EEM Policy设定的动作:从指定的web server上获取最新的ACL表项,并且将新的ACL表项应用到指定接口上。
5. 某路由器与其他一台路由器通过HSRP协议成为某网段的冗余网关,初始时该路由器为主,其他路由器为备,当该路由器的CPU利用率达到某值之后,自动降低路由器HSRP组的优先级,让其他路由器变成主
运行维护人员可以编写EEM Policy,监控HSRP 主路由器的CPU利用率,当高于某设定值时,执行EEM动作:降低HSRP组的优先级,使原本为备的路由器变成HSRP的主路由器。
EEM所带来的灵活功能和适用的场景远不止此,通过编写适当的EEM Policy,能够有效提高网络维护人员的工作效率,降低网络的维护成本,实现前所未有的智能网管。
2 EEM技术分析 2.1 EEM的基本架构 EEM的整个架构由:EEM Server、Event Publisher(也称作:Event Detector)和Event Subscribers (EEM Policy)三个部分组成。其中,Event Publisher 负责监控和分析事件,并且在事件发生时,负责向EEM Server 通告事件的发生。而后,EEM Server触发EEM Policy 基于当前的系统状态以及所配置的具体动作,例如:执行IOS的命令行、发送SNMP Trap、发起主备引擎切换、产生Syslog信息等等,实施相应的恢复措施。以下是EEM的架构示意图,其中核心和基础是Event Detector,正是由于Event Detector能够灵活地监控各种事件,才使得EEM具有强大的功能。作为事件使用者的EEM Policy可以通过两种方式来进行定义:一种是编写Applet小程序,这种基于Applet编写的EEM Policy可以通过命令行方式来配置,适合于比较简单的EEM操作;而另外一种是通过编写TCL脚本程序来实现,这种方式更适合于需要复杂逻辑判断、功能需求比较灵活的EEM操作。
Embedded Event Manager 2.2
EEM2.2 is supported in Cisco IOS Release 12.4(2)T, 12.2(31)SB3, 12.2(33)SRB, andlater releases, and
Embedded Event Manager 2.3
EEM2.3 is supported in Cisco IOS Release 12.2(33)SXH and later releases for theCisco Catalyst 6500
举个例子:
Interface Counter当某个指定物理接口的接口统计 超过了设定的门限值时,则触发执行EEM Policy
event manager appletiii event interface name "Serial0/2"parameter output_packets_dropped entry-val 10 entry-op gtentry-val-is-increment true poll-interval 60 action 1.0 syslog msg "iii !!!"接口一定要注意大小写!R2#*Mar 1 00:52:14.383: %HA_EM-6-LOG: iii: iii !!! 4. OIR 当主控引擎、接口板或者其他的服务模块发生热插拔时,则触发执行EEM Policy