Instana U

 View Only

Monitoring TIBCO ActiveMatrix BusinessWorks with Instana

By Xiao Juan Niu posted 8 days ago

  

Co-Authors: Xing Tian, Hou Fang Zhao, Li Jian Wang

IBM® Instana Observability (Instana) is a fully-automated application performance management (APM) solution designed for the challenges of managing microservice and cloud-native applications. 

TIBCO ActiveMatrix BusinessWorks™ is TIBCO's flagship Enterprise integration offering. It serves as an integration foundation for mission critical IT environments. BusinessWorks 6 enables developers to create new services, orchestrate business processes, and integrate applications.

Instana now has the capability to monitor TIBCO ActiveMatrix BusinessWorks (TIBCO BW). TIBCO BW AppNode can be auto-discovered and monitored by Instana agent with some required configurations on the AppNode. The setup of TIBCO environment could be challenging, because it requires multiple components to be installed and properly configured to ensure TIBCO BW runs in enterprise mode without any issues

This blog describes how to enable TIBCO BW monitoring with Instana, including setting up and configuring a testing TIBCO BW environment in enterprise mode, configuring TIBCO BW to enable monitoring, deploying the sample application, and how to view the TIBCO BW metrics in the Instana UI.

Setting up TIBCO BW environment

Note: The example in this blog installs TIBCO BW 6.10 on RHEL 8.10 x86_64 by using the default installation location /opt/tibco/bw6. The commands mentioned in this blog are executed as root

The setup of TIBCO BW environment in enterprise mode includes installing TIBCO BW, configure BWAgent with TIBCO Enterprise Message Service (TIBCO EMS) and PostgreSQL , setting up AppNode, and deploying the sample application.

Installing TIBCO BW

Prerequisites

First, make sure that libnsl package is installed. If not, run the following command to install the package:

yum install libnsl

Download the following installation packages from the TIBCO edelivery site by using your TIBCO account:

  • TIBCO BW installer: TIB_BW_6.10.0_linux26gl23_x86_64.zip

  • TIBCO EMS installer: TIB_ems_8.7.0_linux_x86_64.zip

Note: TIBCO BW 6.10 supports TIBCO EMS 8.6 to 10.2.x. The example in this blog uses TIBCO EMS 8.7.0.

Installation

To install TIBCO BW, complete the following steps:

  1. Unzip TIB_BW_6.10.0_linux26gl23_x86_64.zip TIBCO BW installer.

  2. To install TIBCO BW in console mode, run the following command:

    ./TIBCOUniversalInstaller-lnx-x86-64.bin -console
  3. Follow the instructions and accept the license agreements.

  4. Select the Typical installation profile, customize the installation feature selections and select both the Design and Runtime features. If you install only the Runtime feature, the sample that is shipped with the installer is not installed. 

    This blog includes deployment of the sample application, so both features need to be selected. 

  5. Select the default options for other selections. The installer guides you to install TIBCO BW in the /opt/tibco/bw6 directory.

TIBCO BW has the following execution modes: local mode and enterprise mode. The enterprise mode is for production environment.

Configuring BWAgent

This section describes how to configure TIBCO BW to run in enterprise mode, for which BWAgent needs to be configured to run in enterprise mode. The BWAgent is a daemon process that is responsible for provisioning AppNodes and applications, performing administration commands, and synchronizing data from the datastore with the local file system. There is a BWAgent for each installation. The BWAgent enables communication between agents that are located on different machines.

In enterprise mode, multiple agents can use TIBCO FTL® or TIBCO EMS for communication transport and use an external database for data persistence. As an example, this section describes how to configure BWAgent with TIBCO EMS and PostgreSQL to run in enterprise mode.

Installing and running TIBCO EMS

To install and run TIBCO EMS, complete the following steps:

  1. Unzip TIB_ems_8.7.0_linux_x86_64.zip TIBCO EMS installer.

  2. Navigate to the extracted TIB_ems_8.7.0 folder, and run the following commands:

    for f in tar/*.tar.gz; do tar -xvf $f; done
    mv ./opt/tibco/ems /opt/tibco/bw6/
    mkdir -p /opt/tibco/bw6/ems/8.7/config/datastore
    cp -ar /opt/tibco/bw6/ems/8.7/samples/config/* /opt/tibco/bw6/ems/8.7/config/

    The commands install TIBCO EMS in the /opt/tibco/bw6/ems directory.

  3. Navigate to /opt/tibco/bw6/ems/8.7/config/ directory, edit tibemsd.conf file, and change the store entry to the following store as shown:

    store                   = /opt/tibco/bw6/ems/8.7/config/datastore
  4. Add TIBCO account to run TIBCO EMS by using the following command:

    adduser tibco
    chown -R tibco:tibco /opt/tibco/bw6/ems/8.7/config
  5. Start the TIBCO EMS server by using the newly added TIBCO account by running the following commands:

    su - tibco
    cd /opt/tibco/bw6/ems/8.7/config
    ../bin/tibemsd -config /opt/tibco/bw6/ems/8.7/config/tibemsd.conf

Installing and running PostgreSQL

To install and run PostgreSQL, complete the following steps:

  1. To install and initialize PostgreSQL, run the following commands:

    dnf module reset postgresql
    dnf module enable postgresql:16
    dnf install postgresql-server
    postgresql-setup --initdb
  2. To configure the client authentication, edit /var/lib/pgsql/data/pg_hba.conf file. Change authentication method from ident to scram-sha-256 in the following line and save the change:

    # IPv4 local connections:
    host    all             all             127.0.0.1/32            ident
  3. Start PostgreSQL server by using the following commands:

    systemctl enable postgresql.service
    systemctl start postgresql.service
  4. Run the following commands in Postgres account to create bwadmindb database and the database owner bwuser. The bwadmindb database is used by BWAgent and the sample application.

    psql -p 5432 -c "CREATE USER bwuser WITH CREATEDB PASSWORD 'bwuser';"
    psql -p 5432 -c "CREATE DATABASE bwadmindb WITH OWNER bwuser;"

Installing TIBCO EMS client libraries

To install TIBCO EMS client libraries, complete the following steps:

  1. Go to /opt/tibco/bw6/bw/6.10/bin folder and run the following command:

./bwinstall ems-driver

When you are asked for the TIBCO EMS Home components plugin folder, input /opt/tibco/bw6/ems/8.7/components/shared/1.0.0/plugins.

Configuring and running BWAgent

To configure and run BWAgent, complete the following steps:

  1. Open bwagent_db.json file in /opt/tibco/bw6/bw/6.10/config folder.

  2. Update the following properties, if needed.

Property Name

Value

adminmode

enterprise

dbtype

postgresql

dbdriver

org.postgresql.Driver

dbconnectionURL

jdbc:postgresql://localhost:5432/bwadmindb

dbuser

bwuser

dbpassword

bwuser

  1. Configure additional properties to enable process monitoring.

Property Name

Value

statsprovider

true

statstransport

REST

statsdataformat

json

dbprovidertype

postgresql

dbproviderdriver

org.postgresql.Driver

dbproviderconnectionurl

jdbc:postgresql://localhost:5432/bwadmindb

dbprovideruser

bwuser

dbproviderpassword

bwuser

  1. Go to /opt/tibco/bw6/bw/6.10/bin folder and run the following command to push changes to the bwagent.ini file that is used by the BWAgent utility:

    ./bwadmin config -cf ../config/bwagent_db.json agent
  1. Start BWAgent by using the following command:

    ./bwagent

Setting up AppNode and deploying Bookstore sample application

  1. First, setup database that is required by the bookstore sample application by using the postgres account.

    su - postgres
    cd /opt/tibco/bw6/bw/6.10/samples/AppSpace/binding/rest/BookStore/scripts
    psql
    postgres=# \i ./dbsetup.sql
  2. Fix the errors in the sample scripts and deploy bookstore sample app by using the runBookStore.sh script.

    sed -i 's/samples\/core\/admin/samples\/AppSpace\/core\/admin/g' /opt/tibco/bw6/bw/6.10/scripts/bashrc.sh
    sed -i 's/6\.5/6\.10/g' /opt/tibco/bw6/bw/6.10/scripts/admin/shCommon.sh
    source /opt/tibco/bw6/bw/6.10/scripts/bashrc.sh
    cd /opt/tibco/bw6/bw/6.10/samples/AppSpace/core/admin
    ./runBookStore.sh

Note: Source /opt/tibco/bw6/bw/6.10/scripts/bashrc.sh can set the required environment variables for TIBCO BW command line utilities. You can safely ignore the User Error [/opt/tibco/bw6/tea] does not exist, or is not a directory.

  1. Start AppNode and the sample application by using the following commands:

    bwadmin start -domain BookStore-Domain appspace binding-rest-BookStore-AppSpace
    bwadmin start -domain BookStore-Domain -appspace binding-rest-BookStore-AppSpace application tibco.bw.sample.binding.rest.BookStore.application 1.0

You can confirm the status of the application by running the following command.

bwadmin show -domain BookStore-Domain -appspace binding-rest-BookStore-AppSpace

The sample output:

TIBCO ActiveMatrix BusinessWorks version 6.10.0, build V23, 2023-11-10

Domain : BookStore-Domain
Name                                              	MinNodes	Status    	Nodes	Applications	Description
binding-rest-BookStore-AppSpace                   	1       	Running   	1    	1           	binding rest BookStore AppSpace

The TIBCO BW environment is now ready for monitoring.

Enabling TIBCO BW sensor

The TIBCO BusinessWorks (BW) sensor supports only local monitoring. To use the TIBCO BW sensor, complete the following steps:

  1. Install the Instana agent on the machine that hosts the TIBCO BW server. For more information, see Installing the host agent on Linux.

  2. Make sure to configure BWAgent to enable process monitoring as described in the previous section. For more information, see Enabling Process Monitoring.

  3. Execute the following command to enable process statistics collection for the sample application. If you have more than one application, you need to repeat the command for all the applications that you want to monitor, or you can enable process statistics for all the applications that are running on an AppNode. For more information, see Enabling and Disabling Process Statistics.

    bwadmin enablestats -d BookStore-Domain -a binding-rest-BookStore-AppSpace process tibco.bw.sample.binding.rest.BookStore.application 1.0
  4. Restart AppNode to make the changes work.
    bwadmin stop -domain BookStore-Domain appspace binding-rest-BookStore-AppSpace
    bwadmin start -domain BookStore-Domain appspace binding-rest-BookStore-AppSpace

By default, the Instana agent enables the TIBCO BW sensor. The sensor auto-discovers and monitors the AppNode and the sample application. You can now view the metrics of your TIBCO BW AppNode on Instana UI.

Monitor TIBCO BW on Infrastructure map in the Instana UI

  1. To view the metrics of TIBCO BW application, go to the navigation menu in the Instana UI and click Infrastructure.

  2. Choose your TIBCO BW monitored host. You can see the TIBCO BW AppNode slice on the host pillar.

  1. Click Open Dashboard. You can see a TIBCO BW AppNode dashboard with all the collected metrics of the AppNode and the running application instances on the AppNode.

  1. Go to the Application dashboard. To view the application metrics, click the application instance name.

  1. Go to process dashboard. To view the process metrics, click the process name.

For more information about the collected metrics, see Monitoring TIBCO BW.

Enabling OpenTelemetry

TIBCO BW supports exporting metrics to OpenTelemetry. This section describes how to enable OpenTelemetry for AppNode and how to view metrics that are emitted by TIBCO BW on the Instana UI.

  1. Go to the /opt/tibco/bw6/bw/6.10/domains/BookStore-Domain/appnodes/binding-rest-BookStore-AppSpace/binding-rest-BookStore-AppNode-6001 AppNode folder, and set the following properties in the AppNode’s config.ini file.
    bw.engine.opentelemetry.enable=true
    bw.engine.opentelemetry.metric.enable=true
  2. Restart the AppNode for the changes to work.
    bwadmin stop -domain BookStore-Domain appspace binding-rest-BookStore-AppSpace
    bwadmin start -domain BookStore-Domain appspace binding-rest-BookStore-AppSpace

  1. Edit the configuration.yaml file in the INSTANA_AGENT/etc/instana directory.

  2. Enable OpenTelemetry collector by uncommenting the following lines.

    # OpenTelemetry Collector
    com.instana.plugin.opentelemetry:
      enabled: true
  1. Restart Instana agent for changes to work.

By default, TIBCO AppNode sends telemetries to localhost:4317, which is listened by Instana agent after enabling the OpenTelemetry collector. You can find the OpenTelemetry slice on the host pillar and observe metrics from OpenTelemetry dashboard.

Summary

This blog explains how to enable TIBCO BW monitoring with Instana. For more information, see Monitoring TIBCO BW on IBM Documentation and TIBCO BW documents.

Permalink