Configurar o runtime de integração auto-hospedada (SHIR) para coleta do Log Analytics
APLICA-SE A: Azure Data Factory Azure Synapse Analytics
Dica
Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange desde movimentação de dados até ciência de dados, análise em tempo real, business intelligence e relatórios. Saiba como iniciar uma avaliação gratuita!
Pré-requisitos
É necessário um espaço de trabalho do Log Analytics disponível para essa abordagem. Recomendamos que você anote a ID do workspace e a chave de autenticação do seu espaço de trabalho do Log Analytics, pois talvez seja necessário para determinados cenários. Essa solução aumentará os dados que serão enviados para o workspace do Log Analytics e terão um pequeno impacto sobre o custo geral. Continue lendo para obter detalhes sobre como manter a quantidade de dados no mínimo.
Objetivos e cenários
Centralize os eventos e os dados do contador de desempenho para seu espaço de trabalho do Log Analytics. Primeiro, a máquina virtual que hospeda o SHIR deve ser instrumentada adequadamente. Escolha entre os dois cenários principais abaixo.
Instrumentar 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 a ID do workspace do Log Analytics e a Chave do Workspace 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 sobre como habilitar insights de VM. Há várias maneiras de configurar o agente do Log Analytics quando o SHIR está hospedado em uma máquina virtual do Azure. Todas as opções estã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 irá destacar como configurar logs do Visualizador de eventos e dos contadores de desempenho a serem enviados ao 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 observar que, ao escolher os logs de eventos usando a interface, é normal que você não veja todos os diários que possam existir em um computador. Portanto, os dois diários necessários 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 do Log Analytics.
O nome do diário de eventos que devemos configurar é:
- Conectores – Integration Runtime
- Integration Runtime
Importante
Deixar o nível Informações marcado aumentará significativamente o volume de dados se você tiver muitos hosts de SHIR implantados e um número maior de verificações. Sugerimos fortemente que você 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 para enviar para o Log Analytics.
Importante
Tenha em mente que os contadores de desempenho são, por natureza, um fluxo de dados contínuo. Portanto, é crucial que você considere 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. % de CPU e Memória disponível geralmente são contadores monitorados, mas outros como Consumo de largura de banda de rede podem ser úteis em cenários em que o volume de dados é grande e largura de banda ou tempo de execução são restritos.
Visualizar eventos e dados do Contador de desempenho no Log Analytics
Para saber como analisar dados de monitorização na loja Azure Monitor Logs/Log Analytics utilizando a linguagem de consulta Kusto (KQL), veja consultas Kusto.
As duas tabelas em que a telemetria é salva são chamadas de Perf e Event, respectivamente. A consulta a seguir verifica a contagem de linhas para ver se há dados fluindo. Isso confirma se a instrumentação descrita acima está funcionando.
Amostra de consultas KQL
Verificar contagens de linhas
(
Event
| extend TableName = "Event"
| summarize count() by TableName
)
| union
(
Perf
| extend TableName = "Perf"
| summarize count() by TableName
)
Consulta de eventos
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 severidade da mensagem
Event
| summarize count() by EventLevelName
| render piechart
Recuperar todos os erros com uma cadeia de caracteres de texto específica
Aqui, estamos pesquisando todas as mensagens que têm a palavra desconectado.
Event
| where RenderedDescription has "disconnected"
Pesquisa em várias tabelas para uma palavra-chave sem saber 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. Neste exemplo, a palavra é desconectado.
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 registro chamado Connectors - Integration Runtime.
Event
| where EventLog == "Connectors - Integration Runtime"
Usar períodos de tempo para restringir os resultados da consulta
Essa consulta usa a mesma consulta acima, mas restringe os resultados aos que ocorreram há dois 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, tenha cuidado para ter predicados where suficientes em sua consulta para selecionar apenas o contador específico de que você precisa.
Recuperar o 95º percentil de um determinado contador agrupado por fatias de 30 minutos das últimas 24 horas
Este exemplo é todos os contadores para 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 seja preciso alterar o corpo da consulta KQL para fazer alterações nessas seleções posteriormente.
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