IBM Support

Integrating IBM Operations Analytics Predictive Insights with Netcool Operations Insights

How To


Summary

This technote applies for systems that integrate Metric Manager ( IBM Operations Analytics Predictive Insights 1.3.6) with a Netcool Operations Insights full cloud or hybrid deployment. Integration with cloud and hybrid deployments of Netcool Operations Insights 1.6.2 and 1.6.3 are supported.

Objective

The following steps describe how to:

  • Install the Predictive Insights UI Component in a Netcool Operations Insight 1.6.2 running WebSphere Application Server (WAS) 9, by bypassing a ports validation error that is encountered by the Predictive Insights installer.
  • Structure the event identifier so that it works well with Netcool Operations Insight.
  • Replace the Node and Related Events consolidation within Predictive Insights with the equivalent Netcool Operations Insight functions.
There are two possible scenarios: 
 
Procedure to integrate Predictive Insights with a hybrid Netcool Operations Insight deployment
  1. If you encounter a ports validation error, close Installation Manager.
  2. Create the following files:
    touch /tmp/ignorevalidation
    touch /tmp/ignorevalidation.txt
    touch /tmp/ignoreValidation.txt
    touch /tmp/ignoreValidation
      
  3. Open Installation Manager and run through the Predictive Insights validation again.
  4. When the validation fails on the port-check, a check-box that will allow you to ignore the error and continue is displayed. Select the checkbox, and see that the install completes successfully. Then, apply the latest fix for Predictive Insights - with a tip to create a file named ui_env.properties, based on the ui_env.properties.SAMPLE file in the 'ui' subfolder of the unpacked iFix, checking that the values in the ui_env.properties file are correct for your system.
  5. On the server running the Predictive Insights Analytics component, append the following lines to the end of the $PI_HOME/probe/omnibus/probes/linux2x86/stdin-tasp.rules file.
    $Identifier = regreplace($Identifier, "(_\d{13}$)", "" )
    @Identifier = $Identifier
    update(@Identifier)
    
    if (regmatch($TASPIdentifier, "Node")
     || regmatch($TASPIdentifier, "RelatedEvents")
     || regmatch($TASPIdentifier, "Incident")) 
    { 
      discard 
    }
    This ensures that Predictive Insights does not forward Node-consolidated events or RelatedEvents-consolidated events to Netcool Operations Insight. Predictive Insights does not need to forward such events because Netcool Operations Insight already has those capabilities.
  6. Ensure that there is a scope-based policy created in Netcool Operations Insight to group events by Node. In the following example the policy is limited to apply to only Predictive Insights events. And the Time Window is set to 20 seconds.https://media.github.ibm.com/user/84593/files/a87ce500-fe69-11ea-9391-5095cda67901

    Note that if you see an "Error fetching field conversions" when you attempt to add the scope-based policy, then install scope-based grouping, as described in this link.

    In a Hybrid deployment, the ServiceDiagnosis tool works well, when opening a Predictive Insights chart from the Event Viewer, but it does not currently work from the new Events page.

    It is advised not to use the Predictive Insights filter in Netcool Operations Insight. It can obscure the Netcool Operations Insight grouping.

Result:

Predictive Insights is successfully integrated with your hybrid Netcool Operations Insight deployment.

Procedure to integrate Predictive Insights with Netcool Operations Insight on a cloud deployment

For this scenario, events will be forwarded from the stdin probe in on-premises Predictive Insights to Red Hat OpenShift.
Note that this scenario does not include an integration from Netcool Operations Insights in Red Hat OpenShift to the Predictive Insights UI. The Predictive Insights UI will need to be accessed from an on-premises DASH instance.

Complete the following steps on your cloud deployment:

  1. Run the following command:
    export RELEASE=noi
    export NAMESPACE=netcool
    Where you can adjust the values for these two environment variables as required for your system.
  2. Gather information.
    • Find the ports being used by the Primary and Backup ObjectServers:
      oc get service ${RELEASE}-objserv-agg-primary-nodeport -n ${NAMESPACE}
      NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
      noi-objserv-agg-primary-nodeport NodePort 172.30.252.170 <none> 4100:32172/TCP,30500:30500/TCP 27m
      oc get service ${RELEASE}-objserv-agg-backup-nodeport -n ${NAMESPACE}
      NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
      noi-objserv-agg-backup-nodeport NodePort 172.30.230.163 <none> 4100:31383/TCP,32516:32516/TCP 28m


       
    • Find out what worker nodes are in use by those pods: 
      oc get pod -n ${NAMESPACE} -o wide | egrep "primary|backup"
      noi-ncobackup-0 2/2 Running 0 36m 10.254.20.7 worker2.mySystem.acme.com <none> <none>
      noi-ncoprimary-0 1/1 Running 0 36m 10.254.12.18 worker1.mySystem.acme.com <none> <none>

      Take note that the noi-ncoprimary-0 pod is on the worker1 node and noi-ncobackup-0 is on the worker2

 node.
    • Find the IP address of the worker nodes:
      oc get nodes -o wide | grep worker[12]
      worker1.mySystem.acme.com Ready worker 129m v1.19.0+7070803 10.17.115.111 [...]
      worker2.mySystem.acme.com Ready worker 129m v1.19.0+7070803 10.17.116.195 [...]
       
  3. Edit the haproxy configuration file to allow those ports to be accessed from outside the OpenShift system:
    ssh 'root@mySystem-inf.acme.com'

    vi /etc/haproxy/haproxy.cfg
     
    Near the end of the file, add entries like the following example:
        frontend aggp-proxy-primary-port
        bind *:32172
        default_backend aggp-proxy-primary-port
        mode tcp
        option tcplog
    
        backend aggp-proxy-primary-port
        balance source
        mode tcp
        server worker1 10.17.115.111:32172 check
    
        
frontend aggp-proxy-backup-port
        bind *:31383
        default_backend aggp-proxy-backup-port
        mode tcp
        option tcplog
    
        backend aggp-proxy-backup-port
        balance source
        mode tcp
        server worker2 10.17.116.195:31383 check
    
  4. Run the following command:
    systemctl restart haproxy
  5. Add Predictive Insights columns to the OpenShift primary ObjectServer by running the following command:
    export RELEASE=noi

    oc exec -ti ${RELEASE}-ncoprimary-0 -- bash
    /opt/IBM/tivoli/netcool/omnibus/bin/nco_sql -u root -p $OMNIBUS_ROOT_PWD -s AGG_P
  6. Paste the following set of commands into the terminal:
    alter table alerts.status add column TASPAlgorithmInstanceName varchar(50);
    alter table alerts.status add column TASPCorrelationId int;
    alter table alerts.status add column TASPInstanceIdentifier varchar(50);
    alter table alerts.status add column TASPQuantifier varchar(30);
    alter table alerts.status add column TASPUpdateTime time;
    alter table alerts.status add column TASPAnomalyTimestamp time;
    alter table alerts.status add column TASPMetricNameList varchar(1000);
    alter table alerts.status add column TASPMetricScoreList varchar(1000);
    alter table alerts.status add column TASPMetricValueList varchar(1000);
    alter table alerts.status add column TASPMetricResourceNameList varchar(1000);
    alter table alerts.status add column TASPMetricResourceTypeList varchar(1000);
    alter table alerts.status add column TASPMetricNodeList varchar(1000);
    alter table alerts.status add column TASPAnomalousMetrics varchar(1000);
    alter table alerts.status add column TASPMetricGroupNameList varchar(1000);
    alter table alerts.status add column TASPAnomalousResources varchar(1000);
    alter table alerts.status add column TASPAnomalousMetricGroups varchar(1000);
    alter table alerts.status add column TASPParentIdentifier varchar(100);
    alter table alerts.status add column TASPTopic varchar(50);
    alter table alerts.status add column TASPDirection varchar(50);
    alter table alerts.status add column TASPRelatedID varchar(100);
    alter table alerts.status add column TASPActualValue varchar(30);
    alter table alerts.status add column TASPExpectedValue varchar(30);
    alter table alerts.status add column TASPAttributeNames varchar(1000);
    alter table alerts.status add column TASPAttributeValues varchar(1000);
    alter table alerts.status add column TASPIdentifier varchar(100);
    alter table alerts.status add column TASPPriorityScore varchar(100);
    alter table alerts.status add column TASPAlarmNote varchar(1000);
    
    go
    Confirm the columns were added by running the following command:
    describe alerts.status

    go
    Then, run the quit and exit commands.
  7. Add Predictive Insights columns to the OpenShift backup ObjectServer by running the following command:
    oc exec -ti ${RELEASE}-ncobackup-0 -- bash
    /opt/IBM/tivoli/netcool/omnibus/bin/nco_sql -u root -p $OMNIBUS_ROOT_PWD -s AGG_B

    Then, repeat step 6 for the backup
 ObjectServer.
  8. On the server running the Predictive Insights Analytics component, append the following lines to the end of the $PI_HOME/probe/omnibus/probes/linux2x86/stdin-tasp.rules file.
    $Identifier = regreplace($Identifier, "(_\d{13}$)", "" )
    @Identifier = $Identifier
    update(@Identifier)
    
    if (regmatch($TASPIdentifier, "Node")
     || regmatch($TASPIdentifier, "RelatedEvents")
     || regmatch($TASPIdentifier, "Incident")) 
    { 
      discard 
    }
    This ensures that Predictive Insights does not forward Node-consolidated events or RelatedEvents-consolidated events to Netcool Operations Insight. Predictive Insights does not need to forward such events because Netcool Operations Insight already has those capabilities.
  9. Ensure that there is a scope-based policy created in Netcool Operations Insight to group events by Node. In the following example the policy is limited to apply to only Predictive Insights events. And the Time Window is set to 20 seconds.events panel

    Note that if you see an "Error fetching field conversions" when you attempt to add the scope-based policy, then install scope-based grouping, as described in this link.

    It is advised not to use the Predictive Insights filter in Netcool Operations Insight. It can obscure the Netcool Operations Insight grouping.

Complete the following steps on your on-premises deployment:
 
  1. If DNS does not know the OpenShift infrastructure node (for example, if ping mySystem-inf.acme.com does not work), run the vi /etc/hosts command and add an entry like the following example:

    111.222.333.444 mySystem-inf.acme.com
  2. On the on-premises ObjectServer, run the vi /opt/IBM/tivoli/netcool/etc/omni.dat command to add entries for the OpenShift ObjectServers:
    [OCP_AGG_P]
    {
    Primary: mySystem-inf.acme.com 32172
    }
    [OCP_AGG_B]
    {
    Primary: mySystem-inf.acme.com 31383
    }
     
    Regenerate the interfaces file using the nco_igen command.
  3. Copy the interfaces file to the Predictive Insights analytics server, to the $PI_HOME/probe/etc/interfaces.linux2x86

 directory by running the following command:
    vi $PI_HOME/probe/etc/interfaces.linux2x86

    Ensure there are entries like the following:

        OCP_AGG_P
        master tcp sun-ether mySystem-inf.acme.com 32172
        query tcp sun-ether mySystem-inf.acme.com 32172
    
        OCP_AGG_B
        master tcp sun-ether mySystem-inf.acme.com 31383
        query tcp sun-ether mySystem-inf.acme.com 31383
    
  4. Edit the probe rules file:

    vi $PI_HOME/probe/omnibus/probes/linux2x86/stdin-tasp.rules
  5. Add the following lines to the top of the probe rules file (it assumes the local ObjectServer is named "NCOMS")
:
    localAlerts = registertarget( "NCOMS", "", "alerts.status" )
    OCPAlerts = registertarget( "OCP_AGG_P", "OCP_AGG_B", "alerts.status" )
    setdefaulttarget(localAlerts)
    Add the following line to the end of the file:
    genevent(OCPAlerts)
 

Result:

Predictive Insights is successfully integrated with your Netcool Operations Insight cloud deployment.

Document Location

Worldwide

[{"Line of Business":{"code":"LOB45","label":"Automation"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSTPTP","label":"Netcool Operations Insight"},"ARM Category":[{"code":"a8m500000008a6cAAA","label":"NOI Netcool Operations Insights"}],"ARM Case Number":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Version(s)"}]

Document Information

Modified date:
02 April 2021

UID

ibm16344021