Устранение неполадок CMPivot

CMPivot — это средство, которое предоставляет доступ к состоянию устройств в вашей среде в режиме реального времени. CMPivot выполняет запрос ко всем подключенным в настоящее время устройствам в целевой коллекции и возвращает результаты.

Иногда может потребоваться устранить неполадки с CMPivot. Например, если сообщение о состоянии от клиента к CMPivot повреждено, сервер сайта не сможет обработать сообщение. Эта статья поможет вам понять поток информации для CMPivot.

Устранение неполадок CMPivot в версии 1902 и более поздних

В Configuration Manager версиях 1902 и более поздних cmPivot можно запускать с сайта центра администрирования (CAS) в иерархии. Основной сайт по-прежнему обрабатывает обмен данными с клиентом.

При запуске CMPivot из CAS используется канал подписки на высокоскоростные сообщения для связи с основным сайтом. CMPivot не использует стандартную репликацию SQL Server между сайтами. Если ваш экземпляр SQL Server или поставщик SMS является удаленным или если вы используете группу доступности SQL Server Always On, у вас будет сценарий двойного прыжка для CMPivot. Сведения о том, как определить ограниченное делегирование для сценария двойного прыжка, см. в разделе CMPivot, начиная с версии 1902.

Важно!

При устранении неполадок CMPivot включите подробное ведение журнала в точках управления (MP) и на SMS_MESSAGE_PROCESSING_ENGINE сервера сайта, чтобы получить дополнительные сведения. Кроме того, если объем выходных данных клиента превышает 80 КБ, включите подробное ведение журнала в пакете управления и компоненте SMS_STATE_SYSTEM сервера сайта. Сведения о том, как включить подробное ведение журнала, см. в разделе Параметры ведения журнала сервера сайта.

Получение сведений с сервера сайта

По умолчанию файлы журнала сервера сайта находятся в C:\Program Files\Microsoft Configuration Manager\logs. Это расположение может отличаться, если вы указали каталог установки, отличный от используемого по умолчанию, или выгрузили такие элементы, как поставщик SMS, на другой сервер. При запуске CMPivot из центра доступности журналы находятся на сервере первичного сайта.

smsprov.log Ищите следующие строки:

  • Configuration Manager версии 1906:

    Auditing: User <username> initiated client operation 145 to collection <CollectionId>.
    
  • Configuration Manager версии 1902:

    Type parameter is 135.
    Auditing: User <username> ran script 7DC6B6F1-E7F6-43C1-96E0-E1D16BC25C14 with hash dc6c2ad05f1bfda88d880c54121c8b5cea6a394282425a88dd4d8714547dc4a2 on collection <CollectionId>.
    

7DC6B6F1-E7F6-43C1-96E0-E1D16BC25C14 — это Script-Guid для CMPivot. Этот GUID также можно увидеть в сообщениях о состоянии аудита CMPivot.

Затем найдите идентификатор в окне CMPivot. Этим идентификатором ClientOperationIDявляется .

Окно CMPivot с выделенным ClientOperationID, версия 1902

Найдите из TaskID таблицы ClientAction. Соответствует TaskIDUniqueID в таблице ClientAction.

select * from ClientAction where ClientOperationId=<id>

В BgbServer.logнайдите данные, собранные TaskID из SQL Server, и обратите внимание на PushID. Имеет TaskID метку TaskGUID. Например:

Starting to send push task (PushID: 9 TaskID: 12 TaskGUID: 9A4E59D2-2F5B-4067-A9FA-B99602A3A4A0 TaskType: 15 TaskParam: PFNjcmlwdENvbnRlbnQgU2NyaXB0R3VpZD0nN0RDNkI2RjEtRTdGNi00M0MxL (truncated log entry)
Finished sending push task (PushID: 9 TaskID: 12) to 2 clients

Журналы клиентов

После получения сведений с сервера сайта проверьте журналы клиента. По умолчанию журналы клиентов находятся в C:\Windows\CCM\Logs.

В CcmNotificationAgent.logнайдите записи журнала, которые выглядят следующими строками:

Receive task from server with pushid=9, taskid=12, taskguid=9A4E59D2-2F5B-4067-A9FA-B99602A3A4A0, tasktype=15 and taskParam=PFNjcmlwdEhhc2ggU2NyaXB0SGF (truncated log entry)
Send Task response message <BgbResponseMessage TimeStamp="2019-09-13T17:29:09Z"><PushID>5</PushID><TaskID>4</TaskID><ReturnCode>1</ReturnCode></BgbResponseMessage> successfuly.

Проверьте Scripts.log наличие TaskID. В следующем примере вы увидите Task ID{9A4E59D2-2F5B-4067-A9FA-B99602A3A4A0}:

Sending script state message (fast): {9A4E59D2-2F5B-4067-A9FA-B99602A3A4A0}
Result are sent for ScriptGuid: 7DC6B6F1-E7F6-43C1-96E0-E1D16BC25C14 and TaskID: {9A4E59D2-2F5B-4067-A9FA-B99602A3A4A0}

Примечание.

Если вы не видите "(fast)" в Scripts.log, то данные, скорее всего, более 80 КБ. В этом случае информация отправляется на сервер сайта в виде сообщения о состоянии. Используйте клиентский StateMessage.log и сервер Statesys.logсайта .

Просмотр сообщений на сервере сайта

Если в точке управления включено подробное ведение журнала , можно увидеть, как обрабатываются входящие клиентские сообщения. В MP_RelayMsgMgr.logнайдите .TaskID

В этом MP_RelayMsgMgr.log примере можно увидеть идентификатор (GUID:83F67728-2E6D-4E4F-8075-ED035C31B783) клиента и Task ID {9A4E59D2-2F5B-4067-A9FA-B99602A3A4A0}. Идентификатор сообщения назначается ответу клиента перед отправкой в подсистему обработки сообщений:

MessageKey: GUID:83F67728-2E6D-4E4F-8075-ED035C31B783{9A4E59D2-2F5B-4067-A9FA-B99602A3A4A0}
Create message succeeded for message id 22f00adf-181e-4bad-b35e-d18912f39f89
Add message payload succeeded for message id 22f00adf-181e-4bad-b35e-d18912f39f89
Put message succeeded for message id 22f00adf-181e-4bad-b35e-d18912f39f89
CRelayMsgMgrHandler::HandleMessage(): ExecuteTask() succeeded

Если подробное ведение журнала включено SMS_MESSAGE_PROCESSING_ENGINE.logв , результаты клиента обрабатываются. Используйте идентификатор сообщения, найденный из MP_RelayMsgMgr.log. Записи журнала обработки похожи на следующий пример:

Processing 2 messages with type Instant and IDs 22f00adf-181e-4bad-b35e-d18912f39f89[19], 434d80ae-09d4-4d84-aebf-28a4a29a9852[20]...
Processed 2 messages with type Instant. Failed to process 0 messages. All message IDs 22f00adf-181e-4bad-b35e-d18912f39f89[19], 434d80ae-09d4-4d84-aebf-28a4a29a9852[20]

Совет

Если во время обработки показано исключение, его можно просмотреть, выполнив следующий SQL-запрос и просмотрев столбец Исключение. После обработки сообщение больше не будет находиться в MPE_RequestMessages_Instant таблице.

select * from MPE_RequestMessages_Instant where MessageID=<ID from SMS_MESSAGE_PROCESSING_ENGINE.log>

В BgbServer.logнайдите , PushID чтобы увидеть количество клиентов, которые сообщили или завершили сбой.

Generated BGB task status report c:\ConfigMgr\inboxes\bgb.box\Bgb5c1db.BTS at 09/16/2019 16:46:39. (PushID: 9 ReportedClients: 2 FailedClients: 0)

Проверьте представление мониторинга CMPivot из SQL Server с помощью TaskID.

select * from vSMS_CMPivotStatus where TaskID='{9A4E59D2-2F5B-4067-A9FA-B99602A3A4A0}'

SQL-запросы CMPivot для устранения неполадок в версии 1902

Устранение неполадок CMPivot в версии 1810 и более ранних версиях

В Configuration Manager версиях 1810 и более ранних сервер сайта обрабатывает обмен данными с клиентом.

Получение сведений с сервера сайта

По умолчанию файлы журнала сервера сайта находятся в C:\Program Files\Microsoft Configuration Manager\logs. Это расположение может отличаться, если вы указали каталог установки, отличный от используемого по умолчанию, или выгрузили такие элементы, как поставщик SMS, на другой сервер.

smsprov.log Найдите следующую строку:

Auditing: User <username> initiated client operation 135 to collection <CollectionId>.

Найдите идентификатор в окне CMPivot. Этим идентификатором ClientOperationIDявляется .

Окно CMPivot с выделенным ClientOperationID

Найдите из TaskID таблицы ClientAction. Соответствует TaskIDUniqueID в таблице ClientAction.

select * from ClientAction where ClientOperationId=<id>

В BgbServer.logнайдите данные, собранные TaskID из SQL. Он помечен как TaskGUID. Например:

Starting to send push task (PushID: 260 TaskID: 258 TaskGUID: F8C7C37F-B42B-4C0A-B050-2BB44DF1098A TaskType: 15
TaskParam: PFNjcmlwdEhhc2ggU2NyaXB0SGF...truncated...to 5 clients with throttling (strategy: 1 param: 42)
Finished sending push task (PushID: 260 TaskID: 258) to 5 clients

Журналы клиентов

После получения сведений с сервера сайта проверьте журналы клиента. По умолчанию журналы клиентов находятся в C:\Windows\CCM\Logs.

В CcmNotificationAgent.logнайдите журналы, похожие на следующую запись:

Error! Bookmark not defined.+PFNjcmlwdEhhc2ggU2NyaXB0SGFzaEFsZz0nU0hBMjU2Jz42YzZmNDY0OGYzZjU3M2MyNTQyNWZiNT
g2ZDVjYTIwNzRjNmViZmQ1NTg5MDZlMWI5NDRmYTEzNmFiMDE0ZGNjPC9TY3JpcHRIYXNoPjxTY3Jp (truncated log entry)

Найдите .Scripts.logTaskID В следующем примере мы видим Task ID {F8C7C37F-B42B-4C0A-B050-2BB44DF1098A}:

Sending script state message: 7DC6B6F1-E7F6-43C1-96E0-E1D16BC25C14
State message: Task Id {F8C7C37F-B42B-4C0A-B050-2BB44DF1098A}

Посмотрите в StateMessage.log. В следующем примере вы увидите, что TaskID находится в нижней части сообщения рядом с <Param>:

StateMessage body: <?xml version="1.0" encoding="UTF-16"?>
<Report><ReportHeader><Identification><Machine><ClientInstalled>1</ClientInstalled><ClientType>1
</ClientType><ClientID>GUID:DBAC52C9-57E6-47D7-A8D6-E0A5A64B57E6</ClientID><ClientVersion>5.00.8670.1000</ClientVersion>
<NetBIOSName>R613924</NetBIOSName><CodePage>437</CodePage>
<SystemDefaultLCID>1033</SystemDefaultLCID><Priority>0</Priority></Machine></Identification>
<ReportDetails><ReportContent>State Message Data</ReportContent><ReportType>Full</ReportType>
<Date>20180703184447.673000+000</Date><Version>1.0</Version><Format>1.0</Format>
</ReportDetails></ReportHeader><ReportBody><StateMessage MessageTime="20180703184447.517000+000"><Topic ID="7DC6B6F1-E7F6-43C1-96E0-E1D16BC25C14" Type="9003" IDType="0" User="" UserSID=""/><State ID="1" Criticality="0"/>
<StateDetails Type="1"><![CDATA["PAA/AHgAbQBsACAAdgBlAHIAcwBpAG8AbgA9ACIAMQAuADAAIgAgAGUAbgBjAG8AZABpAG4AZwA9ACIAdQB0AGYALQAxADYAIgA/AD4APAByAGUAcwB1AGwAdAAgAFIAZQBzAHUAbAB0AEMAbwBkAGUAPQAiADAAIgA+ADwAZQAgAE4AYQBtAGUAPQAiAEkAbgB0AGUAbAAoAFIAKQAgAFgAZQBvAG4AKABSACkAIABDAFAAVQAgAEUANQAtADIANgA3ADMAIAB2ADQAIABAACAAMgAuADMAMABHAEgAegAiACAATQBhAG4AdQBmAGEAYwB0AHUAcgBlAHIAPQAiAEEAbQBlAHIAaQBjAGEAbgAgAE0AZQBnAGEAdAByAGUAbgBkAHMAIABJAG4AYwAuACIAIABWAGUAcgBzAGkAbwBuAD0AIgBWAFIAVABVAEEATAAgAC0AIAA2ADAAMAAxADcAMAAyACIAIABSAGUAbABlAGEAcwBlAEQAYQB0AGUAPQAiADIAMAAxADcALQAwADYALQAwADIAIAAwADAAOgAwADAAOgAwADAAIgAgAFMAZQByAGkAYQBsAE4AdQBtAGIAZQByAD0AIgAwADAAMAAwAC0AMAAwADEAOAAtADMANgA4ADIALQA0ADcAMAA4AC0ANwA2ADQAMAAtADcANgAwADAALQAzADMAIgAgAFMATQBCAEkATwBTAEIASQBPAFMAVgBlAHIAcwBpAG8AbgA9ACIAMAA5ADAAMAAwADcAIAAiACAALwA+ADwALwByAGUAcwB1AGwAdAA+AA=="~~]]></StateDetails><UserParameters Flags="0" Count="2">
<Param>{F8C7C37F-B42B-4C0A-B050-2BB44DF1098A}</Param><Param>0</Param></UserParameters></StateMessage></ReportBody></Report>

Successfully forwarded State Messages to the MP StateMessage 7/3/2018 11:44:47 AM 5036 (0x13AC)

Просмотр сообщений на сервере сайта

Откройте окно statesys.log , чтобы узнать, получено ли и обработано ли сообщение. В следующем примере вы видите TaskID в нижней части сообщения рядом с <Param>. Включите подробное ведение журнала в компоненте SMS_STATE_SYSTEM, чтобы просмотреть эти записи журнала.

CMessageProcessor - the cmdline to DB exec dbo.spProcessStateReport N'?<?xml version="1.0" encoding="UTF-
16"?>~~<Report><ReportHeader><Identification><Machine><ClientInstalled>1</ClientInstalled><ClientType>1
</ClientType><ClientID>GUID:DBAC52C9-57E6-47D7-A8D6-E0A5A64B57E6</ClientID><ClientVersion>5.00.8670.1000</ClientVersion>
<NetBIOSName>R613924</NetBIOSName><CodePage>437</CodePage>
<SystemDefaultLCID>1033</SystemDefaultLCID><Priority>0</Priority></Machine></Identification>
<ReportDetails><ReportContent>State Message Data</ReportContent><ReportType>Full</ReportType>
<Date>20180703184447.673000+000</Date><Version>1.0</Version><Format>1.0</Format>
</ReportDetails></ReportHeader><ReportBody><StateMessage MessageTime="20180703184447.517000+000"><Topic ID="7DC6B6F1-E7F6-43C1-96E0-E1D16BC25C14" Type="9003" IDType="0" User="" UserSID=""/><State ID="1" Criticality="0"/>
<StateDetails Type="1"><![CDATA["PAA/AHgAbQBsACAAdgBlAHIAcwBpAG8AbgA9ACIAMQAuADAAIgAgAGUAbgBjAG8AZABpAG4AZwA9ACIAdQB0AGYALQAxADYAIgA/AD4APAByAGUAcwB1AGwAdAAgAFIAZQBzAHUAbAB0AEMAbwBkAGUAPQAiADAAIgA+ADwAZQAgAE4AYQBtAGUAPQAiAEkAbgB0AGUAbAAoAFIAKQAgAFgAZQBvAG4AKABSACkAIABDAFAAVQAgAEUANQAtADIANgA3ADMAIAB2ADQAIABAACAAMgAuADMAMABHAEgAegAiACAATQBhAG4AdQBmAGEAYwB0AHUAcgBlAHIAPQAiAEEAbQBlAHIAaQBjAGEAbgAgAE0AZQBnAGEAdAByAGUAbgBkAHMAIABJAG4AYwAuACIAIABWAGUAcgBzAGkAbwBuAD0AIgBWAFIAVABVAEEATAAgAC0AIAA2ADAAMAAxADcAMAAyACIAIABSAGUAbABlAGEAcwBlAEQAYQB0AGUAPQAiADIAMAAxADcALQAwADYALQAwADIAIAAwADAAOgAwADAAOgAwADAAIgAgAFMAZQByAGkAYQBsAE4AdQBtAGIAZQByAD0AIgAwADAAMAAwAC0AMAAwADEAOAAtADMANgA4ADIALQA0ADcAMAA4AC0ANwA2ADQAMAAtADcANgAwADAALQAzADMAIgAgAFMATQBCAEkATwBTAEIASQBPAFMAVgBlAHIAcwBpAG8AbgA9ACIAMAA5ADAAMAAwADcAIAAiACAALwA+ADwALwByAGUAcwB1AGwAdAA+AA=="~~]]></StateDetails><UserParameters Flags="0" Count="2">
<Param>{F8C7C37F-B42B-4C0A-B050-2BB44DF1098A}</Param><Param>0</Param></UserParameters></StateMessage></ReportBody></Report>~~'

Если сообщение не было обработано, проверьте папку "Входящие" сообщения о состоянии. Расположение папки "Входящие" по умолчанию — C:\Program Files\Microsoft Configuration Manager\inboxes\auth\statesys.box\. Найдите файлы в следующих расположениях:

  • Входящих
  • Повреждено
  • Процесс

Проверьте представление мониторинга cmPivot с помощью следующего SQL-запроса с помощью TaskID:

select * from vSMS_CMPivotStatus where TaskID='{F8C7C37F-B42B-4C0A-B050-2BB44DF1098A}'

Примечание.

Для клиентов, использующих версию 1810 или более позднюю, обмен сообщениями о состоянии не используется, если выходной объем не превышает 80 КБ. При устранении неполадок CMPivot в таких случаях вы можете получить дополнительные сведения, включив подробное ведение журнала на своих MP и SMS_MESSAGE_PROCESSING_ENGINE сервера сайта. Сведения о том, как включить подробное ведение журнала, см. в разделе Параметры ведения журнала сервера сайта.

Сведения об устранении неполадок см. в следующих журналах:

  • MP_Relay.log
  • SMS_MESSAGE_PROCESSING_ENGINE.log

Дальнейшие действия