Configure BMC Remedy

While you can install the BMC Remedy integration to create Remedy incidents from Moogsoft AIOps Situations, you can also configure Remedy to synchronize with Moogsoft AIOps, allowing you to:

  • Close Moogsoft AIOps Situations by resolving the related Remedy incidents.

  • Synchronize the Remedy incident worklog with the Situation's Collaborate tab.

  • Synchronize resolutions from Remedy to Moogsoft AIOps.

Before you begin

Before you configure Remedy, ensure you have met the following requirements:

  • You have installed BMC Remedy Developer Studio and configured it to connect to your BMC server and Remedy system.

  • You can access the BMC Mid Tier Configuration Tool.

  • You have the connection details for your Moogsoft AIOps server.

  • You know your Moogsoft AIOps Graze API username and password.

See the BMC documentation for details on BMC components.

Configure Remedy properties

To configure the behavior of Remedy, download the Remedy config zip file and extract it to your Remedy server, typically <Remedy installation directory>/BMC Software/ARSystem/Remedy. The configuration file is in Remedy/config/RemedyMoogsoft.properties.

See BMC Remedy Reference and LAM and Integration Reference for a full description of all properties. Some properties in the file are commented out by default; remove the '#' character to enable them.

  1. Configure the connection properties:

    • moogsoft.host: The hostname or IP address of the Moogsoft AIOps instance to connect to.

  2. Configure authentication:

    • moogsoft.graze.user: Graze API username.

    • moogsoft.graze.password: Graze API password.

  3. Configure Remedy's behavior:

    • moogsoft.close_situation_in_moog: If set to true, resolving or closing an incident in Remedy also applies to the Situation in Moogsoft AIOps. If set to false, closing an incident in Remedy resolves the Situation in Moogsoft AIOps but does not close it.

    • moogsoft.remedy_integration_user: Remedy username(s). Use commas to separate multiple usernames.

    • moogsoft.thread_name: Thread to use in Moogsoft AIOps for adding comments.

  4. Configure SSL if you want to encrypt communications between Remedy and Moogsoft AIOps.

    • moogsoft.use_ssl: Whether to use SSL certification.

    • moogsoft.disable_certificate_validation: Whether to disable SSL certificate validation.

    • moogsoft.server_cert_filename: Name of the SSL root CA file.

  5. Configure request timeouts:

    • moogsoft.connection_request_timeout: Length of time (in milliseconds) to wait for a response from a POST request before returning a timeout.

    • moogsoft.socket_timeout: Length of time (in milliseconds) to wait for a response from the Java socket before returning a timeout.

    • moogsoft.connect_timeout: Length of time (in milliseconds) to wait for a response from the Moogsoft AIOps server before returning a timeout.

  6. If you want to connect to Remedy through a proxy server, configure the following properties:

    • moogsoft.enable_proxy: Whether or not to connect to Remedy through a proxy server.

    • moogsoft.proxy_host: The hostname or IP address of the proxy server.

    • moogsoft.proxy_port: The port number of the proxy server.

    • moogsoft.proxy_authentication_required: Whether to require the proxy server's username and password.

    • moogsoft.proxy_user: The proxy server username.

    • moogsoft.proxy_password: The server password.

Example

An example Remedy configuration is as follows:

moogsoft.host = 0.0.0.0
moogsoft.graze.user = graze
moogsoft.graze.password = graze
#moogsoft.use_ssl=false
#moogsoft.disable_certificate_validation=true
#moogsoft.server_cert_filename=""
#moogsoft.enable_proxy=false
#moogsoft.proxy_host=""
#moogsoft.proxy_port=8080
#moogsoft.proxy_authentication_required=false
#moogsoft.proxy_user=""
#moogsoft.proxy_password= ""
moogsoft.close_situation_in_moog=true
moogsoft.remedy_integration_user=remedy_user
moogsoft.thread_name=Support
moogsoft.connection_request_timeout=12000
moogsoft.socket_timeout=12000
moogsoft.connect_timeout=12000

Create Remedy custom fields

Follow these steps to create a custom field to store the Moogsoft AIOps Situation ID:

  1. Log into BMC Remedy Developer Studio.

  2. Go to Forms and select the HPD: WorkLog form.

  3. Create an Overlay so that you can edit the form.

  4. Create a new Integer field in the current view.

  5. Edit the new field's properties and set the following:

    • Display Label: moogsoft_aiops_situation_id

    • Database Name: moogsoft_aiops_situation_id

  6. Copy the custom field you have just created to the forms HPD: IncidentInterface_create and HPD: Help Desk. Note that the field must be copied; creating a custom field with the same name results in the fields having different database IDs and does not work.

  7. Add the following mapping to the filter HPD:HII:CreateIncident_100`! to make the custom field available in the help desk:moogsoft_aiops_situation_id: $moogsoft_aiops_situation_id$

  8. Save your changes.

Configure Remedy filters

You can set up filters to sychronize the Remedy incident status, resolution and worklog with the corresponding Moogsoft AIOps Situation.

You will need to supply the following details in the filter command line strings:

  • Path to Java on your BMC server: Required to execute the .jar file.

  • Path to the Remedy jar file: This file interacts with Moogsoft AIOps and performs actions on Situations.

  • Flag: Indicates whether an incident is closed or resolved.

  • Incident number: Represents the number of the incident closed or resolved by the Remedy user.

  • Incident status: Status of the Remedy incident.

  • Submitter: Remedy user that submitted the work log.

  • Moogsoft AIOps Situation ID.

To create filters in BMC Remedy Developer Studio, navigate to the Filters section of the UI. Create new filters using the configurations outlined in the sections below.

Remedy incident status

To synchronize the Remedy incident status with the Moogsoft AIOps Situation, create a filter with the following configuration:

  • Filter: Filter name, for example MoogsoftIncidentStatus.

  • Associated Forms: HPD:HelpDesk

  • Execution Option: Enabled - Modify, Submit

  • Run IF Qualification:

    (('TR.Status' = "Resolved") AND ('DB.Status' != "Resolved")) OR (('TR.Status' = "Closed") AND ('DB.Status' != "Closed")) AND ('moogsoft_aiops_situation_id' != $NULL$)

  • If Action, Run Process:

    <Path to Java on your BMC server> -jar <Path to Remedy jar file>"true" $IncidentNumber$ "$moogsoft_aiops_situation_id$" "$z2TF Work Log Submitter$" "$Status$"

Remedy incident resolution

To synchronize the Remedy incident resolution with the Moogsoft AIOps Situation, create a filter with the following configuration:

  • Filter: Filter name, for example MoogsoftIncidentResolution.

  • Associated Forms: HPD:HelpDesk

  • Execution Option: Enabled - Modify, Submit

  • Run IF Qualification: (('TR.Status' = "Resolved") OR ('TR.Status' = "Closed") OR ('DB.Status' = "Resolved") OR ('DB.Status' = "Closed")) AND ('moogsoft_aiops_situation_id' != $NULL$)

  • If Action, Run Process:

    <Path to Java on your BMC server> -jar <Path to Remedy jar file> "false" $IncidentNumber$ "$moogsoft_aiops_situation_id$" "$USER$" $Status$ $Resolution$

  • API Call To: https://<moogsoftServer>/graze/v1/resolveSituation

    with the following payload:

    {
        sitn_id : $moogsoft_aiops_situation_id$, 
    }

Remedy incident worklog

To synchronize the Remedy incident worklog with the Moogsoft AIOps Situation, create two filters. The first filter retrieves the Situation ID from the helpdesk and adds it to the worklog custom field:

  • Filter: Filter name, for example MoogsoftSetIDWorklog

  • Associated Forms: HPD:WorkLog

  • Execution Option: Enabled - Modify, Submit

  • Run IF Qualification: <No condition>

  • If Action: Set Fields

You will need to add the action Set Fields to If Actions. Complete the Set Fields properties as follows:

  • Data Source: Server

  • Server Name: Name of your server

  • Form Name: HPD:Help Desk

  • Qualification: $Incident Number$ = 'Incident Number'

  • If No Requests Match: Set Fields to $NULL$

  • If Multiple Requests Match: Use First Matching Request

  • Auto Map: Field moogsoft_aiops_situation_id to Value$moogsoft_aiops_situation_id$

Add a second filter to complete the synchronization action as follows:

  • Filter: Filter name, for example MoogsoftIncidentWorklog

  • Associated Form: HPD:WorkLog

  • Execution Option: Enabled - Modify, Submit

  • Run IF Qualification: 'moogsoft_aiops_situation_id' != $NULL$

  • If Action, Run Process:

    <Path to Java on your BMC server> -jar <Path to Remedy jar file> "false" $Incident Number$ "$moogsoft_aiops_situation_id$" "$Submitter$" $Detailed Description$

  • API Call To: https://<moogsoftServer>/graze/v1/addThreadEntry

    with authentication with user graze/<graze password>

    with the following payload:

    {      
         sitn_id : $moogsoft_aiops_situation_id$,      
         thread_name: $moogsoft.thread_name=<someName>      
         entry: $Detailed Description$
    }

Example

An example filter configuration to synchronize Remedy incident status with Moogsoft AIOps is as follows:

Remedy_Filter_Configuration.png

Commit the changes

To commit the custom field changes, follow these steps to perform a mid tier flush:

  1. Log in to the BMC Mid Tier Configuration Tool and flush the cache.

  2. Log in to the BMC Remedy Developer Studio and check the forms for the new custom field.

  3. If the changes have not committed, use the BMC Mid Tier Configuration Tool again to flush the browser history and cookies and then flush the cache.