SCCM Heartbeat Discovery Flow

Heartbeat Discovery

This is important for the understanding of the health state of the agent, this can be scheduled in the SCCM server using the console and the settings are available under discovery rules

Depending on the schedules set on the server, once initiated, the agent reads the inventory type to determine by querying WMI.

Once the Discovery Agent has determined its Scan type, it must now determine precisely what it needs to inventory. This is accomplished by again pulling configuration data from WMI. Discovery Rule information is stored within the same namespace of WMI (Root\CCM\Policy\Machine)

The scheduler sends a message to the Inventory Agent:

Client Side

Schedule.log:

Sending message for schedule ‘Machine/{00000000-0000-0000-0000-000000000003}’ (Target: ‘direct:InventoryAgent’, Name: ”) $$<thread=2768 (0xAD0)>

 

smscliui.log:

Site is in mixed mode. Internet tab will not be displayed.          smscliui         2/1/2010 9:02:22 AM    3544 (0x0DD8)

Perform Action: Discovery Data Collection Cycle – {00000000-0000-0000-0000-000000000103}. Message sent, id={7EAD483B-17D6-45FD-A7E2-F8B2AE3797B5}                  smscliui                        2/1/2010 9:03:17 AM    3564 (0x0DEC)

Then the Inventory agent collects the data and sends the xml file to the Management Point.

Inventoryagent.log:

Inventory: *********************** Start of message processing. ***********************                   InventoryAgent                4/23/2010 10:04:46 AM                       2176 (0x0880)

Inventory: Message type is InventoryAction        InventoryAgent                4/23/2010 10:04:46 AM                       2176 (0x0880)

Inventory: Temp directory = C:\WINDOWS\system32\CCM\Inventory\Temp\           InventoryAgent                4/23/2010 10:04:46 AM                       2176 (0x0880)

Inventory: Clearing old collected files.                     InventoryAgent                4/23/2010 10:04:46 AM                       2176 (0x0880)

Inventory: Opening store for action {00000000-0000-0000-0000-000000000003} …  InventoryAgent                4/23/2010 10:04:46 AM                       2176 (0x0880)

Inventory: Action=Discovery ReportType=Full     InventoryAgent                4/23/2010 10:04:46 AM                       2176 (0x0880)

Inventory: Initialization completed in 0.400 seconds                  InventoryAgent                4/23/2010 10:04:46 AM                       2176 (0x0880)

Collection: Namespace = \\.\root\cimv2; Query = SELECT __CLASS, __PATH, __RELPATH, IPAddress, IPXAddress, MACAddress FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=TRUE; Timeout = 600 secs.                     InventoryAgent                4/23/2010 10:04:46 AM                       2176 (0x0880)

Collection: Namespace = \\.\root\cimv2; Query = SELECT __CLASS, __PATH, __RELPATH, UserName FROM Win32_ComputerSystem; Timeout = 600 secs.    InventoryAgent                        4/23/2010 10:04:46 AM                       2176 (0x0880)

Collection: Namespace = \\.\root\ccm\invagt; Query = SELECT __CLASS, __PATH, __RELPATH, IPv6Address FROM

………………….

………………

…………………….

Collection: 13/14 inventory data items successfully inventoried.                  InventoryAgent                4/23/2010 10:04:47 AM                       2176 (0x0880)

Inventory: Collection Task completed in 0.621 seconds            InventoryAgent                4/23/2010 10:04:47 AM                       2176 (0x0880)

Inventory: 1 Collection Task(s) failed.                      InventoryAgent                4/23/2010 10:04:47 AM                       2176 (0x0880)

Inventory: Temp report = C:\WINDOWS\system32\CCM\Inventory\Temp\302aac72-7191-41b1-9b92-40b6b08b31c6.xml                   InventoryAgent                4/23/2010 10:04:47 AM                        2176 (0x0880)

Inventory: Starting reporting task.   InventoryAgent                4/23/2010 10:04:47 AM                       2176 (0x0880)

Reporting: 11 report entries created.                      InventoryAgent                4/23/2010 10:04:47 AM                       2176 (0x0880)

Inventory: Reporting Task completed in 0.090 seconds            InventoryAgent                4/23/2010 10:04:47 AM                       2176 (0x0880)

Inventory: Successfully sent report. Destination:mp:MP_DdrEndpoint, ID: {209E69B5-519E-414F-AB47-703B1F1DC1AE}, Timeout: 80640 minutes MsgMode: Signed, Not Encrypted                        InventoryAgent                4/23/2010 10:04:47 AM                       2176 (0x0880)

Inventory: Cycle completed in 1.812 seconds       InventoryAgent                4/23/2010 10:04:47 AM                       2176 (0x0880)

Inventory: Action completed.              InventoryAgent                4/23/2010 10:04:47 AM                       2176 (0x0880)

Server Side

After that the processing takes place on the MP. The xml file is translated into a DDR:

MP_Ddr.log:

The Management Point File Dispatch Manager copies the files from the MP folder structure to the site server folder structure.

And after this on the site server the Discovery Data Manager inserts the data into the SCCM database:

ddm.log:

DDM is configured to synchronize the network config data (NCF) files at startup and every 15 minutes thereafter.

The same log but with SQL logging enabled on the site server:

Ddm.log:

Processing file a4z7f6ye.DDRSMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

SQL>>>select d1.DiscArchKey,d1.DiscArchName,d1.BaseTableName,d1.Flags,d2.PropertyName,d2.ColumnName,d2.ValueType,d2.MaxWidth,d2.Flags,d2.ArrayTableName FROM DiscoveryArchitectures AS d1 LEFT JOIN DiscPropertyDefs AS d2 ON d1.DiscArchKey = d2.DiscArchKey where d1.DiscArchName = “System” order by d1.DiscArchKeySMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

SQL>>>>> Done.SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

SQL>>>select ItemKey from System_DISC where SMS_Unique_Identifier0 = “GUID:07114A5F-BE31-49B6-9FFC-5EFA2D897974″SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

SQL>>>>> Done.SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

Processing #4…SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

SQL>>>select convert(varchar(255),IP_Addresses0) from System_IP_Address_ARR where ItemKey = 4SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

SQL>>>>> Done.SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

SQL>>>select convert(varchar(255),IP_Subnets0) from System_IP_Subnets_ARR where ItemKey = 4SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

SQL>>>>> Done.SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

SQL>>>select convert(varchar(255),IPX_Addresses0) from System_IPX_Addres_ARR where ItemKey = 4SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

SQL>>>>> Done.SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

SQL>>>select convert(varchar(255),IPX_Network_Numbers0) from System_IPX_Network_Numbers_ARR where ItemKey = 4SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

SQL>>>>> Done.SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

SQL>>>select convert(varchar(255),MAC_Addresses0) from System_MAC_Addres_ARR where ItemKey = 4SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

SQL>>>>> Done.SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

SQL>>>select convert(varchar(255),Resource_Names0) from System_Resource_N_ARR where ItemKey = 4SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

SQL>>>>> Done.SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

SQL>>>select convert(varchar(255),SMS_Assigned_Sites0) from System_SMS_Assign_ARR where ItemKey = 4SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

SQL>>>>> Done.SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

SQL>>>select convert(varchar(255),SMS_Installed_Sites0) from System_SMS_Instal_ARR where ItemKey = 4SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

SQL>>>>> Done.SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

SQL>>>select convert(varchar(255),System_Container_Name0) from System_System_Container_Name_A where ItemKey = 4SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

SQL>>>>> Done.SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

SQL>>>select convert(varchar(255),System_Group_Name0) from System_System_Group_Name_ARR where ItemKey = 4SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

SQL>>>>> Done.SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

SQL>>>select convert(varchar(255),System_OU_Name0) from System_System_OU_Name_ARR where ItemKey = 4SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

SQL>>>>> Done.SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

SQL>>>select convert(varchar(255),System_Roles0) from System_System_Rol_ARR where ItemKey = 4SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

SQL>>>>> Done.SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

SQL>>>select convert(varchar(255),Active0),convert(varchar(255),AD_Site_Name0),convert(varchar(255),Client0),convert(varchar(255),Client_Type0),convert(varchar(255),Client_Version0),convert(varchar(255),CPUType0),convert(char(10),Creation_Date0,101) +’ ‘+ convert(char(8),Creation_Date0,8),convert(varchar(255),Hardware_ID0),convert(varchar(255),User_Domain0),convert(varchar(255),User_Name0),convert(varchar(255),Name0),convert(varchar(255),Netbios_Name0),convert(varchar(255),Obsolete0),convert(varchar(255),Operating_System_Name_and0),convert(varchar(255),Previous_SMS_UUID0),convert(varchar(255),Resource_Domain_OR_Workgr0),convert(varchar(255),SMS_Unique_Identifier0),convert(char(10),SMS_UUID_Change_Date0,101) +’ ‘+ convert(char(8),SMS_UUID_Change_Date0,8),convert(varchar(255),Community_Name0) from System_DISC where ItemKey = 4SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

SQL>>>>> Done.SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

SQL>>>select AgentID,AgentTime,AgentSite from DiscItemAgents where ItemKey = 4 and DiscArchKey = 5SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

SQL>>>>> Done.SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

SQL>>>set ansi_padding off; set ANSI_NULLS OFF; set quoted_identifier off; set DATEFORMAT mdy; select convert(int,@@spid)SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

SQL>>>>> Done.SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

SQL>>>select AgentID,AgentName,IsResyncable from AgentsSMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

SQL>>>>> Done.SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

SQL>>>set ansi_padding off; set ANSI_NULLS OFF; set quoted_identifier off; set DATEFORMAT mdy; select convert(int,@@spid)SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

SQL>>>>> Done.SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

SQL>>>exec sp_GetPublicKeySMSUID “GUID:07114A5F-BE31-49B6-9FFC-5EFA2D897974″SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

SQL>>>>> Done.SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

CDiscoverySource::VerifyClientPublicKeys – Public key does not exist for client GUID:07114A5F-BE31-49B6-9FFC-5EFA2D897974.SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

==>Name = SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

Info: The DDR contains 22 properties, but none has new valuesSMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

insert agent information: DiscItemAgents : execute sql IF EXISTS (select ItemKey from DiscItemAgents where ItemKey = 4 and DiscArchKey = 5 and AgentID = 8 and AgentSite = “XYZ”) update DiscItemAgents set AgentTime = “03/13/2010 15:21:39” where ItemKey = 4 and DiscArchKey = 5 and AgentID = 8 and AgentSite = “XYZ”~ ELSE insert into DiscItemAgents (AgentTime, ItemKey, DiscArchKey, AgentID, AgentSite) values (“03/13/2010 15:21:39”, 4, 5, 8, “XYZ”)SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

SQL>>>IF EXISTS (select ItemKey from DiscItemAgents where ItemKey = 4 and DiscArchKey = 5 and AgentID = 8 and AgentSite = “XYZ”) update DiscItemAgents set AgentTime = “03/13/2010 15:21:39” where ItemKey = 4 and DiscArchKey = 5 and AgentID = 8 and AgentSite = “XYZ”~ ELSE insert into DiscItemAgents (AgentTime, ItemKey, DiscArchKey, AgentID, AgentSite) values (“03/13/2010 15:21:39”, 4, 5, 8, “XYZ”)SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

SQL>>>>> Done.SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

Database operations finished.SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

CDiscoverDataManager::FilterDDR – Will not create CCR. The Remote Client is already installed on this resource.SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

CDiscoverDataManager::ProcessDDRs_PS – finished processing file C:\SMS\inboxes\auth\ddm.box\a4z7f6ye.DDR.SMS_DISCOVERY_DATA_MANAGER3/13/2010 3:24:06 PM316 (0x013C)

On the client reporting part had explained more on the troubleshooting part in case of any failures. Also these logs will give information on what had happened and why the discovery is not coming.

The main issues which are seen in the hardware inventory are

  • Client are not downloading the polices (Can check on the client status and can use the client reporting troubleshooting)
  • There is communication issue between the agent and the server (Use client reporting troubleshooting)
  • There are agent with the same GUID (Check how to deal with client multiple GUID issue. More details in the client reporting troubleshooting section)
  • The DDM component has issues. (Can try a site reset)

Below are some of the useful links that can be useful in Inventory troubleshooting:-

http://technet.microsoft.com/en-us/library/bb632938.aspx :Discovery in Configuration Manager.

http://technet.microsoft.com/en-us/library/bb932200.aspx :Troubleshooting Discovery Issues.

http://technet.microsoft.com/en-us/library/bb735871.aspx :Discovery Troubleshooting Flowcharts.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s