Partilhar via


Configurar o tempo de execução de integração auto-hospedado (SHIR) para coleta de análise de log

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Gorjeta

Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange tudo, desde a movimentação de dados até ciência de dados, análises em tempo real, business intelligence e relatórios. Saiba como iniciar uma nova avaliação gratuitamente!

Pré-requisitos

Um espaço de trabalho disponível do Log Analytics é necessário para essa abordagem. Recomendamos que você anote o ID do espaço de trabalho e a chave de autenticação do seu espaço de trabalho do Log Analytics, pois pode ser necessário para determinados cenários. Essa solução aumentará os dados que serão enviados para o espaço de trabalho do Log Analytics e terá um pequeno impacto no custo geral. Continue lendo para obter detalhes sobre como manter a quantidade de dados a um mínimo.

Objetivos e cenários

Centralize os eventos e os dados do contador de desempenho em seu espaço de trabalho do Log Analytics, primeiro a máquina virtual que hospeda o SHIR deve ser adequadamente instrumentada. Escolha entre dois cenários principais abaixo.

Instrumentação de máquinas virtuais locais

O artigo Instalar o agente do Log Analytics em computadores Windows descreve como instalar o cliente em uma máquina virtual normalmente hospedada localmente. Pode ser um servidor físico ou uma máquina virtual hospedada em um hipervisor gerenciado pelo cliente. Conforme mencionado na seção de pré-requisitos, ao instalar o agente do Log Analytics, você terá que fornecer o ID do espaço de trabalho do Log Analytics e a Chave do espaço de trabalho para finalizar a conexão.

Instrumentar máquinas virtuais do Azure

A abordagem recomendada para instrumentar um SHIR baseado em máquina virtual do Azure é usar insights de máquina virtual, conforme descrito no artigo Visão geral de insights de VM. Há várias maneiras de configurar o agente do Log Analytics quando o SHIR é hospedado em uma máquina virtual do Azure. Todas as opções são descritas no artigo Visão geral do agente do Log Analytics.

Configurar o log de eventos e a captura do contador de desempenho

Esta etapa destacará como configurar os logs do visualizador de eventos e os contadores de desempenho a serem enviados para o Log Analytics. As etapas descritas abaixo são comuns, independentemente de como o agente foi implantado.

Selecionar diários do visualizador de eventos

Primeiro, você deve coletar diários do visualizador de eventos relevantes para o SHIR, conforme descrito no artigo Coletar fontes de dados do log de eventos do Windows com o agente do Log Analytics no Azure Monitor.

É importante notar que, ao escolher os logs de eventos usando a interface, é normal que você não veja todos os diários que podem existir em uma máquina. Assim, os dois periódicos que precisamos para o monitoramento do SHIR não aparecerão nesta lista. Se você digitar o nome do diário exatamente como ele aparece na máquina virtual local, ele será capturado e enviado para seu espaço de trabalho de análise de log.

O nome do diário de eventos que devemos configurar é:

  • Conectores - Tempo de execução da integração
  • Runtime de Integração

Captura de tela da seleção dos logs relevantes do SHIR com erros e avisos verificados.

Importante

Deixar o nível de informações verificado aumentará significativamente o volume de dados se você tiver muitos hosts SHIR implantados e um número maior de verificações. Sugerimos vivamente que mantenha apenas Erro e Aviso.

Selecionar Contadores de desempenho

No mesmo painel de configuração, você pode clicar em Contadores de Desempenho do Windows para selecionar contadores de desempenho individuais a serem enviados para análises de log.

Importante

Tenha em mente que os contadores de desempenho são, por natureza, um fluxo de dados contínuo. Portanto, é crucial considerar o impacto da coleta de dados no custo total da implantação do Azure Monitor/Log Analytics. A menos que um orçamento de ingestão de dados permitido tenha sido concedido e uma ingestão constante de dados tenha sido permitida e orçada, a coleta de contadores de desempenho só deve ser configurada por um período definido para estabelecer uma linha de base de desempenho.

Na interface, ao configurá-la pela primeira vez, um conjunto de contadores sugerido será recomendado. Selecione aqueles que se aplicam ao tipo de análise de desempenho que você deseja executar. %CPU e memória disponível são contadores comumente monitorados, mas outros, como o consumo de largura de banda de rede, podem ser úteis em cenários em que o volume de dados é grande e a largura de banda ou o tempo de execução são limitados.

Captura de ecrã da interface de seleção do contador no portal do Azure.

Exibir dados do contador de Eventos e Desempenho no Log Analytics

Para saber como analisar dados de monitoramento no repositório de Logs/Log Analytics do Azure Monitor usando a linguagem de consulta Kusto (KQL), consulte Consultas Kusto.

As duas tabelas em que a telemetria é salva são chamadas de Perf e Evento, respectivamente. A consulta a seguir verifica a contagem de linhas para ver se temos dados fluindo. Isso confirma se a instrumentação descrita acima está funcionando.

Exemplos de consultas KQL

Verificar contagens de linhas

(
        Event 
        | extend TableName = "Event"
        | summarize count() by TableName
)     
| union
(     
        Perf
        | extend TableName = "Perf"
        | summarize count() by TableName
)

Eventos de consulta

Recuperar as primeiras 10 linhas de evento
Event
| take 10
Recuperar a contagem de eventos por gravidade da mensagem
Event
| summarize count() by EventLevelName
Renderizar um gráfico de pizza de contagem por gravidade da mensagem
Event
| summarize count() by EventLevelName
| render piechart 
Recuperar todos os erros com uma cadeia de texto específica

Aqui estamos à procura de todas as mensagens que têm a palavra desconectada neles.

Event
| where RenderedDescription has "disconnected"
Pesquisa de várias tabelas por uma palavra-chave sem conhecer o esquema

O comando de pesquisa é útil quando não se sabe em qual coluna a informação está contida. Essa consulta retorna todas as linhas das tabelas especificadas que têm pelo menos uma coluna que contém o termo de pesquisa. A palavra está desconectada neste exemplo.

search in (Perf, Event) "disconnected"
Recuperar todos os eventos de um diário de log específico

Neste exemplo, estamos restringindo a consulta ao diário de log chamado Connectors - Integration Runtime.

Event 
| where EventLog == "Connectors - Integration Runtime"
Usar intervalos de tempo para restringir os resultados da consulta

Esta consulta usa a mesma consulta acima, mas restringe os resultados aos que ocorreram há 2 dias ou mais recentemente.

Event 
| where EventLog      == "Connectors - Integration Runtime"
  and   TimeGenerated >= ago(2d)

Consultar dados do contador de desempenho

Recuperar as primeiras 10 leituras do contador de desempenho
Perf
| take 10
Recuperar um contador específico com restrições de tempo
Perf
| where     TimeGenerated >= ago(24h)
        and ObjectName    == "Network Adapter"
        and InstanceName  == "Mellanox ConnectX-4 Lx Virtual Ethernet Adapter"
        and CounterName   == "Bytes Received/sec"

Os contadores de desempenho são hierárquicos por natureza, portanto, esteja ciente de ter predicados suficientes em sua consulta para selecionar apenas o contador específico de que você precisa.

Recuperar percentil 95 para um determinado contador encadernado por fatias de 30 minutos das últimas 24 horas

Este exemplo são todos os contadores de um adaptador de rede específico.

Perf
| where     TimeGenerated >= ago(24h)
        and ObjectName    == "Network Adapter"
        and InstanceName  == "Mellanox ConnectX-4 Lx Virtual Ethernet Adapter"
| project TimeGenerated, Computer, ObjectName, InstanceName, CounterName, CounterValue
| summarize percentile(CounterValue, 95) by bin(TimeGenerated, 30m), Computer, ObjectName, InstanceName, CounterName
Usar variáveis para reutilização de código

Aqui estamos tornando o nome do objeto e o nome do contador uma variável para que não tenhamos que alterar o corpo da consulta KQL para fazer alterações nessas seleções mais tarde.

let pObjectName  = "Memory"; // Required to select the right counter
let pCounterName = "Available MBytes"; // Required to select the right counter
Perf
| where Type == "Perf" and ObjectName == pObjectName and CounterName == pCounterName
| project TimeGenerated, Computer, CounterName, CounterValue
| order by TimeGenerated asc 
| summarize Value=max(CounterValue) by CounterName, TimeStamps=TimeGenerated