Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. 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 espaço de trabalho 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 espaço de trabalho do Log Analytics. Embora o Microsoft Sentinel armazene dados em espaços de trabalho do Log Analytics e ofereça suporte a consultas entre serviços para o 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 qualquer ferramenta de cliente que ofereça 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 |
|---|---|
| área de trabalho do Log Analytics |
Microsoft.OperationalInsights/workspaces/query/*/read nos espaços de trabalho do Log Analytics que você consultaPor exemplo, conforme fornecido pela função interna do Log Analytics Reader. |
| Azure Resource Graph | Permissões de leitura para os recursos consultados no Azure Resource Graph |
| Azure Data Explorer | Exibir permissões para as tabelas que você consulta no Azure Data Explorer |
Considerações de 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 Private Link (pontos de extremidade privados)
Considerações gerais sobre serviços cruzados
- Os nomes dos bancos de dados são sensíveis a maiúsculas e minúsculas.
- Use funções não parametrizadas e funções cuja definição não inclua outras expressões entre espaços de trabalho ou entre serviços. As funções aceitáveis incluem
adx(),arg(),resource(),workspace(), eapp(). - As consultas entre serviços suportam apenas a recuperação de dados.
- Os únicos comandos que suportam consultas entre serviços são
.showcomandos. Esse recurso permite que consultas entre clusters façam referência diretamente a uma função tabular do Azure Monitor, Azure Data Explorer ou Azure Resource Graph.
.showComandos suportados com a consulta entre serviços:.show functions.show function {FunctionName}.show database {DatabaseName} schema as json - Não é suportada a identificação da coluna 'timestamp' num cluster. A API de Consulta do Log Analytics não passa pelo filtro de tempo.
-
mv-expandsuporta até 2.000 registros. - Os Logs do Azure Monitor não dão suporte à
external_table()função, 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
joinoperador em vez de união, você precisa usar umhintpara combinar dados no Azure Data Explorer ou no Azure Resource Graph com dados no espaço de trabalho do Log Analytics.Hint.remote={direction of the Log Analytics workspace}Utilize.
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 combinar com umjoinpois podem haver registos ausentes se o limite for atingido. - O
joinoperador permite combinar dados de uma tabela do Azure Resource Graph com uma tabela no espaço de trabalho 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 dar um erro como este: "O nome <válido> não se refere a nenhuma coluna, tabela, variável ou função conhecida".
- Estes operadores não são suportados:
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 suporta 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 adx padrão, seguido pelo nome do banco de dados e pela tabela.
adx('https://help.kusto.windows.net/Samples').StormEvents
Combinar tabelas de cluster do Azure Data Explorer com um espaço de trabalho do Log Analytics
Use o union comando para combinar tabelas de cluster com um espaço de trabalho 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
Gorjeta
O formato abreviado é permitido: ClusterName/InitialCatalog. Por exemplo, adx('help/Samples') é traduzido para 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
As consultas entre inquilinos entre os serviços não são suportadas. Você está conectado a um único locatário para executar a consulta que abrange ambos os recursos.
Se o recurso do Azure Data Explorer estiver no Locatário A e o espaço de trabalho do Log Analytics estiver no Locatário B, use um dos seguintes métodos:
- Utilize o Azure Data Explorer para adicionar funções para principais em inquilinos diferentes. Adicione o seu ID de utilizador no Tenant B como um utilizador autorizado no cluster do Azure Data Explorer. Valide se a propriedade TrustedExternalTenant no cluster do Azure Data Explorer contém o Locatário B. Execute a consulta cruzada totalmente no Locatário B.
- Use o Lighthouse para projetar o recurso do Azure Monitor no Inquilino A.
Conectar-se a clusters do Azure Data Explorer de locatários diferentes
Kusto Explorer autentica-o automaticamente no locatário ao qual a sua conta de utilizador pertence originalmente. Para acessar recursos em outros locatários com a mesma conta de usuário, você deve especificar TenantId explicitamente 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() (Preview)
Insira o arg("") padrão, seguido pelo nome da tabela do Gráfico de Recursos do Azure.
Por exemplo:
arg("").<Azure-Resource-Graph-table-name>
Gorjeta
O operador arg() está agora disponível para investigação avançada no portal Microsoft Defender. Esse recurso permite resultados que consultam tabelas do Microsoft Sentinel. Para obter mais informações, consulte Consultas do Azure Resource Graph na caça 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 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 retirados de uma consulta arg()
Exclua recursos com base em tags. Por exemplo, não acione alertas para VMs com uma Test tag.
arg("").Resources
| where tags.environment=~'Test'
| project name
Recupere dados de desempenho relacionados à utilização da CPU e filtre para recursos com a prod tag .
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 tag para determinar se as VMs devem ser executadas 24 horas por dia, 7 dias por semana ou se 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 a partir do seu espaço de trabalho do Log Analytics
Para criar uma regra de alerta com base em uma consulta entre serviços do seu espaço de trabalho do Log Analytics, siga as etapas em Criar ou editar uma regra de alerta de pesquisa de log, selecionando seu espaço de trabalho do Log Analytics, na guia Escopo .
Gorjeta
Execute consultas entre serviços do Azure Data Explorer e do Azure Resource Graph para um espaço de trabalho do Log Analytics, selecionando o recurso relevante como o escopo do seu alerta.
Combinar tabelas do Azure Resource Graph com um espaço de trabalho do Log Analytics
Use o union comando para combinar tabelas de cluster com um espaço de trabalho do Log Analytics.
Por exemplo:
union AzureActivity, arg("").Resources
| take 10
let CL1 = arg("").Resources ;
union AzureActivity, CL1 | take 10
Quando você usa o join operador em vez de união, precisa usar um hint para combinar os dados no Azure Resource Graph com os dados no espaço de trabalho do Log Analytics.
Hint.remote={Direction of the Log Analytics Workspace}Utilize. 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"