Unsolved
This post is more than 5 years old
6 Posts
0
2067
May 4th, 2010 09:00
How to create relationship between two notifications
I have to create a retionship between two notifications
For Ex : If i get an alarm on Element A then it should automatically raise an event for Service B with a relationship as Impacted or causedBy.
No Events found!
FredericMeunier_0588be
143 Posts
0
May 10th, 2010 06:00
Hi,
the usual way to do this (in my case) is Dynamic Model: you can do almost everything you need (but this needs code). I think you can do this also using NOTIF, but I've never done that, so I can't give more details. And you may consider BIM, but it is somewhat limited IMHO. Another, external, solution is RapidOSS from iFoutain.
HTH,
--Fred
== APG5 ReportPack4Event for Smarts can report on millions of notifications in seconds ==
Frederic Meunier
Solutions Watch4Net Inc
APG & Smarts InCharge integration
http://www.watch4net.com
raghvendra1
9 Posts
1
May 19th, 2010 20:00
Hi Praveen,
If your Service has a ConsistsOf relationship with the element. SMARTS will do this automatically for you.
alarm XYZ on element will raise a Impacted event on ServiceOffering. Impacted event will have CausedBy/Impacts relationship with XYZ.
Did you check whether you have BIM module running. Its part of SAM in v7 and runs as seperate service in v8.
Regards,
Raghvendra
praveenbajaj
6 Posts
0
May 19th, 2010 21:00
Thanks Raghvendra,
We dont want to model services in SAM as the count goes in million and we are thinking we might have scalability problem. Is there any other best approach we can follow.
I am trying to use Dynamic modeling, whereing I am trying to propagate the symptom to the impacted object and raise the problem accordingly in the APM.
Example mdl file
interface element {
event unresponsive = ;
problem element_down = > unresponsive;
export element_down;
relationship connectedTo, Service, ConnectedVia; /* the relationship names are specific */
}
interface Service {
relationshipset ConnectedVia, element, connectedTo;
propagate symtom affectedElement => ConnectedVia, element, unresponsive;
event service_down = ;
problem service_impacted => service_down, affectedElement explains;
export service_impacted;
}
Please let me know if the above way which i am currently doing is the right because I am not getting the Impact tab in the notifications.
bkuhhirte
52 Posts
0
May 27th, 2010 05:00
I think there is something a little wrong with your MODEL.
For background the "explains" syntax is used by SAM to link between two notifications but the MODEL isn't quite right.
element::element_down->Causes->[Nothing] since there is no "explains" in the problem.
Service::service_impacted->Causes->element::Unresponsive only
That doesn't seem like the direction you would want to go. Normally, people want the existing root cause to explain the additional symptoms, but your new RCA is largely unrelated to the original conditions of failure.
Also none of the events or problems are exported which means that you won't see them in SAM anyway.
Can you explain what you are trying to see in SAM and I think I can help you with the MODEL.
In prep for that, the following is a little utility ASL I have been using for some time to help debug similar problems:
default class="Router";
default instance="network:151.164.44.1";
default event="Down";
START {
} do {
print("The problem ".class."::".instance."::".event);
print("explainedBy ".getExplainedBy(class,instance,event))?IGNORE;
print("explains ".getExplains(class,instance,event))?IGNORE;
print("causes ".getCauses(class,instance,event))?IGNORE;
print("causedBy ".getClosure(class,instance,event))?IGNORE;
stop();
}
Looking at the "causes" line will tell you what the explanation in SAM is likely to be for a given problem. Be aware that there are usually many conditions applied to the explanation tree in the IP model to prevent heavy CPU in calculating that data if the problem isn't active.
In the IP product only the *forward* explanation tree if followed - Problem->Event, so make sure that the event is present in the SAM before the problem.
--Bill
praveenbajaj
6 Posts
0
May 31st, 2010 21:00
Hi Bill,
Basically we creating an Class by name CP and creating a user defined relation between the infrastructure objects like ports .
So whenever there is an event on Port or its parent objects, an impacted alarm should also be raised for CP.
Basically we are not able to create a event based relation between these two objects. Below is a sample model file. In this sample model file, how should we create a Causes and causedby relation between the two objects.
interface CP_View:MR_ManagedObject
{
relationshipset ServedBy,CP_View,Serves;
propagate attribute boolean or CPStatus = Port,Serves,PortStatus;
event MightBeImpacted "CP might be Impacted" = CPStatus;
problem Impacted => MightBeImpacted;
export Impacted;
}
refine interface Port
{
relationshipset Serves,CP_View, ServedBy;
computed attribute boolean PortStatus = IsFlapping || IsNetworkAdapterNotOperating;
}
Thanks & Regards,
Praveen Bajaj
bkuhhirte
52 Posts
0
June 1st, 2010 03:00
Okay, this is going to be a little tricky.
The way the Causes/CausedBy relationship is formed is SAM is by having some arbitrary problem explain the event in your newly created object. This will be hard to do because you want anything to explain the event without having to refine the existing classes in the IP server. To solve it would require some knowledge of the existing impacts and how to refine them - specifically you will need to inherit your new class from an existing on and re-use an existing event. I will provide you an example which (in theory) should work, but I think that there might be an alternative to what you propose.
In ICIM_NetworkAdapter, there is a symptom NetworkAdapterImpact which is the primary conduit for explanation propagation to its local root-causes as well as related ones.
interface CP : ICIM_NetworkAdapter
{
relationshipset ServedBy,CP_View,Serves;
propagate attribute boolean or CPStatus = Port,Serves,PortStatus;
event Impacted "CP might be Impacted" = CPStatus;
export Impacted;
refine symptom NetworkAdapterImpact
= Impacted explains;
}
refine interface Port
{
relationshipset Serves,CP_View, ServedBy;
computed attribute boolean PortStatus = IsFlapping || IsNetworkAdapterNotOperating;
}
In order to make this work, you need to ensure that:
1. The Port has a Underlying relationship to the CP.
2. The CP is not in the UnitaryComputerSystem::PartOf relationshipset. This will cause the stale object handling to remove the CP at every discovery cycle.
As to the alternative, please see a BIM enhancement which allows you to define impacts associated with more granular entities than what BIM supports today. It was used to show business impacts for Cards, Ports, etc. and should fulfil the same requirement without having to have deep knowledge of the IP model.
Regards,
Bill
1 Attachment
BIM-ENHANCEMENT-V1_2.tar
praveenbajaj
6 Posts
0
June 1st, 2010 10:00
Hi Bill,
Thankyou very much . BIM Enhancement is very useful but as you where mentioning "without changing the IP classes".
If I plan to keep these model file in IP then how easy would it become and how can i refine an existing event and create a causes causedby relationship.
Thanks & regards ,
Praveen Bajaj
bkuhhirte
52 Posts
0
June 2nd, 2010 05:00
Praveen,
The above example gives you a hint - I had to know which symptoms were tied to a given RCA (or a set). Only by knowing that was I able to practically make your code work. As a one-off, it is probably fine, but depending on information that is not publicly known (or the goodwill of developers) is not really a sustainable approach.
Regards,
Bill
shobhitnirala
1 Message
0
October 19th, 2010 23:00
There is a work around can be possible
In this I am not Sure Root Cause will work or not
Need to change in dxa hook script of SAM
Capture the original notification via hook script and write that notification in a file(e.g. test)
Run a script as daemon which read test when it change and create a new notification with sm_ems utility
I hope it helps