Solucionar problemas do CMPivot

O CMPivot é uma ferramenta que fornece acesso a um estado em tempo real dos dispositivos em seu ambiente. O CMPivot executa uma consulta em todos os dispositivos conectados atualmente na coleção de destino e retorna os resultados.

Ocasionalmente, talvez seja necessário solucionar problemas de CMPivot. Por exemplo, se uma mensagem de estado de um cliente para CMPivot for corrompida, o servidor do site não poderá processar a mensagem. Este artigo ajuda você a entender o fluxo de informações para CMPivot.

Solucionar problemas do CMPivot na versão 1902 e posterior

Em Configuration Manager versões 1902 e posteriores, você pode executar o CMPivot no CAS (site de administração central) em uma hierarquia. O site primário ainda manipula a comunicação com o cliente.

Quando você executa o CMPivot do CAS, ele usa o canal de assinatura de mensagens de alta velocidade para se comunicar com o site primário. O CMPivot não usa a replicação de SQL Server padrão entre sites. Se sua instância de SQL Server ou seu provedor de SMS for remota ou se você usar um grupo de disponibilidade SQL Server Always On, você terá um "cenário de salto duplo" para CMPivot. Para obter informações sobre como definir a delegação restrita para um "cenário de salto duplo", confira CMPivot a partir da versão 1902.

Importante

Ao solucionar problemas do CMPivot, habilite o log verboso em seus MPs (pontos de gerenciamento) e no SMS_MESSAGE_PROCESSING_ENGINE do servidor do site para obter mais informações. Além disso, se a saída do cliente for maior que 80 KB, habilite o log verboso no MP e no componente SMS_STATE_SYSTEM do servidor do site. Para obter informações sobre como habilitar o log verboso, consulte Opções de log do servidor do site.

Obter informações do servidor do site

Por padrão, os arquivos de log do servidor de site estão localizados em C:\Program Files\Microsoft Configuration Manager\logs. Esse local poderá ser diferente se você especificar um diretório de instalação não padrão ou itens descarregados como o Provedor de SMS para outro servidor. Se você executar o CMPivot no CAS, os logs estarão no servidor de site primário.

smsprov.log Procure estas linhas:

  • Configuration Manager versão 1906:

    Auditing: User <username> initiated client operation 145 to collection <CollectionId>.
    
  • Configuration Manager versão 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 é o Script-Guid para CMPivot. Você também pode ver esse GUID em mensagens de status de auditoria CMPivot.

Em seguida, encontre a ID na janela CMPivot. Essa ID é o ClientOperationID.

Janela CMPivot com ClientOperationID realçada, versão 1902

Localize a TaskID na tabela ClientAction. O TaskID corresponde à UniqueID tabela ClientAction.

select * from ClientAction where ClientOperationId=<id>

Em BgbServer.log, procure o TaskID que você reuniu do SQL Server e observe o PushID. O TaskID é rotulado TaskGUID. Por exemplo:

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

Logs de clientes

Depois de ter as informações do servidor do site, verifique os logs do cliente. Por padrão, os logs de cliente estão localizados em C:\Windows\CCM\Logs.

Em CcmNotificationAgent.log, procure entradas de log que se parecem com as seguintes linhas:

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.

Verifique Scripts.log se há .TaskID No exemplo a seguir, você verá 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}

Observação

Se você não vir "(rápido)" no Scripts.log, os dados provavelmente serão superiores a 80 KB. Nesse caso, as informações são enviadas ao servidor do site como uma mensagem de estado. Use o do cliente StateMessage.log e o do servidor do Statesys.logsite.

Examinar mensagens no servidor do site

Quando o log verboso estiver habilitado no ponto de gerenciamento, você poderá ver como as mensagens de cliente de entrada são tratadas. Em MP_RelayMsgMgr.log, procure o TaskID.

MP_RelayMsgMgr.log No exemplo, você pode ver a ID (GUID:83F67728-2E6D-4E4F-8075-ED035C31B783) do cliente e o Task ID {9A4E59D2-2F5B-4067-A9FA-B99602A3A4A0}. Uma ID de mensagem é atribuída à resposta do cliente antes de ser enviada ao mecanismo de processamento de mensagens:

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

Quando o log verboso é habilitado no SMS_MESSAGE_PROCESSING_ENGINE.log, os resultados do cliente são processados. Use a ID da mensagem encontrada no MP_RelayMsgMgr.log. As entradas de log de processamento são semelhantes ao exemplo a seguir:

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]

Dica

Se você receber uma exceção durante o processamento, poderá revisá-la executando a consulta SQL a seguir e examinando a coluna Exceção. Depois que a mensagem for processada, ela não estará mais na MPE_RequestMessages_Instant tabela.

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

Em BgbServer.log, procure o PushID para ver o número de clientes que relataram ou falharam.

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)

Verifique a exibição de monitoramento do CMPivot de SQL Server usando o TaskID.

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

Consultas SQL cmpivot para solução de problemas na versão 1902

Solucionar problemas do CMPivot em 1810 e anterior

Em Configuration Manager versões 1810 e anteriores, o servidor do site manipula a comunicação com o cliente.

Obter informações do servidor do site

Por padrão, os arquivos de log do servidor de site estão localizados em C:\Program Files\Microsoft Configuration Manager\logs. Esse local poderá ser diferente se você especificar um diretório de instalação não padrão ou itens descarregados como o Provedor de SMS para outro servidor.

smsprov.log Procure esta linha:

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

Encontre a ID na janela CMPivot. Essa ID é o ClientOperationID.

Janela CMPivot com ClientOperationID realçada

Localize a TaskID na tabela ClientAction. O TaskID corresponde à UniqueID tabela ClientAction.

select * from ClientAction where ClientOperationId=<id>

Em BgbServer.log, procure o TaskID que você reuniu do SQL. É rotulado TaskGUIDcomo . Por exemplo:

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

Logs de clientes

Depois de ter as informações do servidor do site, verifique os logs do cliente. Por padrão, os logs de cliente estão localizados em C:\Windows\CCM\Logs.

Em CcmNotificationAgent.log, procure logs semelhantes à seguinte entrada:

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

Scripts.log Procure o TaskID. No exemplo a seguir, vemos 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}

Olhe em StateMessage.log. No exemplo a seguir, você verá que TaskID está perto da parte inferior da mensagem ao <Param>lado de :

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)

Examinar mensagens no servidor do site

Abra statesys.log para ver se a mensagem é recebida e processada. No exemplo a seguir, você verá TaskID perto da parte inferior da mensagem ao <Param>lado de . Habilite o log verboso no componente SMS_STATE_SYSTEM para ver essas entradas de log.

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>~~'

Se a mensagem não tiver sido processada, verifique a caixa de entrada de mensagem de estado. O local padrão da caixa de entrada é C:\Program Files\Microsoft Configuration Manager\inboxes\auth\statesys.box\. Procure os arquivos nesses locais:

  • Entrada
  • Corrompido
  • Processo

Verifique a exibição de monitoramento do CMPivot por meio da seguinte consulta SQL usando o TaskID:

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

Observação

Para clientes que estão usando a versão 1810 ou superior, as mensagens de estado não são usadas a menos que a saída seja maior que 80 KB. Ao solucionar problemas do CMPivot nesses casos, você pode obter mais informações ao habilitar o log verboso em seus MPs e no SMS_MESSAGE_PROCESSING_ENGINE do servidor do site. Para obter informações sobre como habilitar o log verboso, consulte Opções de log do servidor do site.

Para solucionar problemas, consulte os seguintes logs:

  • MP_Relay.log
  • SMS_MESSAGE_PROCESSING_ENGINE.log

Próximas etapas