How do I get the Business Service CI to Bind to an event/alert?

tammykuhns
Kilo Guru

I'm new to Event Mgmt and just starting to configure our event rules.  Many of our infrastructure CIs bind with no issues.  I'm struggling to figure out how to bind to a business service.  I have cleared the node field and the type is now set to "cmdb_ci_service" but how do I tell it what to match on?  The name of the CI is in the Description of the event.  

1 ACCEPTED SOLUTION

Gianpaolo Pagan
ServiceNow Employee
ServiceNow Employee

Hi there,

 

You don't usually bind alerts directly to a business service but you might have a good reason for that.

What typically happens is that you bind alerts to servers, databases, webservers, network devices and then these CIs propagate impact to a Business Service.

additional_info is where you need to make sure you have enough information in order to match the CIs you want the binding to happen against. Have a look here for details.

additional_info contains all the additional fields that can be used for different types of logic such as correlation, binding, etc. You can create new fields in additional_info that contain the piece of information relevant to you. You wrote that the relevant information for you is in the description field, if it's part of it but not everything, then you can create an event rule that maps that piece of text to a new field in additional info.

Then the rest is driven by a  binding rule where you match alerts choosing between 2 different binding types

  • Binding to CIs using CI identifiers
  • Binding using the field information obtained above with CI data either using CI attributes.

I hope this helps,

Gp

View solution in original post

6 REPLIES 6

Gianpaolo Pagan
ServiceNow Employee
ServiceNow Employee

Hi there,

 

You don't usually bind alerts directly to a business service but you might have a good reason for that.

What typically happens is that you bind alerts to servers, databases, webservers, network devices and then these CIs propagate impact to a Business Service.

additional_info is where you need to make sure you have enough information in order to match the CIs you want the binding to happen against. Have a look here for details.

additional_info contains all the additional fields that can be used for different types of logic such as correlation, binding, etc. You can create new fields in additional_info that contain the piece of information relevant to you. You wrote that the relevant information for you is in the description field, if it's part of it but not everything, then you can create an event rule that maps that piece of text to a new field in additional info.

Then the rest is driven by a  binding rule where you match alerts choosing between 2 different binding types

  • Binding to CIs using CI identifiers
  • Binding using the field information obtained above with CI data either using CI attributes.

I hope this helps,

Gp

robertgeen
Tera Guru

One thing that was missed above is that node needs to be blank in order for the override to work. Often what happens is I've bound to a manual service for application based monitoring messaging and usually I will parse what is being put in resource or node field and drop the name of the attribute I want to bind on into additional_info and then blank out node with an event rule. If you do that you should be off to the races!

tammykuhns
Kilo Guru

The reason we are trying to bind to a service CI is that we have synthetic transaction monitoring which would alert for a service which we have mapped via the discovered maps in service mapping.

 

I’ll look at the links you provided.  Thank you for responding.

Kevin - AIG
Kilo Explorer

I know there are a lot of replies with link to documentation, but if you are anything like me you found the documentation to be...  slightly obfuscated to say the least.   So to summerize, in Binding set type to CI Field Matching, and choose Business Service.  You could also use Web Sites since you say it is a Synthetic Transaction (I would probably perfer it to be a Web Site, then relate that to a Business Service).  Then, in the transform section, you will set the fields that can be used to match against the CMDB attributes of whatever type you have chosen.  A couple of gotchas...   It has to be an EXACT match, and can only match 1 CI.  If two matches are returned, it won't bind to anything.  So make sure you give it enough things to match against.  So for instance, if you use Web Sites, and there are multiple URL's on the same server but different ports, use name and port.   I've done something similar for our URL monitoring, and what I do is use a reg ex match to create a URL match the resource is the page (for instance https://www.mypage.com/login, becomes URL: https://www.mypage.com Page: login Resource: ${Page}, name[manual attribute]: ${URL})

As someone else said, make sure you blank out node or it won't work.  

In the cmdb if you use Web Sites, the name should be https://www.mypage.com (which should match name in the additional information of the alert).   If you decide to go the business service route, just make sure whatever attributes you use are in the additional information section and match the same attributes of a service in the CMDB.  Hope this helps!