Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aprimore sua análise nos Logs do Azure Monitor correlacionando dados no Azure Data Explorer e no Azure Resource Graph com dados em seu workspace do Log Analytics e recursos do Application Insights. Este artigo explica como executar consultas entre serviços de qualquer serviço que armazene dados em um workspace do Log Analytics. Embora o Microsoft Sentinel armazene dados em workspaces do Log Analytics e dê suporte a consultas entre serviços no Azure Data Explorer, nem todos os recursos do Microsoft Sentinel dão suporte a consultas ao Azure Resource Graph.
Execute consultas entre serviços usando as ferramentas de cliente que dão suporte a consultas KQL (Kusto Query Language), incluindo o Log Analytics no portal do Azure, pastas de trabalho, PowerShell e a API REST.
Pré-requisitos
| Recurso | Permissão necessária |
|---|---|
| espaço de trabalho do Log Analytics |
Microsoft.OperationalInsights/workspaces/query/*/read nos workspaces do Log Analytics que você consultapor exemplo, conforme fornecido pela função interna leitor do Log Analytics. |
| Azure Resource Graph | Ler permissões para os recursos que você consulta no Azure Resource Graph |
| Azure Data Explorer | Exibir permissões para as tabelas que você consulta no Azure Data Explorer |
Considerações sobre implementação
Não há suporte para consultas entre serviços nos seguintes cenários:
- Nuvens governamentais
- Clusters do Data Explorer configurados com restrições de IP ou Link Privado (pontos de extremidade privados)
Considerações gerais entre serviços
- Os nomes dos bancos de dados diferenciam maiúsculas de minúsculas.
- Use funções não parametrizadas e funções cuja definição não inclua outras expressões entre workspaces ou entre serviços. As funções aceitáveis incluem
adx(),arg(),resource(),workspace()eapp(). - Consultas entre serviços dão suporte apenas à recuperação de dados.
- Os únicos comandos que suportam consultas entre serviços são
.showcomandos. Essa funcionalidade permite que as consultas entre clusters façam referência a uma função tabular do Azure Monitor, Azure Data Explorer ou do Azure Resource Graph diretamente.
.showcomandos compatíveis com a consulta entre serviços:.show functions.show function {FunctionName}.show database {DatabaseName} schema as json - Não há suporte para identificação da coluna Carimbo de data/hora em um cluster. A API de Consulta do Log Analytics não passa o filtro de tempo.
-
mv-expanddá suporte a até 2.000 registros. - Os Logs do Azure Monitor não dão suporte à função
external_table(), que permite consultar tabelas externas no Azure Data Explorer. Para consultar uma tabela externa, definaexternal_table(<external-table-name>)como uma função sem parâmetros no Azure Data Explorer. Em seguida, você pode chamar a função usando a expressãoadx("").<function-name>. - Ao usar o operador
joinem vez do operador union, você precisará usar umhintpara combinar os dados no Azure Data Explorer ou no Azure Resource Graph com os dados no espaço de trabalho do Log Analytics. UseHint.remote={direction of the Log Analytics workspace}.
Por exemplo:AzureDiagnostics | join hint.remote=left adx("cluster=ClusterURI").AzureDiagnostics on (ColumnName)
Considerações de consulta entre serviços do Azure Resource Graph
- A
argparte da consulta retorna apenas os primeiros 1.000 registros. Tenha isso em mente se a combinação com umjoincomo pode haver registros ausentes se o limite for atingido. - O operador
joinpermite combinar dados de uma tabela do Azure Resource Graph com uma tabela em seu workspace do Log Analytics. - O Azure Monitor não retorna erros de consulta do Azure Resource Graph.
- O editor de consultas do Log Analytics marca consultas válidas do Azure Resource Graph como erros de sintaxe. Por exemplo, uma consulta válida pode gerar um erro como este: "O nome <nome válido> não se refere a nenhuma coluna, tabela, variável ou função conhecida".
- Esses operadores não têm suporte:
smv-apply(), , ,rand(),arg_max(),arg_min(),avg(),avg_if(),countif(),sumif(), ,percentile(), ,percentiles(),percentilew(), ,percentilesw(), ,stdev(), ,stdevif(),stdevp(),variance(), ,variancep(), ,varianceif(),bin_at. - O Microsoft Sentinel não dá suporte a consultas entre serviços em todos os recursos em que o KQL é usado.
Consultar dados no Azure Data Explorer usando adx()
Insira o identificador de um cluster do Azure Data Explorer em uma consulta dentro do padrão adx, depois o nome e a tabela do banco de dados.
adx('https://help.kusto.windows.net/Samples').StormEvents
Combinar tabelas de cluster do Azure Data Explorer com um workspace do Log Analytics
Use o comando union para combinar tabelas de cluster com um workspace do Log Analytics.
Por exemplo:
union customEvents, adx('https://help.kusto.windows.net/Samples').StormEvents
| take 10
let CL1 = adx('https://help.kusto.windows.net/Samples').StormEvents;
union customEvents, CL1 | take 10
Dica
É permitido usar um formato abreviado: ClusterName/InitialCatalog. Por exemplo, adx('help/Samples') é interpretado como adx('help.kusto.windows.net/Samples').
Unir dados de um cluster do Azure Data Explorer em um locatário com um recurso do Azure Monitor em outro locatário
Não há suporte para consultas entre locatários entre os serviços. Você está conectado a um locatário para executar uma consulta que abrange os dois recursos.
Caso o recurso do Azure Data Explorer esteja no Locatário A e o workspace do Log Analytics esteja no Locatário B, use um dos seguintes métodos:
- Use o Azure Data Explorer para adicionar funções para entidades de segurança em locatários diferentes. Insira sua ID de usuário no Locatário B como um usuário autorizado no cluster do Azure Data Explorer. Verifique se a propriedade TrustedExternalTenant do cluster do Azure Data Explorer contém o Locatário B. Depois, execute uma consulta cruzada e completa nesse locatário.
- Use o Lighthouse para projetar o recurso do Azure Monitor no Locatário A.
Conectar-se aos clusters do Azure Data Explorer de diferentes locatários
O Kusto Explorer estabelece uma conexão de modo automático entre você e o locatário ao qual a conta de usuário pertence originalmente. Para acessar os recursos em outros locatários usando a mesma conta de usuário, será necessário especificar o TenantId de modo explícito na cadeia de conexão:
Data Source=https://ade.applicationinsights.io/subscriptions/SubscriptionId/resourcegroups/ResourceGroupName;Initial Catalog=NetDefaultDB;AAD Federated Security=True;Authority ID=TenantId
Consultar dados no Azure Resource Graph usando arg() (versão prévia)
Insira o padrão arg(""), seguido pelo nome da tabela Resource Graph do Azure.
Por exemplo:
arg("").<Azure-Resource-Graph-table-name>
Dica
O operador arg() agora está disponível para busca avançada no portal do Microsoft Defender. Esse recurso permite resultados que consultam tabelas do Microsoft Sentinel. Para obter mais informações, consulte as consultas do Azure Resource Graph na busca avançada.
Aqui estão alguns exemplos de consultas do Azure Log Analytics que usam os novos recursos de consulta entre serviços do Azure Resource Graph:
Exemplo: filtrar a consulta do Log Analytics com base nos resultados de uma consulta do Azure Resource Graph
arg("").Resources
| where type == "microsoft.compute/virtualmachines" and properties.hardwareProfile.vmSize startswith "Standard_D"
| join (
Heartbeat
| where TimeGenerated > ago(1d)
| distinct Computer
)
on $left.name == $right.Computer
Exemplos: criar uma regra de alerta que se aplique apenas a determinados recursos obtidos de uma consulta arg()
Exclua recursos com base em etiquetas. Por exemplo, não gere alertas para VMs com uma Test etiqueta.
arg("").Resources
| where tags.environment=~'Test'
| project name
Recupere dados de desempenho relacionados à utilização da CPU e filtre para recursos com a prod marca.
InsightsMetrics
| where Name == "UtilizationPercentage"
| lookup (
arg("").Resources
| where type == 'microsoft.compute/virtualmachines'
| project _ResourceId=tolower(id), tags
)
on _ResourceId
| where tostring(tags.Env) == "Prod"
Mais exemplos de casos de uso
- Use uma marca para determinar se as VMs devem ser executadas 24 horas por dia, 7 dias por semana ou devem ser desligadas à noite.
- Mostrar alertas em qualquer servidor que contenha um número definido de núcleos.
Criar um alerta com base em uma consulta entre serviços no workspace do Log Analytics
Para criar uma regra de alerta com base em uma consulta entre serviços no seu workspace do Log Analytics, siga as etapas em Criar ou editar uma regra de alerta de pesquisa de log, selecionando seu workspace do Log Analytics, na guia Escopo.
Dica
Execute consultas entre serviços do Azure Data Explorer e do Azure Resource Graph para uma área de trabalho do Log Analytics, selecionando o recurso relevante como escopo do seu alerta.
Combinar tabelas do Azure Resource Graph com um workspace do Log Analytics
Use o comando union para combinar tabelas de cluster com um workspace do Log Analytics.
Por exemplo:
union AzureActivity, arg("").Resources
| take 10
let CL1 = arg("").Resources ;
union AzureActivity, CL1 | take 10
Ao usar o join operador em vez da união, você precisará usar um hint para combinar os dados no Azure Resource Graph com dados no workspace do Log Analytics. Use Hint.remote={Direction of the Log Analytics Workspace}. Por exemplo:
Perf | where ObjectName == "Memory" and (CounterName == "Available MBytes Memory")
| extend _ResourceId = replace_string(replace_string(replace_string(_ResourceId, 'microsoft.compute', 'Microsoft.Compute'), 'virtualmachines','virtualMachines'),"resourcegroups","resourceGroups")
| join hint.remote=left (arg("").Resources | where type =~ 'Microsoft.Compute/virtualMachines' | project _ResourceId=id, tags) on _ResourceId | project-away _ResourceId1 | where tostring(tags.env) == "prod"