Solucionar problemas de CMPivot

CMPivot é uma ferramenta que fornece acesso a um estado em tempo real dos dispositivos em seu ambiente. CMPivot executa uma consulta em todos os dispositivos conectados no momento 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 de site não poderá processar a mensagem. Este artigo ajuda você a entender o fluxo de informações para CMPivot.

Solucionar problemas de CMPivot na versão 1902 e posterior

No Configuration Manager versões 1902 e posteriores, você pode executar CMPivot a partir do site da administração central (CAS) em uma hierarquia. O site principal ainda lida com a comunicação com o cliente.

Quando você executar CMPivot do CAS, ele usa o canal de assinatura de mensagem de alta velocidade para se comunicar com o site principal. O CMPivot não usa a replicação SQL Server padrão entre sites. Se sua instância SQL Server ou seu provedor de SMS for remoto ou se você usar um grupo de disponibilidade always on SQL Server, 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", consulte CMPivot a partir da versão 1902.

Importante

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

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 pode ser diferente se você tiver especificado um diretório de instalação não padrão ou itens descarregados, como o Provedor de SMS para outro servidor. Se você executar CMPivot a partir do CAS, os logs serão no servidor de site principal.

Procure smsprov.log 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 é ClientOperationID o .

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

Encontre o TaskID da tabela ClientAction. O TaskID corresponde à tabela UniqueID ClientAction.

select * from ClientAction where ClientOperationId=<id>

Em BgbServer.log , procure o que você TaskID reuniu do SQL Server e anote 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 do cliente estão localizados em C:\Windows\CCM\Logs .

Em CcmNotificationAgent.log , procure entradas de log que se pareçam 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 TaskID o . 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 , os dados provavelmente serão mais de Scripts.log 80 KB. Nesse caso, as informações são enviadas para o servidor do site como uma mensagem de estado. Use client's StateMessage.log and the site server's Statesys.log .

Revisar mensagens no servidor do site

Quando o log detalhado é habilitado no ponto de gerenciamento, você pode ver como as mensagens de cliente de entrada são manipuladas. Em MP_RelayMsgMgr.log , procure o TaskID .

No MP_RelayMsgMgr.log exemplo, você pode ver a ID do cliente (GUID:83F67728-2E6D-4E4F-8075-ED035C31B783) e Task ID {9A4E59D2-2F5B-4067-A9FA-B99602A3A4A0} o . Uma ID de mensagem é atribuída à resposta do cliente antes de ser enviada para o 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 detalhado é habilitado em , os resultados do cliente são SMS_MESSAGE_PROCESSING_ENGINE.log 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 seguinte SQL consulta e olhando para 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 , procure o número de clientes que BgbServer.log PushID 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 SQL Server usando TaskID o .

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

O CMPivot SQL consultas para solução de problemas na versão 1902

Solucionar problemas de CMPivot no 1810 e anterior

No Configuration Manager versões 1810 e anteriores, o servidor de site lida com 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 pode ser diferente se você tiver especificado um diretório de instalação não padrão ou itens descarregados, como o Provedor de SMS para outro servidor.

Procure smsprov.log esta linha:

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

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

Janela CMPivot com ClientOperationID realçada

Encontre o TaskID da tabela ClientAction. O TaskID corresponde à tabela UniqueID ClientAction.

select * from ClientAction where ClientOperationId=<id>

Em BgbServer.log , procure o que você TaskID reuniu do SQL. É rotulado TaskGUID . 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 do 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)

Procure Scripts.log 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}

Procure StateMessage.log em . No exemplo a seguir, você vê que TaskID está próximo à parte inferior da mensagem ao lado de <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)

Revisar mensagens no servidor do site

Abra statesys.log para ver se a mensagem foi recebida e processada. No exemplo a seguir, você TaskID pode ver perto da parte inferior da mensagem ao lado de <Param> . Habilita o log detalhado 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 da mensagem de estado. O local de caixa de entrada padrão é C:\Program Files\Microsoft Configuration Manager\inboxes\auth\statesys.box\ . Procure os arquivos nesses locais:

  • Incoming
  • Corrompido
  • Processo

Verifique o exibição de monitoramento do CMPivot por meio da seguinte SQL consulta 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, a mensagem de estado não é usada, a menos que a saída seja maior que 80 KB. Ao solucionar problemas de CMPivot nesses casos, você pode obter mais informações quando habilitar o registro em log detalhado em seus MPs e no servidor de sites SMS_MESSAGE_PROCESSING_ENGINE. Para obter informações sobre como habilitar o log detalhado, consulte Opções de log do servidor de site.

Para solucionar problemas, consulte os seguintes logs:

  • MP_Relay.log
  • SMS_MESSAGE_PROCESSING_ENGINE.log

Próximas etapas