Overview
JetPatch Software Discovery enables you to identify and track installed software and applications across all connected endpoints in your environment.
By collecting real-time data on deployment status, operational state, and configuration details, JetPatch provides full visibility into your software landscape - covering both patch management and agent management environments.
Discovery is performed using a JSON-based configuration file that defines which tools and applications to search for, and how to identify them across Windows and Linux systems.
Once discovered, the data is surfaced in the Agents Catalog and the Servers tab, allowing you to monitor unmanaged tools and take action accordingly.
This article contains the following topics:
- Collect Software and Applications data on connected endpoints
- Creating and uploading the discovery JSON
- Managing Discovery Behavior
| Note: For Software Distribution, see this article. |
JetPatch enables the discovery of installed software and applications to identify deployment, operational status, and configuration details. This functionality is available in both patch and agent management environments.
Tools Discovery Overview
JetPatch Tools Discovery operates through two key methods:
- Collecting Data on Connected Endpoints
- Uploading a Discovery File to View Environment Status
1. Collect Software and Applications Data on Connected Endpoints
You can discover data on installed software and applications running in your environment. The data discovered is in JSON format and includes the agent Name, OS family, and agent version. To collect and download the data, please follow the next steps:
| STEP 1: Enabling the Suggested Discovery JSON (enabled by default in 4.2.5+) |
- SSH JetPatch Application Server
For versions before 5.0:
- Stop Tomcat
| systemctl stop tomcat |
- Edit the intigua.properties file
| vi /usr/share/tomcat/default/conf/intigua.properties |
Post 5.0:
- Stop intigua-main
| docker stop intigua-main |
- Edit the intigua.properties file
| vi /usr/share/intigua/services/data/intigua-main/conf/intigua.properties |
- Add the following settings:
|
# Installed software data collection ep.data.collection.enabled=true |
- Save and Exit
- Restart Tomcat / intigua-main
For versions before 5.0:
After saving the changes to the file, restart Tomcat:
| systemctl restart tomcat |
Post 5.0:
After saving the changes to the file, restart intigua-main:
| docker restart intigua-main |
| STEP 2: Download the Suggested Discovery File |
After enabling the above, please wait at least 20 minutes, then:
- Log in to the JetPatch platform
- Go to Agents & Tools > Tools Catalog
- Click on the Tools Discovery button > 'Download suggested discovery file'
| Note: The suggested discovery file will download all Linux Package Names and all Windows Upgrade Codes that are installed on the connected endpoints. |
2. Creating and Uploading the Discovery JSON
JetAgent can also discover agents based on agent configurations and parameters.
To do so, a JSON file with specific properties is required.
Follow the next steps to discover installed software using a discovery file:
| STEP 1: Create a JSON Discovery File |
The JSON file should include the following fields:
- "name" (mandatory) - The name of the software.
- "searchBy" (mandatory) - must include at least one "searchBy" parameter:
- packageName (valid for Linux) - searching for DEB/RPM packages installed with the same name
- upgradeCode (valid for Windows):
- "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Installer\\UpgradeCodes"
- productID (valid for Windows) - searching equivalent names in keys under:
- "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\S-1-5-18\\Products"
- "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall"
- "SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall"
- services (valid for Windows and Linux) - list of services
- registry (valid for Windows) - list of registry keys
- "configParams" (optional) - configure to extract the software configuration. This field should include:
- "name" (mandatory if configParams exists) - The name of the requested configuration
- "type" (mandatory if configParams exists) - The type of the parameter
- "fromFile" (mandatory if "fromRegistry" is missing):
- "filename" - the file name to extract the configuration
- "linePrefix" - the prefix of the line to extract the configuration value from (all strings after the prefix will be extracted)
- "fromRegistry" (mandatory if "fromFile" is missing):
- "key"
- "value"
|
Note: Please find the 'fully_discovery.json' file attached for more references. The Discovery file includes the following agents and applications discovery: VMTools, Chrome, Adobe Acrobat Reader, McAfee-agent, SCCM, FireEye, SCOM, Qualys, Loginsight, Zabbix, and IEM. |
| STEP 2: Upload JSON to JetAgent Portal |
- Go to Agents & Tools > Tools Catalog
- Click on the Tools Discovery button > 'Upload discovery file.'
|
Note: Each upload will override the previous discovery file. To clear the results, upload an empty JSON file and wait for the ep.data.collection.full-scan-delay-hours property sync (default 168 hours). You can set ep.data.collection.full-scan-delay-hours to 1 hour temporarily to clear the file faster. Note: in JetPatch 4.2.8, an empty JSON file alone will clear results. |
3. Managing Discovery Behavior
Disabling Native Agent Discovery
To stop agent discovery while keeping the property enabled:
- Create and upload an empty JSON file ({}) through Tools Discovery > Upload Discovery File
- Disable ep.data.collection.enabled in intigua.properties and restart the service:
| ep.data.collection.enabled=false |
- For versions before 5.0: restart Tomcat
- Post 5.0: restart Docker
To Verify Current Configuration
Run the following SQL query to confirm the content of the uploaded discovery file:
| SELECT c.content FROM agent_discovery_files df JOIN long_text c ON df.content_id = c.id ORDER BY created_on DESC LIMIT 1; |
| Key Points | |
| Purpose | Retrieves the most recent discovery file content for validation. |
| Process | Joins agent_discovery_files and long_text to fetch detailed content. Orders by created_on to prioritize the latest entry. Limits output to one record. |
| Result | Displays the JSON content of the most recent file, or {} if no data exists. |
Re-enabling Discovery
Upload a valid JSON file with desired configurations to reactivate native agent discovery.
Reviewing and Managing Discovered Data
After the JSON discovery file is uploaded, the data should appear in the system in several places (please wait at least ten minutes):
Agents Catalog
New Applications and Agents should appear in the Agents Catalog with an 'unmanaged icon'.
You can drill down to see how many servers in your environment are running unmanaged tools.
| Note: Unmanaged tools from JSON must be present on at least one endpoint for it to show up in the Agents Catalog. |
Servers Tab
Data on specific servers appears in the Servers tab:
- Log in to the JetPatch server
- Go to Servers tab > Table Settings
- Select the 'unmanaged' columns
- You will now be able to see the servers that are running the software agents you selected
- Hover on the Tool icon to view the discovery date & time
- To collect more statistics, you can generate a CSV report
Additional Configuration Properties
|
# Define max iteration if collect fails ep.data.collection.failed.iterations.max=10 ep.data.collection.tasks-limit=100 ep.data.collection.run-failed-after-mins=30 ep.data.collection.enable-periodical-full-scan=true ep.data.collection.full-scan-delay-hours=168 |
The following files are attached for reference:
- full_discovery.json - Complete discovery file example
- empty_obj.json - Empty JSON object for clearing discovery results
Comments
0 comments
Please sign in to leave a comment.