This document provides a detailed walk through on the flow of inventory scan in a Windows Managed device and Server through Satellite Server, along with some tips to debug certain failures.
Note to the Reader: ZENworks Asset inventory is a vast feature with multiple components and workflows, which are already available in the Micro Focus documentation . This document mainly covers the workflow of the inventory scan, which forms the core part of the Asset Inventory. Hopefully, this document will help to have an in-depth understanding of the scan workflow and will be useful in debugging issues.
Asset Inventory allows you to scan and collect information such as hardware, software, software usage, demographic data etc. from a ZENworks Managed or Inventoried Device.
Hardware Data: The hardware data includes information about keyboard, video adapter, bus adapter, monitor, CD/DVD, LAN adapter etc.
Software Data: The software data includes the software products that are installed ZENworks Managed or inventoried devices.
Usage Data: Includes the information on the usage of particular softwares on client devices.
Demographic Data: Includes details of the users like Name, Email, Phone, Site, Department, etc.
Software Fingerprinting Process and Product Recognition Update (PRU):
The following diagram shows the workflow of the software fingerprinting process:
Scan Configuration Workflow:
a) Options.xml: This file contains details like type of scan, software/Hardware/MSI collection etc. is enabled or not, directory skipped from being inventoried etc. This file is available in the following location:
On Windows: %ZENworks_Home%/bin
On Linux: /opt/novell/zenworks/bin
b) InventoryScanSchedule.xml: This file contains the details of the scan schedule. The file is available in the following location:
On Windows: %ZENworks_Home%/cache/ zmd /settings/
On Linux: /var/opt/novell/zenworks/zmd/cache/settings/
In the above-mentioned location, some of the other inventory related XML’s that gets updated are: inventoryFirstScan.xml, inventoryAutoReconcile.xml, inventoryRecurringScan.xml, inventorySW.xml, inventoryScanNow.xml, inventoryHW.xml, inventorySWFiles.xml
During debugging these XML files can be verified to see if the settings have flown down from server to the agent and are updated accordingly.
Workflow in the Managed Agent:
In an Agent, the Inventory module governs all inventory related activities. The following block diagram shows the workflow in the Managed Agent:
Following are the systematic series of events:
Delta.xml Creation Logic:
Delta State: Is the one that determines whether a software is installed, uninstalled etc. On observing a WIF, the tag <DeltaState>1</DeltaState> indicates the state.
Following are the different delta states:
Inventory Scan workflow from Agent to Server:
Inventoryscanschedule.xml: %ZENworks_Home%\cache\zmd\settings and
options.xml: % ZENworks_Home%\bin
On Windows: %ZENworks_Home%\collection\inventory folder
On Linux: /var/opt/novell/zenworks/collection/inventory
On Windows server: %ZENworks_Home%\collection\Inventory\Success.
On Linux server: /var/opt/Novell/ZENworks/collection/inventory\Success.
Note: All the file paths mentioned in this document are only applicable to ZENworks 2020 Update-1 and prior releases.
Debugging Possible Failures:
Following are some of the corner cases of failures that were encountered either in Product Testing or in a customer environment.
1. Satellite Server down: As per the WIF sequencing logic, when an out of sequence WIF arrives to the server, then that WIF is not processed and it is moved to a waiting folder where it is made to wait.
In the above example, an agent has generated the sequences 0-001, 0-002, 0-003 in 3 consecutive scans. Now 0-001 is processed in the Primary Server. However, the 0-002 is lost or still stuck in the Satellite Server. In this case, when 0-003 arrives to Primary Server, it is made to wait until 0-002 arrives.
Hence, ensure that the Satellite Server is up and running. In some of the WIF processing failure cases, the Satellite Server might be down. Hence the WIF that has already arrived at the Satellite Server will not be able to proceed to the Primary Server.
2. Existence of some special characters: Inventory scan fails because of special/invalid characters in WIF file. These invalid characters come from either Manufacturer, serial number or any other parameter. This can happen for both Software and Hardware components.
Example 1: Following screenshot shows the blob in the WIF of a system that was obtained by scanning a removable media/drive (USB flash) attached to a Managed ZENworks agent. The serial number consists of special characters, Hence, the WIF upload failed.
Example 2: In this case, a removable HP HD Camera is attached to a ZENworks agent device at the time of scan and the serial number consists of special characters. Hence, the scan file upload will fail.
3. Changes in external tools/Operating System: For hardware collection, we primarily use tools such as HW info (Linux), WMI query (windows), which is used as collection sources for hardware data. Sometimes, when these tools are upgraded as part of periodic update or a system update of the Operating System, then the behaviour of these tools vary, thus resulting in inconsistencies. In some scenarios, the way the newer versions of operating system response to these tools also cause issues.
4. Database update/driver update: Another reason can be due to a database updates or a driver update, which will cause either a query to malfunction or the way the data is stored/retrieved.
5. Software reconciliation: Sometimes there can be issues in PRU, leading to wrong reconciliation, and hence a duplicate representation of a same software product can happen in the detail inventory report. As in the following example:
This can be fixed either by finger printing in the PRU or by creating Local Software Products, or by using the manual reconciliation option in ZENworks Asset Management.
6. Loader service unresponsive: In some unique cases, the loader service in the Primary Server might be unresponsive, due to which the WIF files get piled up in the collection/inventory folder. A quick solution to this would be to restart the loader server and check if it solves the problem.
Note: Most of these mentioned issues were unique and are addressed. However, there can be a possibility of such occurrences based on respective environments.