Inventory Solution 7.0 Database Schema – Part 4: Agentless Inventory

Machine Translations

In Parts 1-3 of this series we covered the standard platforms (Windows, Unix, Linux, Mac) data classes. In Part 4 we'll cover what Agentless Inventory provides. Whether you need to create a custom report, or a custom resource filter based on Agentless Inventory Data in Inventory Solution 7.0, knowing the database schema is important. Agentless Inventory contains very similar data classes to what was seen in version 6.x of Inventory Solution for Network Devices. However, there are changes thus this document provides technical details on the new data structure and is useful when working with the Agentless Inventory section of Inventory Solution.

Introduction

Documenting database schema is not an easy task. SQL can provide a table-column view of all selected tables, yet this does not include descriptions of what the values represent. This helps provide valuable feedback when trying to put together a specific type of report or when simply looking for a data point collected via SNMP.

It is important to note that Agentless Inventory is primarily driven by SNMP, and requires the use of Network Discovery as a starting point for using Agentless Inventory against the devices. This requirement will change as additional functionality is added to Inventory Solution 7.0.

NOTE: The information in this document may change, though at the time of publication this is believed to be the accurate information for the release of Inventory Solution 7.0.

Database Schema

The following list reveals data classes and their structure. First, the name of the table is given, followed by a designation as a Base or Sub Class data class. The following label system is used:

STANDARD Class - This is a data class that contains no dependencies or sub classes

BASE Class - This is a table that contains data that is then extended by a SUB Class. There is only one BASE class, so unless otherwise specified, all data classes are STANDARD classes.

SUB Class - This contains data extended from another data class. There is only one SUB class so unless otherwise specified, all data classes are STANDARD classes.

Note the following when reviewing the grids:

Field Name represents how the column will be labeled when working within the Symantec Management Console, including reports, Resource Manager details, Pickers, etc.

Data type indicates in what data format the data is managed in.

Qualifiers provide a Description of the Column (if applicable) and potentially other data elements, such as if the column is key or not, or if there is ENUM data to be described.

MIB information contains the SNMP information used to gather the data.

For help in navigating dependent data classes, use the following guide:

The current operational state of the device described by this row of the table. A value unknown(1) indicates that the current state of the device is unknown. running(2) indicates that the device is up and running and that no unusual error conditions are known. The warning(3) state indicates that agent has been informed of an unusual error condition by the operational software(e.g., a disk device driver) but that the device is still ''operational''. An example would be high number of soft errors on a disk. A value of testing(4), indicates that the device is not available for use because it is in the testing state. The state of down(5) is used only when the agent has been informed that the device is not available for any use.

The number of errors detected on this device. It should be noted that as this object has a SYNTAX of Counter, that it does not have a defined initial value. However, it is recommended that this object be initialized to zero.

The amount of time since this host was last initialized. Note that this is different from sysUpTime in MIB-II [3] because sysUpTime is the uptime of the network management portion of the system.

HOST-RESOURCES-MIB

iso.org.dod.internet. mgmt.mib-2.host.hrSystem.hrSystemUptime

1.3.6.1.2.1.25.1.1

System Date

dateTime

Description

The host's notion of the local date and time of day.

HOST-RESOURCES-MIB

iso.org.dod.internet.mgmt. mib-2.host.hrSystem.hrSystemDate

1.3.6.1.2.1.25.1.2

Number of Users

int

Description

The number of user sessions for which this host is storing state information. A session is a collection of processes requiring a single act of user authentication and possibly subject to collective job control.

HOST-RESOURCES-MIB

iso.org.dod.internet.mgmt. mib-2.host.hrSystem.hrSystemNumUsers

1.3.6.1.2.1.25.1.5

Number of Processes

int

Description

The number of process contexts currently loaded or running on this system.

The size, in bytes, of the data objects allocated from this pool. If this entry is monitoring sectors, blocks, buffers, or packets, for example, this number will commonly be greater than one. Otherwise this number will typically be one.

An indication of the general hardware type of the physical entity. An agent should set this object to the standard enumeration value which most accurately indicates the general class of the physical entity, or the primary class if there is more than one. If no appropriate standard registration identifier exists for this physical entity, then the value ''other(1)'' is returned. If the value is unknown by this agent, then the value ''unknown(2)'' is returned.

This object indicates whether or not this physical entity is considered a ''field replaceable unit'' by the vendor. If this object contains the value ''true(1)'' then this entPhysicalEntry identifies a field replaceable unit. For all entPhysicalEntries which represent components that are permanently contained within a field replaceable unit, the value ''false(2)'' should be returned for this object.

An indication of the relative position of this ''child'' component among all its ''sibling'' components. Sibling components are defined as entPhysicalEntries which share the same instance values of each of the entPhysicalContainedIn and entPhysicalClass objects. An NMS can use this object to identify the relative ordering for all sibling components of a particular parent(identified by the entPhysicalContainedIn instance in each sibling entry).This value should match any external labeling of the physical component if possible. For example, for a container(e.g., card slot) labeled as ''slot #3'',entPhysicalParentRelPos should have the value ''3''. Note that the entPhysicalEntry for the module plugged in slot 3should have an entPhysicalParentRelPos value of ''1''.If the physical position of this component does not match any external numbering or clearly visible ordering, then user documentation or other external reference material should be used to determine the parent-relative position. If this is not possible, then the the agent should assign a consistent (but possibly arbitrary) ordering to a given set of ''sibling'' components, perhaps based on internal representation of the components. If the agent cannot determine the parent-relative position for some reason, or if the associated value ofentPhysicalContainedIn is ''0'', then the value ''-1'' is returned. Otherwise a non-negative integer is returned, indicating the parent-relative position of this physical entity. Parent-relative ordering normally starts from ''1'' and continues to ''N'', where ''N'' represents the highest positioned child entity. However, if the physical entities(e.g., slots) are labeled from a starting position of zero, then the first sibling should be associated with aentPhysicalParentRelPos value of ''0''. Note that this ordering may be sparse or dense, depending on agent implementation. The actual values returned are not globally meaningful, as each ''parent'' component may use different numbering algorithms. The ordering is only meaningful among siblings of the same parent component. The agent should retain parent-relative position values across reboots, either through algorithmic assignment or use of non-volatile storage.

The value of entPhysicalIndex for the physical entity which ''contains'' this physical entity. A value of zero indicates this physical entity is not contained in any other physical entity. Note that the set of ''containment'' relationships define a strict hierarchy; that is, recursion is not allowed. In the event a physical entity is contained by more than one physical entity (e.g., double-wide modules), this object should identify the containing entity with the lowest value of entPhysicalIndex.

A textual description of physical entity. This object should contain a string which identifies the manufacturer's name for the physical entity, and should be set to a distinct value for each version or model of the physical entity.

Identifies the device model number as listed in the HP corporate price list (e.g. C2121A for DeskJet 500C).The string is as specific as possible. Products should note in POS if the model number on the CPL changes but the device reports the previous model number. If the model number changes based on the installed options, the POS should indicate if only the base model number is returned, or if the device senses the installed options and returns the correct model number. If possible, encode the model number in a symbol set (like Roman-8)that matches the ASCII character set and limit the characters used to ASCII characters. Additional information: The value of this object does not change based on the installed options. The default of this object is the same on all MoBY printers.

Identifies the device model name (e.g. ''''DeskJet1200C''''). The string is as specific as possible. Capitalization and spacing should match family naming conventions. Products should note in POS if the model name on the HP corporate price list changes but the device reports the previous device name. If the model name changes based on the installed options, the POS should indicate if only the base model name is returned, or if the device senses the installed options and returns the correct model name. If possible, encode the model name in a symbol set (like Roman-8) that matches the ASCII character set and limit the characters used to ASCII characters. Additional information: Since the value of this object is frequently used in displaying a list of printers, it is kept relatively short in case systems have limited width for their display area. The model name does not change based on sensing of installed options.

A recorded serial number for this device that indexes some type device catalog or inventory. This value is usually set by the device manufacturer but the MIB supports the option of write-ability for this object for site-specific administration of device inventory or tracking. Refer to ftp://ftp.pwg.org/pub/pwg/pmp/drafts/pmib_031698.txt, for more details in the Standard Printer MIB.

An administrator-specified name for this printer. Depending upon implementation of this printer, the value of this object may or may not be same as the value for the MIB-II ''SysName'' object. Refer to ftp://ftp.pwg.org/pub/pwg/pmp/drafts/pmib_031698.txt, for more details in the Standard Printer MIB. Additional information: The maximum supported string length is 32 characters. Length of 32 was chosen so a phone number could be included with the name. If the user-entered string is too long, the device will store as much as possible and will return the &lt;noError&gt; status. The value of this object is saved over a power cycle.

User defined device location. The POS should indicate the maximum supported string length. If the user entered string is too long, the device will store as much as possible and will return the &lt;noError&gt;. Additional information: The maximum supported string length is 16 characters. If the user entered string is too long, the device will store the first 16 characters and will return the <noError> status.

User defined asset number. The POS should indicate the maximum supported string length. If the user entered string is too long, the device will store as much as possible and will return the &lt;noError&gt;. Additional information: The maximum supported string length is 8 characters. If the user entered string is too long, the device will store the first 8 characters and will return the <noError> status.

Total number of PCL pages printed by the device. Additional information: In MoBY the PCL page count is kept in NVRAM, and the NVRAM value is updated at least every10 pages. NOTE: The value returned by this object will be incremented every page but if power is lost between NVRAM updates, up to 9 pages of the page count may be lost. The page count counter will be reset to zero after 16,777,215 (2^24-1) pages. The page count is incremented when a sheet of media is pulled from an input tray. A duplex printed sheet will cause this counter to be incremented by two.

Total number of PostScript pages printed by the device. Additional information: This object is only supported if the PostScript option is installed. In MoBY the count is kept in NVRAM, and the NVRAM value is updated at least every 10 sheets. NOTE: The value returned by this object will be incremented every sheet but if power is lost between NVRAM updates up to 9 sheets of the count may be lost. The counter will be reset to zero after 16,777,215 (2^24-1) pages.

The maximum capacity of the input sub-unit in input sub-unit capacity units (PrtCapacityUnitTC). There is no convention associated with the media itself so this value reflects claimed capacity. If this input sub-unit can reliably sense this value, the value is sensed by the printer and may not be changed by management requests; otherwise, the value may be written (by a Remote Control Panel or a Management Application). The value(-1) means other and specifically indicates that the sub-unit places no restrictions on this parameter. The value (-2) means unknown.

A description of the media contained in this input sub-unit; This description is to be used by a client to format and Localize a string for display to a human operator. This description is not processed by the printer. It is used to provide information not expressible in terms of the other media attributes (e.g., prtInputMediaDimFeedDirChosen, prtInputMediaDimXFeedDirChosen, prtInputMediaWeight,prtInputMediaType).

The maximum capacity of this output sub-unit in output sub-unit capacity units (PrtCapacityUnitTC). There is no convention associated with the media itself so this value essentially reflects claimed capacity. If this output sub-unit can reliably sense this value, the value is sensed by the printer and may not be changed by management requests; otherwise, the value maybe written (by a Remote Control Panel or a Management Application). The value (-1) means other and specifically indicates that the sub-unit places no restrictions on this parameter. The value (-2) means unknown.

The current level if this supply is a container; the remaining space if this supply is a receptacle. If this supply container/receptacle can reliably sense this value, the value is reported by the printer and is read-only; otherwise, the value may be written (by a Remote Control Panel or a Management Application). The value (-1) means other and specifically indicates that the sub-unit places no restrictions on this parameter. The value (-2) means unknown. A value of (-3) means that the printer knows that there is some supply/remaining space, respectively.

The maximum capacity of this supply container/receptacleexpressed in prtMarkerSuppliesSupplyUnit. If this supply container/receptacle can reliably sense this value, the value is reported by the printer and is read-only; otherwise, the value may be written (by a Remote Control Panel or a Management Application). The value (-1) means other and specifically indicates that the sub-unit places no restrictions on this parameter. The value (-2) means unknown.

A unique value for each adapter contained in the host. The value for each adapter must remain constant at least from one re-initialization of the agent to the next re-initialization.

Description

string(255)

Description

A description the hardware for this adapter. This will usually include manufacturer, model, and version information. For LAN adapters, this could include the short board name and the boards burnt-in MAC address.

The number of I/O ports in the block starting atnwhrAdapterPort1. This value is used in conjunction with nwhrAdapterPort1 to determine the I/O block used by the adapter. The value will be zero if there is no I/O address associated with this adapter.

The number of I/O ports in the block starting atnwhrAdapterPort2. This value is used in conjunction with nwhrAdapterPort2 to determine the secondary I/O block used by the adapter. The value will be zero if there is no I/O address associated with this adapter.

The secondary Memory Address. This is the address of the secondary block of memory space decoded by the adapter. The value will be zero if there is no secondary memory address associated with this adapter.

The slot in which the adapter resides. The value will be zero if the slot information is not available on the platform, such as an ISA based PC, otherwise the value will be the slot number the adapter resides. The slot number starts from 1.

The total memory, in bytes, used by this NLM. This is a composite total of Short Term Memory, Semi-Permanent Memory, and Non-movable Cache Memory allocated by the NLM, plus the sizes of the code and data sections of this instance of an NLM.

A unique value for each physical partition on this long-term storage device. The value for each long-term storage device must remain constant from one re-initialization of the agent to the next re-initialization.

The mount state of the volume. Note that if the volume is not mounted, all the other values in the table, except nwVolName, are invalid. Writing a value of mounted(1) to this object will cause the volume to be mounted if it is currently dismounted. Writing a value of dismounted(2) to this object will cause the volume to be dismounted if the volume is currently mounted.

A value representing all the name spaces supported by this volume. The value is a sum. This value initially takes the value zero, then for each name space that is supported by the volume, 2 raised to a power is added to the sum. The powers are according to the following table: Name Space PowerDOS 0MAC 1NFS 2FTAM 3OS/2 4NT 5For example, a volume supporting both the DOS and MACname spaces would have a value of 3 (2**0 + 2**1).

Conclusion

Hopefully this provides a guide that will allow you to upgrade or implement Inventory Solution 7.0 armed with the necessary data to manage your reports, filters, or anything else based off of Agentless Inventory (formerly known as Inventory Solution for Network Devices). The intent is to broaden Agentless Inventory to support Protocols such as WMI, allowing a greater flexibility in gathering data from devices without a local agent. Note that there are no dates planned to add this functionality at the time of this publication