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), andenvsubst - 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.
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.shThe 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 ncoThis 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.
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>"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/ --followCopy 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.crtExport 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.svcNote
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.yamlDeploy 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.propsYou 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-probeYou can explore the probe image filesystem using:
oc run debug --image=$PROBE_NAME-probe -ti --rm --command bash- https://community.ibm.com/community/user/blogs/zane-bray1/2022/04/13/getting-started-with-watson-aiops-event-manager-27
 - https://www.ibm.com/docs/en/netcoolomnibus/8.1.0?topic=tivoli-netcoolomnibus-v81-documentation
 - https://www.ibm.com/docs/en/installation-manager/1.10.0?topic=managing-installations-installation-manager
 
