Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win


EEM: Pull vpn VRF interface desc. from BGP syslog

Posted on 2013-12-31
Medium Priority
Last Modified: 2014-01-17
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.
Question by:Nate204
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
LVL 13

Expert Comment

ID: 39750640
Before getting in to it too much - why not just use descriptive VRF names?

Accepted Solution

Nate204 earned 0 total points
ID: 39757880
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

Author Closing Comment

ID: 39788053
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

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Is your computer hacked? learn how to detect and delete malware in your PC
In this article, WatchGuard's Director of Security Strategy and Research Teri Radichel, takes a look at insider threats, the risk they can pose to your organization, and the best ways to defend against them.
After creating this article (http://www.experts-exchange.com/articles/23699/Setup-Mikrotik-routers-with-OSPF.html), I decided to make a video (no audio) to show you how to configure the routers and run some trace routes and pings between the 7 sites…
This video gives you a great overview about bandwidth monitoring with SNMP and WMI with our network monitoring solution PRTG Network Monitor (https://www.paessler.com/prtg). If you're looking for how to monitor bandwidth using netflow or packet s…

610 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question