Integrating TBSM and ITM 6 using BSM_Identity
The holy grail of service management is to automatically discover a business service and then for the monitoring tool to send the events to the correct resource without any manual intervention. The discovery of the service using TADDM and its integration with TBSM is already well documented however the part that is often forgotten is the integration of the events. This article will concentrate on the integration of alerts from IBM Tivoli Monitoring (ITM) 6 however other event sources are similar.
In-order to associate any event with an imported TADDM resource, there needs to be some piece of data that is common to both the event and the data imported from TADDM. This is achieved using a field called BSM_Identity. Each resource will need to have one or more of these fields set. Every resource imported from TADDM will have at least one BSM_Identity by default however this value will not match any event received by Netcool/OMNIbus and is therefore useless. The default BSM_Identity is comprised of the resource’s name, TADDM GUID, and the CDM class. For example:
TMS Discovery Library Adapter
To make the BSM_Identity field contain a value that is useful we must first run the TMS Discovery Library Adapter (DLA) on the ITM 6 TEMS server by running the KfwTmsDla command. This will create an XML output file.
Initializing TMS Discovery Library Adapter
Discovering Managed System Agents..........67 agents discovered
Discovering Hub TEMS...
Writing out Managed System Agents.........Complete
70 Agents written out
3 Agents suppressed
11 Operating Systems written out
0 Sysplexes written out
TMS Discovery Complete. Results in /opt/IBM/ITM/tmsdla/TMSDISC100-B.singapore.2009-01-16T15.04.11Z.refresh.xml
Copy this XML book to the TADDM server and run the loadidml.sh script to import its contents into the TADDM database.
loadidml.sh -f ./TMSDISC100-B.singapore.2009-01-16T15.04.11Z.refresh.xml
Bulk Load Program starting.
Bulk Load Program running.
Bulk Load Program succeeded. Return code is: 0
Bulk Load Program ending.
Note that in TADDM 7.1 the ldfxidml.sh and loadidml.sh scripts were merged. Prior to this it was very important that you used ldfxidml.sh and NOT loadidml.sh.
Importing the TMS DLA book will add the managed system name as an attribute called cdm:ManagedSystemName to each resource. This is because TADDM does not natively discover the managed system name used by ITM 6. For example in our XML file we have an entry as shown below:
<cdm:sys.linux.Linux id="singapore-Linux" sourceToken="managed_system_name=singapore:LZ& object_id=p@singapore:LZ">
The book will reconcile the discovered resources with the ITM 6 systems and after TBSM imports the resources, it will receive the cdm:ManagedSystemName attribute containing the ITM 6 managed system name.
On the TBSM server there is a file called $NCHOME/../tbsm/XMLtoolkit/EventIdentifierRules.xml. This builds BSM_Identity values for imported TADDM resources including by default a mapping for ITM 6. The mapping says that the policy “ITM6.x” can be applied to any class:
<Mapping policy="ITM6.x" class="%" />
The policy itself says that if the resource contains an attribute named cdm:ManagedSystemName, then a BSM_Identity will be built for this resource containing the value in the cdm:ManagedSystemName attribute thus completing the mapping.
<Token keyword="ATTR" value="cdm:ManagedSystemName"/>
On the TBSM server the BSM_Identity field can be seen by looking at the imported service and clicking on the Identification Fields tab. The field should now map to the ManagedSystem Name of the ITM 6 agent (e.g. singapore:LZ)
And we should also be able to see that any events related to the resource are shown in the Events of the service.