Troubleshoot > Troubleshooting tips

Troubleshooting SA-uCMDB integration

Running the SA-uCMDB connector on a second core

In some cases, a particular core in a multi-master SA Mesh needs to be deactivated and it becomes necessary to run the SA-uCMDB Connector from a different core in that mesh. Sometimes this is also needed if network performance from another core to the uCMDB server is preferred. In those scenarios, the following steps are necessary:

To run the connector on a second core:

  1. Stop the SA-uCMDB Connector on the first core and remove its affinity to it.
    /etc/init.d/opsware-sas stop telldaemon
    /opt/opsware/tell/bin/tell --release
  2. On the second core, enable the SA-uCMDB Connector by running the enable command. The syntax of the enable command varies depending on your environment. See The enable command in this document for an explanation of the enable command syntax and options.
  3. Take responsibility of the SA-uCMDB integration, and then start the SA-uCMDB Connector.
    /opt/opsware/tell/bin/tell --take
    /etc/init.d/opsware-sas start telldaemon

To enable additional logging:

  1. Start the SA-uCMDB Connector. Normal log files are stored in the /var/log/opsware/tell directory. Default file names include the following:
    tell.0.log            (normal startup log)
    ucmdb_failure.*.log   (uCMDB failures seen during synchronization)
    LOAD_STATS.*.log      (number of processed data)
  2. To request additional logging details, specify the requested information in the /etc/opt/opsware/tell/logging.properties file as shown in the following table.

/etc/opt/opsware/tell/logging.properties fields

Field

Description

java.util.logging.FileHandler.limit

Specifies the maximum number of bytes to write to any one file. Default value is 10000000.

java.util.logging.FileHandler.count

Specifies the number of files to use. Default value is 10.

java.util.logging.FileHandler.append

Specifies append mode, defaults to true.

java.util.logging.FileHandler.pattern

Specifies the pattern for naming the output file where the log file can be found. Defaults to /var/log/opsware/tell/tell.%g.log

Caution Use caution when modifying the file limit. Large numbers might impact performance.

On-demand synchronization

Upon SA restart, the SA-uCMDB Connector normally continues synchronizing SA data to uCMDB from where it ended before the restart. The connector also runs a full sync, periodically. However, in some cases, such as when there are networking or server issues that prevent the updates from reaching the uCMDB server, you may need to trigger the full sync on demand.

To trigger the synchronization on demand:

  1. Stop the SA-uCMDB Connector.
  2. Restart the SA-uCMDB Connector with the following option:
    /opt/opsware/tell/bin/tell --startfresh

Viewing log files

The SA-uCMDB Connector generates the following text log files. You can view these log files in a text editor to get more information.

  • /var/log/opsware/tell/tell.0.log is the main log file for information, warnings and errors encountered by the SA-uCMDB Connector.
  • /var/log/opsware/tell/LOAD_STATS.0.log contains the status and statistics of the initial data load, and approximate times to complete the initial data load.
  • /var/log/opsware/tell/ucmdb_failure.0.log contains uCMDB errors, primarily reconciliation errors if the SA data is incomplete, for example, if the required uCMDB keys are missing. This could happen if a server did not have a serial number or an IP address, for example. This log file contains the uCMDB exception, the reason why it failed and a trace of the CIs that caused the exception.

SA-uCMDB connector daemon

The SA-uCMDB Connector runs the daemon /etc/opt/opsware/startup/telldaemon on your SA core server. Make sure this process is running on your SA core server.

If it is not running, start it as described in New syntax in the enable command.

If it is running, check the status as described in Use cases.

Example– SA-uCMDB Connector Mapping File

<DB-UCMBD-HIGHLEVEL-MAPPING>

    <!-- generates installed_software.xml -->
    <Model-Definition model-name='sa' enable='true'>
        <CI ucmdb-ci-type-name='server_automation_system' enable='true' base-class='server_automation_system'>
            <Attribute source='SA/Description' target-attr='description' enable='true'/>
            <Attribute source='SA/Name'  target-attr='name' enable='true'/>
            <Attribute-Default target-attr='version' target-attr-value='9.14' enable='true'/>
        </CI>
    </Model-Definition>
    <!-- generates node.xml -->
    <Model-Definition model-name='hosts' enable='true'>
        <CI ucmdb-ci-type-name='server_automation_system' reference-ci='true' enable='true'/>
        <CI ucmdb-ci-type-name='ip_address' enable='true' base-class='node'>
            <Attribute source='IpAddress/PrimaryIpName' target-attr='name' enable='true'/>
            <Attribute source='IpAddress/RoutingDomain' target-attr='routing_domain' enable='true'/>
        </CI>
        <CI ucmdb-ci-type-name='node' enable='true' base-class='node'>
            <Attribute source='Node/Name' target-attr='name' enable='true'/>
            <Attribute source='Node/Description' target-attr='description' enable='true'/>
            <Attribute source='Node/BiosAssetTag' target-attr='bios_asset_tag' enable='true'/>
            <Attribute source='Node/BiosSerialNumber' target-attr='serial_number' enable='true'/>
            <Attribute source='Node/BiosUuid' target-attr='bios_uuid' enable='true'/>
            <Attribute source='Node/DefaultGatewayIpAddress' target-attr='default_gateway_ip_address' enable='true'/>
            <Attribute source='Node/NetBiosName' target-attr='net_bios_name' enable='true'/>
            <Attribute source='Node/NodeModel' target-attr='node_model' enable='true'/>
            <Attribute source='Node/MemorySize' target-attr='memory_size' enable='true'/>
            <Attribute source='Node/OsDescription' target-attr='os_description' enable='true'/>
            <Attribute source='Node/OsFamily' target-attr='os_family' enable='true'/>
            <Attribute source='Node/TenantOwner' target-attr='TenantOwner' enable='true'/>
            <Attribute source='Node/Facility' target-attr='facility' enable='false'/>
            <Attribute source='Node/VirtualizationTypeId' target-attr='virtualization_type_id' enable='false'/>
            <Attribute source='IpAddress/ManagementIpName' target-attr='ip_address' enable='false'/>
            <CI-Filter enable='true'><![CDATA[(DEVICES.OPSW_LIFECYCLE = 'MANAGED')]]></CI-Filter>
        </CI>
        <Relation ucmdb-relation-type-name='containment' ucmdb-relation-from-ci-type-name='node' ucmdb-relation-to-ci-type-name='ip_address' enable='true' ucmdb-relation-id-link='true'/>
        <Relation ucmdb-relation-type-name='aggregation' ucmdb-relation-from-ci-type-name='server_automation_system' ucmdb-relation-to-ci-type-name='node' enable='true' ucmdb-relation-id-link='false'/>
    </Model-Definition>
    <!-- generates installed_software.xml -->
    <Model-Definition model-name='software' enable='true'>
        <CI ucmdb-ci-type-name='node' base-class='node' reference-ci='true' enable='true'/>
        <CI ucmdb-ci-type-name='installed_software' enable='true' base-class='installed_software'>
            <Attribute source='InstalledSoftware/DmlProductName' target-attr='dml_product_name' enable='true'/>
            <Attribute source='InstalledSoftware/Name'  target-attr='name' enable='true'/>
            <Attribute source='InstalledSoftware/Version' target-attr='version' enable='true'/>
            <Attribute source='InstalledSoftware/Vendor' target-attr='vendor' enable='true'/>
        </CI>
        <Relation ucmdb-relation-type-name='composition' ucmdb-relation-from-ci-type-name='node' ucmdb-relation-to-ci-type-name='installed_software' ucmdb-relation-id-link='true' enable='true'/>
    </Model-Definition>
    <!-- generates policy.xml -->
    <Model-Definition model-name='compliance' enable='true'>
        <CI ucmdb-ci-type-name='server_automation_system' reference-ci='true' enable='true'/>
        <CI ucmdb-ci-type-name='policy' base-class='policy' enable='true'>
            <Attribute source='Policy/Name' target-attr='name' enable='true'/>
            <Attribute source='Policy/Description' target-attr='description' enable='true'/>
            <Attribute-Default target-attr='policy_defined_by' target-attr-value='SA' enable='true'/>
            <Attribute-Default target-attr='policy_category' target-attr-value='audit' enable='true'/>
        </CI>
        <Relation ucmdb-relation-type-name='aggregation' ucmdb-relation-from-ci-type-name='server_automation_system' ucmdb-relation-to-ci-type-name='policy' enable='true' ucmdb-relation-id-link='false'/>
     </Model-Definition>
    <!-- generates hypervisor.xml -->
    <Model-Definition model-name='hypervisor' enable='true'>
        <CI ucmdb-ci-type-name='node' base-class='node' reference-ci='true' enable='true'/>
        <CI ucmdb-ci-type-name='hypervisor' base-class='hypervisor' enable='true'>
            <Attribute source='Hypervisor/Name' target-attr='name' enable='true'/>
            <Attribute source='Hypervisor/Description' target-attr='description' enable='true'/>
            <Attribute source='Hypervisor/ProductName' target-attr='product_name' enable='true'/>
        </CI>
        <Relation ucmdb-relation-type-name='composition' ucmdb-relation-from-ci-type-name='node' ucmdb-relation-to-ci-type-name='hypervisor' ucmdb-relation-id-link='true' enable='true'/>
    </Model-Definition>
    <!-- generates hypervisorRelation.xml -->
    <Model-Definition model-name='vmrelations' enable='true'>
        <CI ucmdb-ci-type-name='hypervisor' base-class='hypervisor' reference-ci='true' enable='true'/>
        <CI ucmdb-ci-type-name='node' base-class='node' reference-ci='true' enable='true'/>
        <Relation ucmdb-relation-type-name='execution_environment' ucmdb-relation-from-ci-type-name='hypervisor' ucmdb-relation-to-ci-type-name='node' ucmdb-relation-id-link='false' enable='true'/>
    </Model-Definition>
    <!-- generates policyResult.xml -->
    <Model-Definition model-name='compliance_status' enable='true'>
        <CI ucmdb-ci-type-name='policy' base-class='policy' reference-ci='true' enable='true'/>
        <CI ucmdb-ci-type-name='node' base-class='node' reference-ci='true' enable='true'/>
        <CI ucmdb-ci-type-name='policy_result' base-class='policy_result' enable='true'>
            <Attribute source='PolicyResult/Name' target-attr='name' enable='true'/>
            <Attribute source='PolicyResult/ComplianceStatus' target-attr='compliance_status' enable='true'/>
            <Attribute source='PolicyResult/PolicyResultDateTime' target-attr='policy_result_date_time' enable='true'/>
            <Attribute source='PolicyResult/RulesCompliant' target-attr='rules_compliant' enable='true'/>
            <Attribute source='PolicyResult/RulesNonCompliant' target-attr='rules_non_compliant' enable='true'/>
            <Attribute source='PolicyResult/ComplianceLevel' target-attr='compliance_level' enable='true'/>
        </CI>
        <Relation ucmdb-relation-type-name='composition' ucmdb-relation-from-ci-type-name='policy' ucmdb-relation-to-ci-type-name='policy_result' ucmdb-relation-id-link='false' enable='true'/>
        <Relation ucmdb-relation-type-name='aggregation' ucmdb-relation-from-ci-type-name='node' ucmdb-relation-to-ci-type-name='policy_result' ucmdb-relation-id-link='true' enable='true'/>
    </Model-Definition>
</DB-UCMBD-HIGHLEVEL-MAPPING>