Monitorizar os dados da Cache do Azure para Redis com as definições de diagnóstico

As definições de diagnóstico no Azure são utilizadas para recolher registos de recursos. Um recurso do Azure emite logs de recursos e fornece dados ricos e frequentes sobre a operação desse recurso. Esses logs são capturados por solicitação e também são chamados de "logs de plano de dados". Consulte Configurações de diagnóstico no Azure Monitor para obter uma visão geral recomendada da funcionalidade no Azure. O conteúdo destes registos varia consoante o tipo de recurso. No Cache do Azure para Redis, duas opções estão disponíveis para registro:

  • Métricas de cache (ou seja, "AllMetrics") usadas para registrar métricas do Azure Monitor
  • Os Logs de Conexão registram conexões com o cache para fins de segurança e diagnóstico.

Âmbito da disponibilidade

Escalão de serviço Basic, Standard e Premium Flash Enterprise e Enterprise
Métricas de cache Sim Sim
Registos de Ligação Sim Sim

Métricas de cache

O Cache Redis do Azure emite muitas métricas , como Carga do Servidor e Conexões por Segundo , que são úteis para registro. Selecionar a opção AllMetrics permite que essas e outras métricas de cache sejam registradas. Você pode configurar por quanto tempo as métricas serão mantidas. Veja aqui um exemplo de exportação de métricas de cache para uma conta de armazenamento.

Registos de Ligação

O Cache Redis do Azure usa as configurações de diagnóstico do Azure para registrar informações em conexões de cliente com seu cache. Registrar e analisar essa configuração de diagnóstico ajuda você a entender quem está se conectando aos seus caches e o carimbo de data/hora dessas conexões. Os dados de registo podem ser utilizados para identificar o âmbito de uma violação de segurança e para fins de auditoria de segurança.

Diferenças entre o Cache do Azure para camadas Redis

A implementação de logs de conexão é ligeiramente diferente entre as camadas:

  • Os caches de nível Basic, Standard e Premium sondam as conexões do cliente por endereço IP, incluindo o número de conexões originadas de cada endereço IP exclusivo. Esses logs não são cumulativos. Eles representam instantâneos point-in-time tirados em intervalos de 10 segundos. Os eventos de autenticação (bem-sucedidos e com falha) e os eventos de desconexão não são registrados nessas camadas.
  • Os caches das camadas Enterprise e Enterprise Flash usam a funcionalidade de eventos de conexão de auditoria integrada ao Redis Enterprise. Os eventos de conexão de auditoria permitem que todos os eventos de conexão, desconexão e autenticação sejam registrados, incluindo eventos de autenticação com falha.

Os logs de conexão produzidos são semelhantes entre as camadas, mas têm algumas diferenças. Os dois formatos são mostrados com mais detalhes mais adiante no artigo.

Importante

O log de conexão nas camadas Basic, Standard e Premium sonda as conexões de cliente atuais no cache. Os mesmos endereços IP do cliente aparecem repetidamente. O registro em log nas camadas Enterprise e Enterprise Flash é focado em cada evento de conexão. Os logs só ocorrem quando o evento real ocorreu pela primeira vez.

Pré-requisitos/limitações do log de conexão

Níveis Básico, Standard e Premium

  • Como os logs de conexão nessas camadas consistem em instantâneos point-in-time tirados a cada 10 segundos, as conexões estabelecidas e removidas em intervalos de 10 segundos não são registradas.
  • Os eventos de autenticação não são registrados.
  • Todas as configurações de diagnóstico podem levar até 90 minutos para começar a fluir para o destino selecionado.
  • Habilitar os logs de conexão pode causar uma pequena degradação do desempenho da instância de cache.
  • Somente o plano de preços de Logs do Google Analytics é suportado ao transmitir logs para o Azure Log Analytics. Para obter mais informações, consulte Preços do Azure Monitor.

Níveis Enterprise e Enterprise Flash

  • Quando você usa a Diretiva de Cluster OSS, os logs são emitidos de cada nó de dados. Quando você usa a Diretiva de Cluster Empresarial, somente o nó que está sendo usado como proxy emite logs. Ambas as versões ainda cobrem todas as conexões com o cache. Esta é apenas uma diferença arquitetônica.
  • A perda de dados (ou seja, a falta de um evento de conexão) é rara, mas possível. A perda de dados é normalmente causada por problemas de rede.
  • Os logs de desconexão ainda não estão totalmente estáveis e os eventos podem ser perdidos.
  • Como os logs de conexão nas camadas Enterprise são baseados em eventos, tenha cuidado com suas políticas de retenção. Por exemplo, se a retenção estiver definida como 10 dias e um evento de conexão tiver ocorrido há 15 dias, essa conexão ainda poderá existir, mas o log dessa conexão não será mantido.
  • Se estiver usando a replicação geográfica ativa, o registro em log deverá ser configurado para cada instância de cache no grupo de replicação geográfica individualmente.
  • Todas as configurações de diagnóstico podem levar até 90 minutos para começar a fluir para o destino selecionado.
  • Habilitar logs de conexão pode causar uma pequena degradação do desempenho da instância de cache.

Nota

É sempre possível usar os comandos INFO ou CLIENT LIST para verificar quem está conectado a uma instância de cache sob demanda.

Importante

Ao selecionar logs, você pode escolher os grupos específicos de Categoria ou Categoria, que são agrupamentos predefinidos de logs nos serviços do Azure. Ao usar grupos de categorias, você não pode mais definir as configurações de retenção. Se você precisar determinar a duração da retenção para seus logs de conexão, selecione o item na seção Categorias .

Destinos de log

Você pode ativar as configurações de diagnóstico para instâncias do Cache Redis do Azure e enviar logs de recursos para os seguintes destinos:

  • Espaço de trabalho do Log Analytics - não precisa estar na mesma região que o recurso que está sendo monitorado.
  • Conta de armazenamento - deve estar na mesma região do cache. No entanto, as contas de armazenamento premium não são suportadas como destino.
  • Hub de eventos - as configurações de diagnóstico não podem acessar recursos do hub de eventos quando as redes virtuais estão habilitadas. Habilite a configuração Permitir que serviços confiáveis da Microsoft ignorem esse firewall? em Hubs de Eventos para conceder acesso aos recursos do Hub de Eventos. O hub de eventos deve estar na mesma região do cache.
  • Partner Solution - uma lista de potenciais soluções de registo de parceiros pode ser encontrada aqui

Para obter mais informações sobre requisitos de diagnóstico, consulte Configurações de diagnóstico.

São cobradas taxas de dados normais pela conta de armazenamento e pelo uso do hub de eventos quando você envia logs de diagnóstico para qualquer um dos destinos. Você é cobrado no Azure Monitor e não no Cache do Azure para Redis. Ao enviar logs para o Log Analytics, você será cobrado apenas pela ingestão de dados do Log Analytics.

Para obter mais informações sobre preços, os preços do Azure Monitor.

Habilitar o log de conexão usando o portal do Azure

  1. Inicie sessão no portal do Azure.

  2. Navegue até sua conta do Cache do Azure para Redis. Abra o painel Configurações de diagnóstico na seção Monitoramento à esquerda. Em seguida, selecione Adicionar configuração de diagnóstico.

    Selecionar diagnósticos

  3. No painel Configurações de diagnóstico, selecione ConnectedClientList em Categorias.

    Para obter mais detalhes sobre os dados registrados, consulte abaixo Conteúdo dos logs de conexão.

  4. Depois de selecionar ConnectedClientList, envie seus logs para seu destino preferido. Selecione as informações no painel de trabalho.

    Selecione ativar recursos específicos

Habilitar o log de conexão usando a API REST

Use a API REST do Azure Monitor para criar uma configuração de diagnóstico por meio do console interativo. Para obter mais informações, consulte Criar ou atualizar.

Pedir

PUT https://management.azure.com/{resourceUri}/providers/Microsoft.Insights/diagnosticSettings/{name}?api-version=2017-05-01-preview

Cabeçalhos

Parâmetros/cabeçalhos Valor/Descrição
name O nome da sua configuração de diagnóstico.
resourceUri assinaturas/{SUBSCRIPTION_ID}/resourceGroups/{RESOURCE_GROUP}/providers/Microsoft.Cache/Redis/{CACHE_NAME}
api-version 2017-05-01-pré-visualização
Content-Type application/json

Corpo

{
    "properties": {
      "storageAccountId": "/subscriptions/df602c9c-7aa0-407d-a6fb-eb20c8bd1192/resourceGroups/apptest/providers/Microsoft.Storage/storageAccounts/appteststorage1",
      "eventHubAuthorizationRuleId": "/subscriptions/1a66ce04-b633-4a0b-b2bc-a912ec8986a6/resourceGroups/montest/providers/microsoft.eventhub/namespaces/mynamespace/eventhubs/myeventhub/authorizationrules/myrule",
      "eventHubName": "myeventhub",
      "workspaceId": "/subscriptions/4b9e8510-67ab-4e9a-95a9-e2f1e570ea9c/resourceGroups/insights-integration/providers/Microsoft.OperationalInsights/workspaces/myworkspace",
      "logs": [
        {
          "category": "ConnectedClientList",
          "enabled": true,
          "retentionPolicy": {
            "enabled": false,
            "days": 0
          }
        }
      ]
    }
}

Habilitar o log de conexão usando a CLI do Azure

Use o az monitor diagnostic-settings create comando para criar uma configuração de diagnóstico com a CLI do Azure. Para obter mais informações sobre descrições de comandos e parâmetros, consulte Criar configurações de diagnóstico para enviar logs e métricas da plataforma para destinos diferentes. Este exemplo mostra como usar a CLI do Azure para transmitir dados para quatro pontos de extremidade diferentes:

az monitor diagnostic-settings create 
    --resource /subscriptions/{subscriptionID}/resourceGroups/{resourceGroupname}/providers/Microsoft.Cache/Redis/{cacheName}
    --name {logName}
    --logs '[{"category": "ConnectedClientList","enabled": true,"retentionPolicy": {"enabled": false,"days": 0}}]'    
    --event-hub {eventHubName}
    --event-hub-rule /subscriptions/{subscriptionID}/resourceGroups/{resourceGroupName}/providers/microsoft.eventhub/namespaces/{eventHubNamespace}/authorizationrule/{ruleName}
    --storage-account /subscriptions/{subscriptionID}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{storageAccountName}
    --workspace /subscriptions/{subscriptionID}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{logAnalyticsWorkspaceName}
    --marketplace-partner-id/subscriptions/{subscriptionID}/resourceGroups{resourceGroupname}/proviers/Microsoft.Datadog/monitors/mydatadog

Conteúdo dos logs de conexão

Esses campos e propriedades aparecem na ConnectedClientList categoria de log. No Azure Monitor, os ACRConnectedClientList logs são coletados na tabela sob o nome do provedor de recursos .MICROSOFT.CACHE

Campo ou propriedade do Armazenamento do Azure Propriedade Azure Monitor Logs Description
time TimeGenerated O carimbo de data/hora de quando o log foi gerado em UTC.
location Location O local (região) em que a instância do Cache Redis do Azure foi acessada.
category n/d Categorias de log disponíveis: ConnectedClientList.
resourceId _ResourceId O recurso Cache do Azure para Redis para o qual os logs estão habilitados.
operationName OperationName A operação Redis associada ao registro de log.
properties n/d O conteúdo deste campo é descrito nas linhas seguintes.
tenant CacheName O nome da instância do Cache do Azure para Redis.
roleInstance RoleInstance A instância de função que registrou a lista de clientes.
connectedClients.ip ClientIp O endereço IP do cliente Redis.
connectedClients.privateLinkIpv6 PrivateLinkIpv6 O endereço IPv6 do link privado do cliente Redis (se aplicável).
connectedClients.count ClientCount O número de conexões de cliente Redis do endereço IP associado.

Exemplo de log de conta de armazenamento

Se você enviar seus logs para uma conta de armazenamento, o conteúdo dos logs terá esta aparência.

{
    "time": "2021-08-05T21:04:58.0466086Z",
    "location": "canadacentral",
    "category": "ConnectedClientList",
    "properties": {
        "tenant": "mycache", 
        "connectedClients": [
            {
                "ip": "192.123.43.36", 
                "count": 86
            },
            {
                "ip": "10.1.1.4",
                "privateLinkIpv6": "fd40:8913:31:6810:6c31:200:a01:104", 
                "count": 1
            }
        ],
        "roleInstance": "1"
    },
    "resourceId": "/SUBSCRIPTIONS/E6761CE7-A7BC-442E-BBAE-950A121933B5/RESOURCEGROUPS/AZURE-CACHE/PROVIDERS/MICROSOFT.CACHE/REDIS/MYCACHE", 
    "Level": 4,
    "operationName": "Microsoft.Cache/ClientList"
}

Próximos passos

Para obter informações detalhadas sobre como criar uma configuração de diagnóstico usando o portal do Azure, CLI ou PowerShell, consulte Criar configuração de diagnóstico para coletar logs e métricas da plataforma no artigo do Azure .