Skip to content

Disable Software Discovery

Mat Davis edited this page Dec 3, 2019 · 1 revision

The discovery of installed software is known to cause performance problems, both during discovery and storage, especially for Windows. For clarity, "software" here does not refer to AppServers, WebServers, etc. "Software" refers to the Windows Add/Remove program list, which is simply a catalog of software that has been installed on the system. Generally, TADDM users do not manage software using TADDM, but prefer to use another tool that designed for such software management. If installed software is not managed by your organization, it is highly recommended that you follow the steps below to disable discovery of software at the operating system level.

Skip Windows Software Discovery (7.3.0.1 or later)

An RFE has been delivered to address this issue for Windows software discovery. For TADDM 7.3.0.1+ there is a new property for collation.properties that applies to both regular and script-based discovery mode.

com.ibm.cdb.skipWindowsSoftware=true

Use this property to disable Windows software discovery. This property will not delete existing Windows software discovered in the TADDM database, it will only skip discovery of software during discovery execution. If using this property, skip the "Discovery Phase" section below but apply the "Storage Phase" tips below to ensure that previously discovered software is deleted for Windows.

Discovery Phase

On the discovery side, prior to v7.3.0.1 there is no way to completely disable the call to GetInstalledSoftware for Windows software discovery. For TADDM pre-7.3, a timeout of this command causes the Windows sensor to fail. However, on TADDM 7.3+ a timeout only causes a warning. So for TADDM 7.3+ users, you can configure TADDM to attempt the command only once, time out after 2 minutes (default) and then move on, which can help increase performance. Edit collation.properties and make sure that com.collation.SshSessionCommandTimeout is set to the default of 120000. Next change com.collation.SshWeirdErrorTryCount from 5 to 1 so that the command will only be ran once. If you still want to retain the functionality of a retry for other errors, you can set that value to 2 understanding that a GetInstalledSoftware timeout will occur twice (4 minutes total) before the sensor moves on.

This will cause warnings to be generated for the Windows sensor and that sensor will show up highlighted in yellow in the UI. To suppress this warning, edit the following property in collation.properties.

com.ibm.cdb.discover.suppressedWarnings=CTJTD1229W A timeout occurred while executing TaddmTool script: GetInstalledSoftware

For non-Windows software discovery, generally the command does not take long to run during the discovery phase and doesn't cause many performance problems until storage.

Storage Phase

This section only applies to TADDM v7.3 or later.

For performance issues on the storage side, this tip will help to address them. A large part of the sensor storage is due to storing these software components, especially for Windows. Attached is a Jython discovery extension that will strip out the discovered software after the sensor completes but before results are stored.

  1. Download SwCompRm.py and place under dist/etc/templates/commands/extension-scripts on every discovery server.
  2. Add the following line to dist/etc/templates/commands/ComputerSystemTemplate on every discovery server where is the system type you want to disable software discovery (recommended to disable software discovery for all system types).
    SCRIPT[com.ibm.cdb.core.jython253_2.5.3]:etc/templates/commands/extension-scripts/SwCompRm.py
    
  3. Log in to one of the discovery management consoles. Click on Computer Systems and enable the all the computer system templates that you want to remove software discovery (e.g. WindowsComputerSystemTemplate) if they are not already enabled.

It is important to note that if you are rediscovering a Windows system with this script then the storage might actually take more time the first time you run it due to the fact that the existing software will be deleted during discovery. However, the next time discovery is run you should see a major decrease in Windows sensor storage time.

Technical Note About SwCompRm.py

The SwCompRm.py script is a fairly simple script that detects if software was discovered, and if it is, replaces the discovered software with an empty array. This ensures that TADDM will delete any previously discovered software. Another option is to set the array to 'None' which is the Python equivalent of null. However, setting the value to 'None' has different effects depending on the version of TADDM. For v7.2.2 setting the value to 'None' has the same effect as setting the value to an empty array so there is no difference. However, for v7.3.0.2 setting the value to 'None' will only ignore the software and not delete previously discovered software. So if you are using TADDM v7.3.0.2 and you would prefer to only ignore the software and not delete previously discovered software, you can change the script to set the value to 'None'.

Disable Change History for SoftwareComponent

Another small performance tweak is to remove SoftwareComponent from change history tracking. As you rediscover existing systems with the SwCompRm.py script, the software components that previously existed will be removed. This will cause an avalanche of change history delete records. This can be avoided by setting the following tags in dist/etc/changeserver.xml.

<modelObject name="com.collation.platform.model.topology.sys.SoftwareComponent"/>

<modelObject name="com.collation.platform.model.topology.sys.OperatingSystem">
    <attribute name="softwareComponents"/>
</modelObject>

This change requires a restart of TADDM to take affect.

Also note that if downstream integrations are configured against the change history table, such as ITIC with Control Desk, ensure that SoftwareComponent instances are not being managed by the integration. They are not managed by ITIC and Control Desk by default.

Clone this wiki locally