06-02-2011 10:07 AM
I would like to create an EEM script that creates a syslog or trap when the AgPoliced-By counter increments under the "show mls qos protocol" command. It looks like maybe the 'event counter name x' may work, but I am having difficulty finding a list of the available counters, and if one of the counters would match the counter I'm seeking. Any help would be appreciated. Thanks.
06-05-2011 07:44 PM
No, the EEM counter is not what you want here. You will need to parse the output of the "show mls qos protocol" command, extract the desired counter value, then check the value. This could be doable using an EEM applet if the version of IOS supports EEM 3.0 or higher. If not, you'll need to use Tcl. For example, in Tcl, once you have the output, you'd do something like this:
if { [regexp {AgPoliced-By:\s+(\d+)} $output -> count] } {
puts "AgPoliced-By value is $count"
}
06-28-2011 02:50 PM
Thanks Joe. I'm running s72033-adventerprisek9_wan-mz.122-33.SXI4 on a 6500 VSS-cluster. Can you give me a little more guidance?
06-29-2011 12:18 AM
Try this script:
::cisco::eem::event_register_none
namespace import ::cisco::eem::*
namespace import ::cisco::lib::*
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 mls qos protocol"} _cli_result] {
error $_cli_result $errorInfo
}
set _regexp_result [regexp {AgPoliced-By:\s+([0-9]+)} $_cli_result ignore count]
if {$_regexp_result == 1} {
# Perform any additional actions based on the counter value here.
puts "AgPoliced-By value is $count"
}
# Close open cli before exit.
if [catch {cli_close $cli1(fd) $cli1(tty_id)} result] {
error $result $errorInfo
}
Once registered, you'll run this script with:
event manager run SCRIPTNAME
Where SCRIPTNAME is the name of the script you used. You should be able to get the idea of how the counter value is extracted. Once you have it you can compare it to a threshold value and perform additional actions based on that.
07-01-2011 10:43 AM
Thanks Joe. What am I missing here?
C6513-LAB(config)#event manager directory user library "sup-bootdisk:/"
C6513-LAB(config)#even manager policy cl_cli_cmd.tcl type user
Embedded Event Manager configuration: policy file cl_cli_cmd.tcl could not be found
C6513-LAB(config)#even manager policy cl_cli_cmd.tcl type system
Embedded Event Manager configuration: policy file cl_cli_cmd.tcl could not be found
C6513-LAB#more sup-bootdisk:cl_cli_cmd.tcl
::cisco::eem::event_register_none
namespace import ::cisco::eem::*
namespace import ::cisco::lib::*
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 mls qos protocol"} _cli_result] {
error $_cli_result $errorInfo
}
set _regexp_result [regexp {AgPoliced-By:\s+([0-9]+)} $_cli_result ignore count]
if {$_regexp_result == 1} {
# Perform any additional actions based on the counter value here.
puts "AgPoliced-By value is $count"
}
# Close open cli before exit.
if [catch {cli_close $cli1(fd) $cli1(tty_id)} result] {
error $result $errorInfo
}
C6513-LAB#
07-01-2011 03:14 PM
Your library command is not what you want. Add this:
event manager directory user policy "sup-bootdisk:/"
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide