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.
- Integrate Predictive Insights with a hybrid Netcool Operations Insight deployment.
- Integrate Predictive Insights with Netcool Operations Insight on a full cloud deployment.
- If you encounter a ports validation error, close Installation Manager.
- Create the following files:
touch /tmp/ignorevalidation touch /tmp/ignorevalidation.txt touch /tmp/ignoreValidation.txt touch /tmp/ignoreValidation
- Open Installation Manager and run through the Predictive Insights validation again.
- 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.
- 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 }
- 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.
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:
- 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. -
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 [...]
- Find the ports being used by the Primary and Backup ObjectServers:
-
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
-
Run the following command:
systemctl restart haproxy
-
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
-
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 thequit
andexit
commands. -
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. -
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. -
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.
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.
- If DNS does not know the OpenShift infrastructure node (for example, if
ping mySystem-inf.acme.com
does not work), run thevi /etc/hosts
command and add an entry like the following example:111.222.333.444 mySystem-inf.acme.com
- 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 thenco_igen
command. - 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
- Edit the probe rules file:
vi $PI_HOME/probe/omnibus/probes/linux2x86/stdin-tasp.rules
- 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
Was this topic helpful?
Document Information
Modified date:
02 April 2021
UID
ibm16344021