Integration – ITSM – BMC Remedy

Integrate Service Advisor to BMC Remedy

This section provides general instructions for customizing the Service Advisor integration with your BMC Remedy application. For more detailed information, please see the PuzzleLogic Service Advisor Installation and Deployment Guide.

IMPORTANT: By default, Service Advisor can integrate with BMC Remedy without completing the following tasks. However, if you choose not to complete these customizations, Service Advisor may not accurately display the records or service model relationships from the data source.

1. Import the ITSM definitions

To integrate with BMC Remedy ITSM, you need to import a form and workflow into the BMC Remedy Action Request System server. This step is necessary to track the data that was retrieved by the data integration jobs. The definition file plviewer-bmcitsm-XXXXXX.def (provided in the plviewer-pdi-integration-XXXXXX.tar.gz file) contains the required form and workflow.

You must have the proper Administrator permissions to import ITSM definition files.

IMPORTANT: If you import the ITSM definition file plviewer-bmcitsm-XXXXXX.def, you also need to set the AR_DELETE variable (in the config_ars.properties file) to TRUE. See the section Set variables in the configuration properties file for more information.

  1. Open the BMC Remedy Developer Studio tool and connect to the ARSystem Server that the PuzzleLogic Service Advisor will be extracting data from.
  2. Select File > Import.
  3. Select Object Definitions and click Next.
  4. Select the appropriate AR server and click Next.
  5. Navigate to the definition file plviewer-bmcitsm-XXXXXX.def and click Next.
  6. Click Finish to import the definitions.

2. Create a custom class for Traverse relationships

The PuzzleLogic Traverse feature allows users to see dependent relationships between CIs across application stacks. This feature was built on the concept of Ownership Dependency Mapping relationships. To support these mapping relationships, you need to create a custom CMDB class in BMC Remedy ITSM and load data into this custom class to define which CIs are related.

IMPORTANT: To complete this task, you must have the proper permissions to create a custom CMDB class.

  1. Use a browser to connect to your BMC Remedy AR Server via the Mid-Tier.
  2. On the IT Home page, navigate to the Atrium Core Console.
  3. On the Atrium Core Console, select Class Manager, then select New Relationship Class.
  4. Set the following attributes to the values specified:
    Properties

    • Super Class:  BMC.CORE:BMC_BaseRelationship
    • Namespace:  PL.VIEWER
    • Class Name:  PL_OwnershipDependencyMapping
    • Data Storage Method:  Regular

    Relationship Type 

    • Class 1:  BMC.CORE:BMC_BaseElement
    • Class 2:  BMC.CORE:BMC_BaseElement
    • Cardinality:  Many-Many
    • Role 1:  Source
    • Role 2:  Destination
  5. Click OK to save the new custom class.
    NOTE: After some time, check the status to ensure the class is active and did not error out.
  6. In Developer Studio, verify that the regular and join forms for the new custom class were created:
    • (PL.VIEWER:PL_OwnershipDependencyMapping
    • PL.VIEWER:PL_OwnershipDependencyMapping_)

3. Create a custom attribute to define Application Service models

PuzzleLogic requires a custom attribute to identify the relationships to use to properly define Application Service models. You need to create this custom attribute in the BMC_BaseRelationship class.

IMPORTANT: To complete this task, you must have the proper permissions to create a custom attribute in a CMDB class.

  1. Use a browser to connect to your BMC Remedy AR Server via the Mid-Tier.
  2. On the IT Home page, navigate to the Atrium Core Console.
  3. On the Atrium Core Console, select Class Manager, then select BMC_BaseRelationship.
  4. In the viewer, right-click the BMC_BaseRelationship box. In the drop-down menu, select Edit Class.
  5. On the Attributes tab, click New, and then specify the following Properties information:
    • Data Type:  Selection
    • Attribute Name:  UseInViews
    • Namespace:  PL.VIEWER
    • Field ID:  Enter a desired ID value or leave empty for system-generated ID
    • Entry Mode:  Optional
    • Enum Type:  Custom
    • Values:  Yes;No
    • ID Values:  0;1
  6. Click OK to save the new attribute, and click OK to save the class.
    NOTE: Records in BMC.CORE:BMC_BaseRelationship with UseInViews='No' will be ignored and not loaded into the PuzzleLogic Service Advisor system. Only records with UseInViews='Yes' or NULL will be available for import.

4. Customize the plKind mapping file

PuzzleLogic uses the plKind_class_mapping.csv file to map the source configuration item (CI) class types from BMC Remedy and ServiceNow ITSM systems to PuzzleLogic object types—RegistryObject (the base object type), application, service, host, or system.

The plKind_class_mapping.csv file ships with the following BMC Remedy mapping values. You can modify the current mappings or add new mappings to reflect the CI class types used by your organization.

NOTE: If a source CI class is not mapped to a valid PuzzleLogic object type, the CI class will be mapped to RegistryObject by default.

System Class PLKind
ars BMC_Application application
ars BMC_ApplicationService service
ars BMC_ApplicationSystem system
ars BMC_BusinessService service
ars BMC_ComputerSystem host
ars BMC_SoftwareServer host
ars BMC_Cluster host
ars BMC_Mainframe host
ars BMC_Printer host
ars BMC_SoftwareServer host
ars BMC_StorageSubsystem host

To modify the plKind_class_mapping.csv file:

  1. Open the plKind_class_mapping.csv in a text editor or Microsoft Excel.
    NOTE: The plKind_class_mapping.csv file is located in the /Pentaho/Logs directory.
  2. To edit an existing entry:
    1. In the second column, modify the source Class type.
    2. In the third column, modify the PuzzleLogic object type that the source Class type will be mapped to. The PuzzeLogic object type must be one of the following values: RegistryObject, application, service, host, or system.
      NOTE: Do not modify the ars value in the first column.
  3. To add a new Class type, create an entry with the following values:
    1. In the first column, enter ars.
    2. In the second column, enter a valid CI Class type.
    3. In the third column, enter the PuzzleLogic object type that the source Class type will be mapped to. The PuzzeLogic object type must be one of the following values: RegistryObject, application, service, host, or system.
  4. Save the file with your changes. If you are using Excel, save the file as type CSV (Comma delimited) (*.csv).

5. Configure the data integration jobs for BMC Remedy

PuzzleLogic Service Advisor ships with pre-defined data integration jobs. These jobs retrieve certain areas of data from the ITSM data source and load the data into the PuzzleLogic Data Repository. The data integration jobs are executed through the run_job.sh script.

NOTE: The job files for BMC Remedy are located in the <Pentaho Install Directory>/Repository/PLViewer/ARS directory. For more information about the BMC Remedy data integration jobs, please see the PuzzleLogic Service Advisor Installation & Deployment Guide.

Complete the following configuration tasks before you run the data integration jobs.

Task 1. Set variables in the configuration properties file

The configuration properties file config_ars.properties contain runtime variables for functions such as connecting to the data source, setting search criteria to filter results, or retrieving data from columns not specified out of the box. Users can define or modify these variables.

NOTE: The default BMC Remedy configuration properties file config_ars.properties is located in the <Pentaho Install Directory>/PLViewer/Conf/ directory.

  1. Use the Pentaho Data Integration encr.sh utility to encrypt the AR_DB_PWD password for the database account to the AR System database.
    1. On the command line, navigate to <Pentaho Install Directory>/data-integration.
    2. Enter the following command to encrypt the password:
      encr.sh -kettle <password>
      Example:  encr.sh -kettle AR#Admin#
    3. Copy the encrypted output for the following step.
  2. Open the configuration properties file config_ars.properties in a text editor.
  3. Set the database connection information variables.
    • AR_DB_HOST = Host name or IP address of the AR System database server.
    • AR_DB_NAME = Name of database.
      • For Oracle: SID or Service Name
      • For MS SQL Server: Name of Remedy database in MS SQL Server
    • AR_DB_PORT = Port number of database. Defaults are 1521 for Oracle and 1433 for MS SQL Server.
    • AR_DB_USER = User name of database account that has full read access to the ARSystem database.
    • AR_DB_PWD = Password for the database user. NOTE: Paste the encrypted output from the step above.
    • AR_DB_TYPE = Type of database; oracle or mssql.
    • AR_DB_SCHEMA = Name of schema for the ARSystem database. Typically, ARADMIN for Oracle and DBO for MS SQL.
  4. Set the AR_DELETE variable. If this variable is set to TRUE, physical deletes in the data source will be synced and reflected in PuzzleLogic Service Advisor. If this variable is set to FALSE or any other value besides TRUE, there will not be synchronization of physical deletes; consequently, the data displayed in PuzzleLogic Service Advisor may not be accurate.
    NOTE: If you applied the custom definitions file plviewer-bmcitsm-XXXXXX.def to the source BMC Remedy system, set the AR_DELETE to TRUE.
  5. Set the variable AR_CIC_NAMESPACE with the appropriate namespace(s).
  6. (Optional) Set the optional (non-required) variables, as needed.

Task 2. Modify the job_last_execution.csv file

The job_last_execution.csv file contains the last date/time that each data integration job was successfully executed. When a job is run, it will only retrieve records that have been modified, created, or deleted since the job was last run successfully.

NOTE: The job_last_execution.csv file is located in the <Pentaho Install Directory>/Logs/ directory.

When you execute a job, you have the option of specifying a start-date and end-date range to filter which records are retrieved based on the Modified Date field. If you specify the start- and end-dates, the timestamp value from the job_last_execution.csv file will be ignored and a new value will not be written to the file after the job has been executed.

The job_last_execution.csv file has two columns:1-Name of the job and 2-Timestamp of last execution. Out of the box, all jobs are set to a future date of 2050/01/01 12:00 AM so that no data will be retrieved until appropriate timestamps have been manually set for each job.

For the Incident, Problem, and Change jobs, PuzzleLogic recommends that you set the timestamps to an appropriate value in the past to retrieve only the desired subset of historical data to populate the PuzzleLogic data repository. For the other jobs, you may wish to set the last modified date back far enough (e.g. 1970/01/01) to ensure all records are retrieved.

  1. Use a text editor to open the file job_last_execution.csv (located at <Pentaho Install Directory>/Logs/ job_last_execution.csv).
  2. For the lines job_get_ars_change, job_get_ars_incident, and job_get_ars_problem, set the timestamp to an appropriate value to retrieve a reasonable subset of historical data (for example, a date two-weeks prior to the current date).
    NOTE: Use the format YYYY/MM/DD hh:mm:ss for the timestamp.
  3. Save the changes to the file.

Task 3: Modify additional configuration variables to improve data integration performance

You have the option of increasing the memory limit in Pentaho to improve the performance of the data integration process. If you are using Remedy with an Oracle database, you will also need to set the Java security.

Out of the box, Pentaho Data Integration sets a maximum of 2048 MB for its JVM (Java virtual machine) heap size. If you have additional free memory, you can set the JVM to a higher value if desired.

NOTE: Internal testing has shown that retrieving 100,000 Incident records in one job instance required 2048 MB of memory; 250,000 Incident records required 3096 MB of memory.

  1. Increase the memory limit in Pentaho.
    1. Make a backup copy of the spoon.sh script (located at <Pentaho Install Directory>/ data-integration/spoon.sh).
    2. Use a text editor to open the spoon.sh script.
    3. Locate the line that starts with PENTAHO_DI_JAVA_OPTIONS=. PENTAHO_DI_JAVA_OPTIONS="-Xms1024m -Xmx2048m -XX:MaxPermSize=256m"
    4. Edit the value of -Xmx2048m to the desired value. For example, the following line increases the memory limit to 4096 MB:
      PENTAHO_DI_JAVA_OPTIONS="-Xms1024m –Xmx4096m -XX:MaxPermSize=256m"
    5. Save the changes made to the spoon.sh script.
  2. Set Java security for Pentaho Data Integration (complete only if BMC Remedy ITSM resides on Oracle database)
    If the BMC Remedy ITSM database is Oracle, you need to modify the spoon.sh script to prevent Oracle JDBC driver errors. These errors can prevent the data integration jobs from connecting to the Oracle database and result in time-out errors.

    1. Use a text editor to open the spoon.sh script (located at <Pentaho Install Directory>/ data-integration/spoon.sh).
    2. Locate the line that starts with OPT= and add the following Java option to the end of the line:
      -Djava.security.egd=file:///dev/urandom
      The modified line should look similar to the one below:OPT="$OPT $PENTAHO_DI_JAVA_OPTIONS -Djava.library.path=$LIBPATH -DKETTLE_HOME=$KETTLE_HOME -DKETTLE_REPOSITORY=$KETTLE_REPOSITORY -DKETTLE_USER=$KETTLE_USER -DKETTLE_PASSWORD=$KETTLE_PASSWORD -DKETTLE_PLUGIN_PACKAGES=$KETTLE_PLUGIN_PACKAGES -DKETTLE_LOG_SIZE_LIMIT=$KETTLE_LOG_SIZE_LIMIT -DKETTLE_JNDI_ROOT=$KETTLE_JNDI_ROOT -Djava.security.egd=file:///dev/urandom"
    3. Save the changes made to the spoon.sh script.

NEXT: Schedule the data integration jobs