Skip to content

styblope/probe-container

Repository files navigation

Netcool Probes on OpenShift

The project provides assets and instructions to build and deploy IBM Netcool/OMNIbus probes in an OpenShift environment running CloudPak for AIOps. Email probe is used as an example, but the process is generally applicable to other Netcool probes.

The installation prerequisites are:

  • A terminal with a POSIX-compliant shell (e.g. bash, zsh)
  • Installed commands: git, curl,oc (OpenShift CLI), and envsubst
  • Administrator access to the OpenShift Container Platform (OCP)
  • IBM Passport Advantage credentials to download the required packages

The deployment has been tested using IBM CloudPak for AIOps 4.10.1 running on OpenShift 4.14.

TL;DR

The rest of the document includes step-by-step instructions how to build and install the probe(s). Instead of typing the commands manually, you can use the ./build_deploy_probe.sh convenience script. Prior to running the script, you only have to enable the Netcool/Objectservers and obtain the download URLs of the respective pacakges as described below. The script will prompt you to enter the required inputs:

Input Environment variable Purpose
OMNIbus Core package download URL OMNIBUS_PACKAGE_URL IBM Netcool/OMNIbus core package (e.g., M0HL4ML URL from Passport Advantage)
OMNIbus Probe package download URL OMNIBUS_PROBE_PACKAGE_URL Specific probe package download URL (e.g., Email probe M0CZ8EN URL from Passport Advantage)
Probe name PROBE_NAME The exact name of the probe as defined in the documentaion (e.g., email, syslog or mttrapd), used for image, deployment, ConfigMap names
Probe keystore password KEYSTORE_PW For the probe Java keystore, e.g., 'password'

Run the script as follows:

git clone <this_repository>
cd probe-container

./build_deploy_probe.sh

Installation and deployment

Enable and start Netcool/Objectservers in the AIOps system

The Netcool probes connect to Netcool/Objectservers on the CloudPak for AIOps system. The Objectservers (Primary and Backup) are not enabled by default. Follow the section Connecting with on-premises probes in the official IBM documentation to enable them.

Check that both primary and backup Objectservers are up and running (cp4aiops is assumed to be the CloudPak for AIOPs installation namespace)

oc get sts -n cp4aiops| grep nco

This step builds a custom Netcool probe image using the OpenShift build system. The created image is stored in the OpenShift's internal image registry and it is accessed via the ImageStream abstraction.

Obtain the Netcool/OMNIbus Core and Probe packages

See Obtaining the installation package documentation

Use the part numbers below to locate the packages in IBM Passport Advantage and copy the direct download URLs (the image builder will use the URLs to download the packages):

  • M0HL4ML IBM Tivoli Netcool OMNIbus 8.1.0.32 Core Linux 64bit Multilingual (~700MB)
  • M0CZ8EN NetcoolOMNIbus 8 Certified Probe for Email (nco-p-email 5_11) Multiplatform English
Some other probe PNs:
  • CC8YIEN NetcoolOMNIbus 8 Certified Probe for SNMP (nco-p-mttrapd 22_0) Multiplatform English
  • CC8W4EN NetcoolOMNIbus 8 Certified Probe for Syslog (8_0) Multiplatform English

Store the package URLs as environment variables in the terminal session:

export OMNIBUS_PACKAGE_URL="<omnibus_download_URL>"
export OMNIBUS_PROBE_PACKAGE_URL="<probe_download_URL>"

Build the probe image

git clone <this_repository>
cd probe-container

oc new-project netcool-probes --description='This project hosts custom builds of Netcool probes that connect to the AIOps system'

# Stage 1: build core OMNIbus image that will be re-used by other probe images
envsubst < manifests/omnibus-core-bc.yaml | oc create -f-
oc start-build omnibus-core --from-dir=./omnibus-core/ --follow

# Stage 2: build specific probe image
export PROBE_NAME=email
envsubst < manifests/netcool-probe-bc.yaml | oc create -f-
oc start-build $PROBE_NAME-probe --from-dir=./netcool-probe/ --follow

Deploy the probe

Copy the AIOps service CA that signed the Objectserver certificates into a ConfigMap in the netcool-probes namespace:

export INST_NAME=$(oc get installations -n cp4aiops --no-headers | cut -w -f1)
oc get cm -n cp4aiops $INST_NAME-tls-ca -o jsonpath='{.data.ca\.crt}' > service-ca.crt
oc create cm service-ca --from-file service-ca.crt

Export the AIOps Netcool/OMNIbus Objectserver hostnames (i.e. the OpenShift service names):

export NCOPRIMARY_HOST=aiops-ir-core-ncoprimary.cp4aiops.svc
export NCOBACKUP_HOST=aiops-ir-core-ncobackup.cp4aiops.svc

Note

Unlike the standard VM-based probe installation, the probe runs entirely within the OpenShift internal service network, eliminating the need to configure NodePorts. However, a custom NetworkPolicy is still required to enable cross-namespace communication between the probe and the AIOps Objectservers.

Create a Network Policy in the cp4aiops namespace to enable networking between the probe and the AIOps Objectservers.

oc create -n cp4aiops -f manifests/network-policy.yaml

Deploy the probe using the provided netcool-probe-deploy.yaml template (ensure envsubst command is available at your local system):

export OMNIBUS_PROBE_PASSWORD=$(oc get secret -n cp4aiops aiops-ir-core-omni-secret -o=jsonpath='{.data.OMNIBUS_PROBE_PASSWORD}' | base64 -d)
export KEYSTORE_PW='password'
export PROBE_NAME=email

envsubst < manifests/netcool-probe-deploy.yaml | oc create -f-

Add custom probe-specific settings into $PROBE_NAME-props ConfigMap. You can obtain the available probe-specific settings from the probe log or by executing into the running container:

oc exec -t $(oc get pod --selector app=$PROBE_NAME-probe -o name) -- cat /opt/IBM/tivoli/netcool/omnibus/probes/linux2x86/$PROBE_NAME.props

You can use a custom probe rules file via a ConfigMap named $PROBE_NAME-rules. If the ConfigMap isn't present, the probe will use the default rules.

oc create cm $PROBE_NAME-rules --from-file $PROBE_NAME.rules
oc label cm $PROBE_NAME-rules app=$PROBE_NAME-probe component=netcool-probe

Troubleshooting

You can explore the probe image filesystem using:

oc run debug --image=$PROBE_NAME-probe -ti --rm --command bash

References:

About

Deploying Netcool/OMNIbus probes on OpenShift

Resources

Stars

Watchers

Forks