• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 638
  • Last Modified:

EEM: Pull vpn VRF interface desc. from BGP syslog

Hello everyone,
I'm rather new to the forums and my searching hasn't been quite as successful as I had hoped.
As the title suggests, I'm trying to collect additional information in my syslogs.
Goal : Create a syslog that follows the one below that includes the VRF description.
Here is my IOS version and an example syslog:
Cisco IOS Software, C3900e Software (C3900e-UNIVERSALK9-M), Version 15.2(4)M2, RELEASE SOFTWARE (fc2)
"The Router named R1 with IP sent the following syslog at 08:07:01 PM:
PassiveMonitor.Payload.Message=<1>11111: 111111: Dec 20 20:06:56.333 CST: %BGP-5-ADJCHANGE: neighbor vpn vrf 333 Down BGP Notification received"
(I've modified the output just a little, but the situation stays the same.)
From what I've read, it seems like I could do this via Cisco EEM. I'm currently reading about TCL but I really feel like this is something EEM can tackle.
The reasoning behind it is that this device has 300+ VRFs configured and each one is quite specific to its own environment. We've assisted documentation by adding accurate descriptions to each one, but when it's not included in a syslog it makes troubleshooting that much harder. It would be nice to know which environment is in question when these logs are received.
Many thanks as this is something that's been troubling me for quite some time.

(I'm very new to EEM. I'm currently working towards my CCNA this is not covered in the material. It's very exciting to work with though!)

Edit to assist:

One thing I thought of would be to create a list that looks like this:

event manager applet vrf_300
event syslog pattern "vpn vrf 300"
action 1.0 syslog msg "VRF 300: Name"

event manager applet vrf_400
event syslog pattern "vpn vrf 400"
action 1.0 syslog msg "VRF 400: Name"

event manager applet vrf_500
event syslog pattern "vpn vrf 500"
action 1.0 syslog msg "VRF 500: Name"

The down side is that it would be a rather extensive list and would require maintenance every time a VRF is changed / added / removed.
  • 2
1 Solution
Before getting in to it too much - why not just use descriptive VRF names?
Nate204Author Commented:
I agree,

I reviewed this with my team and we could look into doing something like that in the future. For now though, we wont be able to rename them as I don't see that as something I can do and the equipment is in a production environment.

Here is something I've been given from the Cisco forums:
Maybe we can do something like this with EEM?

event manager applet vrf_name
event syslog pattern "vpn vrf [0-9]+"
action 1.0 regexp "vpn vrf ([0-9]+)" $_syslog_msg match vnum
action 2.0 if $_regexp_result eq 1
action 2.1  syslog msg "VRF $vnum: Name"
action 2.2 end

Many thanks for any suggestions!

I'm going to keep looking into this.

UPDATE: I was able to find the solution.
The below EEM applet will work just fine!

Here are the results:

event manager applet vrf_down
event syslog pattern "vpn vrf ([0-9]+) Down"
action 1.0 regexp "vpn vrf ([0-9]+)" $_syslog_msg match vnum
action 2.0 if $_regexp_result eq 1
action 3.0 cli command "show ip vrf detail $vnum | sec Description"
action 4.0 regexp "Description: (.*)" $_cli_result match desc
action 5.0 syslog msg "BGP for VRF: $vnum - ( $desc ) has been dropped."
action 6.0 end
event manager applet vrf_up
event syslog pattern "vpn vrf ([0-9]+) Up"
action 1.0 regexp "vpn vrf ([0-9]+)" $_syslog_msg match vnum
action 2.0 if $_regexp_result eq 1
action 3.0 cli command "show ip vrf detail $vnum | sec Description"
action 4.0 regexp "Description: (.*)" $_cli_result match desc
action 5.0 syslog msg "BGP for VRF: $vnum - ( $desc ) has recovered."
action 6.0 end
Nate204Author Commented:
This comment includes the solution to the question I had. You can paste it into a Cisco device that supports EEM 3.4 and it will take it without error. I currently have it deployed on a device that's running EEM 4.0 and I've had no issues.

Featured Post

[Webinar] Database Backup and Recovery

Does your company store data on premises, off site, in the cloud, or a combination of these? If you answered “yes”, you need a data backup recovery plan that fits each and every platform. Watch now as as Percona teaches us how to build agile data backup recovery plan.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now