Monitorando o Azure Key Vault

Quando tem aplicações críticas e processos de negócio que dependem dos recursos do Azure, deverá querer monitorizar esses recursos quanto à disponibilidade, ao desempenho e à operação. Para o Azure Key Vault, é importante monitorar seu serviço à medida que você começa a escalar, porque o número de solicitações enviadas para seu cofre de chaves aumentará. Isso tem o potencial de aumentar a latência de suas solicitações e, em casos extremos, fazer com que suas solicitações sejam limitadas, o que afetará o desempenho do seu serviço.

Este artigo descreve os dados de monitoramento gerados pelo Key Vault. O Key Vault usa o Azure Monitor. Se você não estiver familiarizado com os recursos do Azure Monitor comuns a todos os serviços do Azure que o usam, leia Monitorando recursos do Azure com o Azure Monitor.

Página de visão geral do monitoramento no portal do Azure

A página Visão geral no portal do Azure para cada cofre de chaves inclui as seguintes métricas na guia "Monitoramento":

  • Total de pedidos
  • Latência média
  • Taxa de sucesso

Você pode selecionar "métricas adicionais" (ou a guia "Métricas" na barra lateral esquerda, em "Monitoramento") para visualizar essas métricas também:

  • Latência geral da API de serviço
  • Disponibilidade geral do cofre
  • Saturação geral do cofre
  • Total de acessos à API de serviço
  • Total de resultados da API de serviço

Principais informações do Vault

Alguns serviços no Azure têm um painel de monitoramento pré-criado focado especial no portal do Azure que fornece um ponto de partida para monitorar seu serviço. Esses painéis especiais são chamados de "insights".

As informações do Key Vault fornecem um monitoramento abrangente de seus cofres de chaves, fornecendo uma visão unificada de suas solicitações, desempenho, falhas e latência do Key Vault. Para obter detalhes completos, consulte Monitorando seu serviço de cofre de chaves com informações do Cofre de chaves.

Monitorizar dados

O Cofre da Chave coleta os mesmos tipos de dados de monitoramento que outros recursos do Azure descritos em Monitoramento de dados de recursos do Azure.

Consulte Referência de dados do Monitoring Key Vault para obter informações detalhadas sobre as métricas e métricas de logs criadas pelo Key Vault.

Recolha e encaminhamento

As métricas de plataforma e o Registo de atividades são recolhidos e armazenados automaticamente, mas podem ser encaminhados para outras localizações através de uma definição de diagnóstico.

Os registos de recursos não são recolhidos nem armazenados até que crie uma definição de diagnóstico e os encaminhe para uma ou mais localizações.

Veja Criar uma definição de diagnóstico para recolher registos e métricas da plataforma no Azure para ficar a conhecer o processo detalhado de criação de uma definição de diagnóstico com o portal do Azure, a CLI ou o PowerShell. Ao criar uma configuração de diagnóstico, você especifica quais categorias de logs devem ser coletadas. As categorias do Cofre da Chave estão listadas na referência de dados de monitoramento do Cofre da Chave.

Para criar uma configuração de diagnóstico para seu cofre de chaves, consulte Habilitar registro em log do Cofre de Chaves. As métricas e logs que você pode coletar são discutidos nas seções a seguir.

Análise de métricas

Você pode analisar métricas do Key Vault com métricas de outros serviços do Azure usando o explorador de métricas abrindo Métricas no menu Azure Monitor . Consulte Analisar métricas com o explorador de métricas do Azure Monitor para obter detalhes sobre como usar essa ferramenta.

Para obter uma lista das métricas da plataforma coletadas para o Key Vault, consulte Monitoring Key Vault data reference metrics

Analisando logs

Os dados nos Logs do Azure Monitor são armazenados em tabelas onde cada tabela tem seu próprio conjunto de propriedades exclusivas.

Todos os logs de recursos no Azure Monitor têm os mesmos campos seguidos por campos específicos do serviço. O esquema comum é descrito no esquema de log de recursos do Azure Monitor

O log de atividades é um tipo de log de plataforma no Azure que fornece informações sobre eventos no nível de assinatura. Pode vê-lo de forma independente ou encaminhá-lo para os Registos do Azure Monitor, onde pode fazer consultas muito mais complexas com o Log Analytics.

Para obter uma lista dos tipos de logs de recursos coletados para o Cofre de Chaves, consulte Referência de dados do Cofre de Chaves de Monitoramento

Para obter uma lista das tabelas usadas pelos Logs do Azure Monitor e consultáveis pelo Log Analytics, consulte Referência de dados do Monitoring Key Vault

Exemplos de consultas Kusto

Importante

Quando você seleciona Logs no menu Cofre de Chaves, o Log Analytics é aberto com o escopo da consulta definido como o cofre de chaves atual. Isso significa que as consultas de log incluirão apenas dados desse recurso. Se quiser executar uma consulta que inclua dados de outros cofres de chaves ou dados de outros serviços do Azure, selecione Logs no menu Azure Monitor . Consulte Escopo e intervalo de tempo da consulta de log no Azure Monitor Log Analytics para obter detalhes.

Aqui estão algumas consultas que você pode inserir na barra de pesquisa Log para ajudá-lo a monitorar seus recursos do Cofre da Chave. Essas consultas funcionam com o novo idioma.

  • Existem clientes usando a versão antiga do TLS (<1.2)?

    AzureDiagnostics
    | where TimeGenerated > ago(90d) 
    | where ResourceProvider =="MICROSOFT.KEYVAULT" 
    | where isnotempty(tlsVersion_s) and strcmp(tlsVersion_s,"TLS1_2") <0
    | project TimeGenerated,Resource, OperationName, requestUri_s, CallerIPAddress, OperationVersion,clientInfo_s,tlsVersion_s,todouble(tlsVersion_s)
    | sort by TimeGenerated desc
    
  • Existem pedidos lentos?

    // List of KeyVault requests that took longer than 1sec. 
    // To create an alert for this query, click '+ New alert rule'
    let threshold=1000; // let operator defines a constant that can be further used in the query
    
    AzureDiagnostics
    | where ResourceProvider =="MICROSOFT.KEYVAULT" 
    | where DurationMs > threshold
    | summarize count() by OperationName, _ResourceId
    
  • Há falhas?

    // Count of failed KeyVault requests by status code. 
    // To create an alert for this query, click '+ New alert rule'
    
    AzureDiagnostics
    | where ResourceProvider =="MICROSOFT.KEYVAULT" 
    | where httpStatusCode_d >= 300 and not(OperationName == "Authentication" and httpStatusCode_d == 401)
    | summarize count() by requestUri_s, ResultSignature, _ResourceId
    // ResultSignature contains HTTP status, e.g. "OK" or "Forbidden"
    // httpStatusCode_d contains HTTP status code returned
    
  • Erros de desserialização de entrada

    // Shows errors caused due to malformed events that could not be deserialized by the job. 
    // To create an alert for this query, click '+ New alert rule'
    
    AzureDiagnostics
    | where ResourceProvider == "MICROSOFT.KEYVAULT" and parse_json(properties_s).DataErrorType in ("InputDeserializerError.InvalidData", "InputDeserializerError.TypeConversionError", "InputDeserializerError.MissingColumns", "InputDeserializerError.InvalidHeader", "InputDeserializerError.InvalidCompressionType")
    | project TimeGenerated, Resource, Region_s, OperationName, properties_s, Level, _ResourceId
    
  • Quão ativo tem sido este KeyVault?

    // Line chart showing trend of KeyVault requests volume, per operation over time. 
    // KeyVault diagnostic currently stores logs in AzureDiagnostics table which stores logs for multiple services. 
    // Filter on ResourceProvider for logs specific to a service.
    
    AzureDiagnostics
    | where ResourceProvider =="MICROSOFT.KEYVAULT" 
    | summarize count() by bin(TimeGenerated, 1h), OperationName // Aggregate by hour
    | render timechart
    
    
  • Quem está chamando isso de KeyVault?

    // List of callers identified by their IP address with their request count.  
    // KeyVault diagnostic currently stores logs in AzureDiagnostics table which stores logs for multiple services. 
    // Filter on ResourceProvider for logs specific to a service.
    
    AzureDiagnostics
    | where ResourceProvider =="MICROSOFT.KEYVAULT"
    | summarize count() by CallerIPAddress
    
  • Com que rapidez este KeyVault atende às solicitações?

    // Line chart showing trend of request duration over time using different aggregations. 
    
    AzureDiagnostics
    | where ResourceProvider =="MICROSOFT.KEYVAULT" 
    | summarize avg(DurationMs) by requestUri_s, bin(TimeGenerated, 1h) // requestUri_s contains the URI of the request
    | render timechart
    
  • Que mudanças ocorreram no mês passado?

    // Lists all update and patch requests from the last 30 days. 
    // KeyVault diagnostic currently stores logs in AzureDiagnostics table which stores logs for multiple services. 
    // Filter on ResourceProvider for logs specific to a service.
    
    AzureDiagnostics
    | where TimeGenerated > ago(30d) // Time range specified in the query. Overrides time picker in portal.
    | where ResourceProvider =="MICROSOFT.KEYVAULT" 
    | where OperationName == "VaultPut" or OperationName == "VaultPatch"
    | sort by TimeGenerated desc
    

Alertas

Os alertas do Azure Monitor notificam proativamente quando as condições importantes são encontradas nos dados de monitorização. Eles permitem que você identifique e resolva problemas em seu sistema preventivamente. Você pode definir alertas em métricas, logs e no registro de atividades.

Se você estiver criando ou executando um aplicativo executado no Cofre da Chave do Azure, o Azure Monitor Application Insights pode oferecer tipos adicionais de alertas.

Aqui estão algumas regras de alerta comuns e recomendadas para o Azure Key Vault -

  • A disponibilidade do Key Vault cai abaixo de 100% (limite estático)
  • A latência do cofre da chave é maior que 1000ms (limite estático)
  • A saturação geral do cofre é superior a 75% (limite estático)
  • A saturação geral do cofre excede a média (limite dinâmico)
  • Total de códigos de erro superior à média (Limiar Dinâmico)

Consulte Alertas para o Cofre de Chaves do Azure para obter mais detalhes.

Próximos passos