Skip to main content

JDBC Enrichment

You can configure the JDBC Enrichment integration to query external databases to include additional information within an alert. Moogsoft Enterprise can then use this information to:

  • Assist with clustering alerts in Situations.

  • Determine routing of alerts and Situations.

  • Provide useful information to operators that enables them to resolve Situations in less time.

When you configure the JDBC Enrichment integration, Moogsoft Enterprise automatically creates the 'JDBC Enrichment Workflows' engine. To process alerts, you must define separate workflows to forward alerts to this engine and process them. See Enrich Alerts Using a JDBC Data Source for more information.

Before You Begin

Before you start to set up your integration, ensure you have met the following requirements:

  • You are using one of the supported databases and you have credentials to the database:

    • MySQL

    • Microsoft SQL Server

    • Oracle

  • If you use databases other than MySQL, you have downloaded and installed the appropriate JDBC driver. See the ExternalDb documentation for information on downloading JDBC drivers.

  • You understand your source database schema enough to locate the tables and fields you want to add to your alerts.

  • You understand the Moogsoft Enterprise alert fields.

Note that this integration uses the ExternalDb module that is part of Moogsoft Enterprise and therefore operates under the same constraints.

Configure the JDBC Enrichment Integration

To configure the JDBC Enrichment integration:

  1. Navigate to the Integrations tab.

  2. Click JDBC Enrichment.

  3. Provide a unique integration name. You can use the default name or customize the name according to your needs.

  4. Enter the connection details for each external database you want to configure.

This integration uses a hierarchy of settings or definitions. The top level is a JDBC Integration instance which the workflow engine actions reference by its Database Definition Name.

You can use this integration to configure multiple databases and tables. Each database Definition Name must be unique, while each table alias must be unique within its Database Definition.

See JDBC Enrichment Reference for a full description of all properties.

After you complete the JDBC Enrichment configuration, you can configure an enrichment workflow to forward the alert data for further processing. See Enrich Alerts Using a JDBC Data Source for more information.

Configure the Workflow Engine

The JDBC Enrichment integration requires two Workflows to add data alerts. To configure the workflows:

  1. Create enrichment workflow to forward alerts to the JDBC Enrichment Workflow Engine as follows:

    • Add an action called "Forward to JDBC Enrichment".

      Use the forward function. Set the moolet field to JDBC Enrichment Workflows. Set the Forwarding Behavior to "Always forward".

    • Add a subsequent and final action called "Stop Alert from going to Maintenance Manager".

      Use the stop function. Set the Forwarding Behavior to Stop All Workflows.

  2. Create a JDBC enrichment workflow to trigger the enrichment behavior.

    • Add an action called "Enrich Alert".

      Use the getJDBCEnrichment function. Configure the arguments according to the database definition you configured in the JDBC Enrichment integration.

    • Add a subsequent and final action called "Forward to Maintenance Window Manager"

      Use the forward function. Set the moolet field to MaintenanceWindowManager.

For a tutorial on how to use the JDBC Enrichment integration and the Workflow Engine, see Enrich Alerts Using a JDBC Data Source.

Troubleshooting

If the system is configured to connect to an MSSQL database and is occasionally demonstrating connection failures involving the following error message:

SQLServerException: Connection reset by peer

Then, assuming a recent version of the JDBC driver jar is being used (v9.4 minimum), apply the following two properties under the Connection Details / Additional Properties block:

  • connectRetryCount with a value of 5

  • connectRetryInterval with a value of 30