Como monitorar o Azure Key Vault

Quando você tem aplicativos e processos de negócios críticos que dependem de recursos do Azure, recomendamos monitorar a disponibilidade, o desempenho e a operação desses recursos. Para o Azure Key Vault, é importante monitorar o serviço à medida que você começa a dimensionar, pois o número de solicitações enviadas ao 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 de 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 Monitoramento de recursos do Azure com o Azure Monitor.

Página de visão geral de 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 solicitações
  • Latência Média
  • Taxa de sucesso

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

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

Insights do Key Vault

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

Os insights do Key Vault fornecem monitoramento abrangente de cofres de chaves, fornecendo uma visão unificada das solicitações, do desempenho, das falhas e da latência do Key Vault. Para obter os detalhes completos, confira Monitoramento do serviço de cofre de chaves com os insights do Key Vault.

Dados de monitoramento

O Key Vault coleta os mesmos tipos de dados de monitoramento que outros recursos do Azure descritos em Monitoramento de dados dos recursos do Azure.

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

Coleta e roteamento

As métricas de plataforma e o Log de atividades são coletados e armazenados automaticamente, mas podem ser roteados para outras localizações usando uma configuração de diagnóstico.

Os Logs de Recursos não são coletados e armazenados até você criar uma configuração de diagnóstico e roteá-los para uma ou mais localizações.

Confira Criar uma configuração de diagnóstico para coletar logs e métricas de plataforma no Azure para obter o processo detalhado de criação de uma configuração de diagnóstico usando o portal do Azure, a CLI ou o PowerShell. Ao criar uma configuração de diagnóstico, você especifica quais categorias de logs coletar. As categorias para o Key Vault estão listadas em Referência de dados de monitoramento do Key Vault.

Para criar uma configuração de diagnóstico para o cofre de chaves, confira Habilitar o log do Key Vault. As métricas e os logs que você pode coletar são discutidos nas seções a seguir.

Analisando as métricas

Você pode analisar as métricas do Key Vault com métricas de outros serviços do Azure por meio do Metrics Explorer abrindo Métricas no menu Azure Monitor. Consulte Análise de 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 de plataforma coletadas para o Key Vault, confira Métricas de referência de dados de monitoramento do Key Vault

Análise de logs

Os dados em Logs do Azure Monitor são armazenados em tabelas em que cada tabela tem o 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 está descrito em Esquema do log de recursos do Azure Monitor

O Log de atividades é um tipo de log de plataforma no Azure que fornece insights sobre eventos no nível da assinatura. Você pode exibi-lo de modo independente ou roteá-lo para os Logs do Azure Monitor, nos quais você pode fazer consultas muito mais complexas usando o Log Analytics.

Para obter uma lista dos tipos de logs de recursos coletados para o Key Vault, confira Referência de dados de monitoramento do Key Vault

Para obter uma lista das tabelas usadas pelos Logs do Azure Monitor e que podem ser consultadas pelo Log Analytics, confira Referência de dados de monitoramento do Key Vault

Consultas de exemplo do Kusto

Importante

Quando você seleciona Logs no menu Key Vault, 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 os 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. Confira Escopo da consulta de log e intervalo de tempo no Log Analytics do Azure Monitor para obter detalhes.

Aqui estão algumas consultas que você pode inserir na barra Pesquisa de logs para ajudar no monitoramento dos recursos do Key Vault. Essas consultas funcionam com a nova linguagem.

  • Há algum cliente 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
    
  • Há solicitações lentas?

    // 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
    
  • Este KeyVault está ativo?

    // 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
    
    
  • Who está chamando este 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
    
  • Qual é a velocidade com que 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
    
  • Quais alterações 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 você proativamente quando condições importantes são encontradas nos dados de monitoramento. Eles permitem que você identifique e resolva problemas no seu sistema preventivamente. Você pode definir alertas em métricas, logs e log de atividades.

Se você estiver criando ou executando um aplicativo que é executado no Azure Key Vault, o Azure Monitor Application Insights poderá oferecer tipos adicionais de alertas.

Estas são algumas regras de alerta comuns recomendadas para o Azure Key Vault.

  • A disponibilidade do Key Vault cai abaixo de 100% (limite estático)
  • A latência do Key Vault é maior que 1.000 MS (limite estático)
  • A saturação do cofre geral é maior que 75% (limite estático)
  • A saturação geral do cofre excede a média do (limite dinâmico)
  • O total dos códigos de erro maiores que a média (limite dinâmico)

Confira Alertas para Azure Key Vault para obter mais detalhes.

Próximas etapas