Supervisión de datos de Azure Cache for Redis mediante la configuración de diagnóstico

La configuración de diagnóstico de Azure se usa para recopilar los registros de los recursos. Un recurso de Azure emite registros de recursos y proporciona datos abundantes y frecuentes sobre el funcionamiento de ese recurso. Los registros se capturan por solicitud y también se denominan "registros de plano de datos". Consulte configuración de diagnósticos en Azure Monitor para obtener información general recomendada sobre la funcionalidad en Azure. El contenido de estos registros varía según el tipo de recurso. En Azure Cache for Redis, hay dos opciones disponibles para registrar:

  • Métricas de caché (es decir, "AllMetrics") usadas para métricas de registro de Azure Monitor
  • Los registros de conexión registran las conexiones a la caché con fines de seguridad y diagnóstico.

Ámbito de disponibilidad

Nivel Básico, Estándar y Premium Enterprise y Enterprise Flash
Métricas de caché
Registros de conexión

Métricas de caché

Azure Cache for Redis emite muchas métricas que son útiles para registrar, como la carga del servidor y las conexiones por segundo. Al seleccionar la opción AllMetrics, estas y otras métricas de caché se podrán registrar. Es posible configurar cuánto tiempo se conservarán las métricas. Consulte aquí un ejemplo de exportación de métricas de caché a una cuenta de almacenamiento.

Registros de conexión

Azure Cache for Redis usa la configuración de diagnóstico de Azure para registrar información sobre las conexiones de cliente a la caché. El registro y el análisis de esta configuración de diagnóstico le ayudarán a comprender quién se conecta a las cachés y la marca de tiempo de esas conexiones. Los datos del registro se pueden usar para identificar el ámbito de una vulneración de seguridad y con fines de auditoría de seguridad.

Diferencias entre los niveles de Azure Cache for Redis

La implementación de los registros de conexión es ligeramente diferente entre los niveles:

  • Las memorias caché de nivel Básico, Estándar y Premium sondean las conexiones de cliente por dirección IP, incluido el número de conexiones que se originen en cada dirección IP única. Los registros no son acumulativos. Representan instantáneas a un momento dado tomadas a intervalos de 10 segundos. Los eventos de autenticación (correctos y erróneos) y los eventos de desconexión no se registrarán en estos niveles.
  • Las memorias caché de nivel Enterprise y Enterprise Flash usan la funcionalidad de eventos de conexión de auditoría integrada en Redis Enterprise. Los eventos de conexión de auditoría permiten registrar todos los eventos de conexión, desconexión y autenticación, incluidos los eventos de autenticación con errores.

Los registros de conexión generados tienen un aspecto similar entre los niveles, pero con algunas diferencias. Los dos formatos se muestran con más detalle más adelante en el artículo.

Importante

El registro de conexiones de los niveles Básico, Estándar y Premium sondea las conexiones de cliente actuales en la caché. Las mismas direcciones IP de cliente aparecen una y otra vez. El registro en los niveles Enterprise y Enterprise Flash se centra en cada evento de conexión. Los registros solo se producen cuando se produjo el evento real por primera vez.

Requisitos previos y limitaciones del registro de conexiones

Niveles Básico, Estándar y Premium

  • Dado que los registros de conexión de estos niveles constan de instantáneas de un momento dado tomadas cada 10 segundos, las conexiones que se establezcan y se quiten entre intervalos de 10 segundos no se registrarán.
  • Los eventos de autenticación no se registran.
  • Toda la configuración de diagnóstico podría tardar hasta 90 minutos en empezar a fluir al destino seleccionado.
  • La habilitación de los registros de conexión podría provocar una pequeña degradación del rendimiento de la instancia de caché.
  • Solo se admite el plan de precios de registros de Analytics cuando se transmiten registros a Azure Log Analytics. Para obtener más información, consulte Precios de Azure Monitor.

Niveles Enterprise y Enterprise Flash

  • Cuando se use la directiva de clúster de OSS, los registros se emitirán desde cada nodo de datos. Cuando se use la directiva de clúster de empresa, solo el nodo que se use como proxy emitirá registros. Ambas versiones siguen mandando todas las conexiones a la memoria caché. Esto es solo una diferencia arquitectónica.
  • La pérdida de datos (es decir, la falta de un evento de conexión) es poco frecuente, pero posible. La pérdida de datos suele deberse a problemas de red.
  • Los registros de desconexión aún no son totalmente estables y es posible que se pierdan eventos.
  • Dado que los registros de conexión de los niveles Enterprise se basan en eventos, tenga cuidado con las directivas de retención. Por ejemplo, si la retención se estableciera en 10 días y un evento de conexión se produjo hace 15 días, esa conexión podría existir, pero el registro de esa conexión no se conservará.
  • Si usase la replicación geográfica activa, el registro deberá configurarse para cada instancia de caché del grupo de replicación geográfica de forma individual.
  • Toda la configuración de diagnóstico podría tardar hasta 90 minutos en empezar a fluir al destino seleccionado.
  • La habilitación de los registros de conexión podría provocar una pequeña degradación del rendimiento de la instancia de caché.

Nota

Siempre es posible usar los comandos INFO o CLIENT LIST para comprobar quién está conectado a una instancia de caché a petición.

Importante

Al seleccionar los registros, es posible elegir Categorías o Grupos de categorías específicos, los cuales son agrupaciones predefinidas de registros de los servicios de Azure. Cuando se usen Grupos de categorías, ya no se podrán configurar las opciones de retención. Si necesitase determinar la duración de la retención de los registros de conexión, seleccione el elemento de la sección Categorías en su lugar.

Destinos de registro

Puede activar la configuración de diagnóstico para instancias de Azure Cache for Redis y enviar registros de recursos a los siguientes destinos:

  • Área de trabajo de Log Analytics: no es necesario que esté en la misma región que el recurso que se esté supervisando.
  • Cuenta de almacenamiento: debe estar en la misma región que la caché. Sin embargo, las cuentas de almacenamiento Premium no se admiten como destino.
  • Centro de eventos: la configuración de diagnósticos no puede tener acceso a los recursos del centro de eventos cuando están habilitadas las redes virtuales. Habilite la opción ¿Quiere permitir que los servicios de confianza de Microsoft puedan omitir este firewall? en los centros de eventos para conceder acceso a los recursos del centro de eventos. El centro de eventos debe estar en la misma región que el almacén.
  • Solución de partners: es posible encontrar una lista de posibles soluciones de registro de asociados aquí

Para más información sobre los requisitos de diagnóstico, consulte Configuración de diagnóstico.

Se le aplicarán las tarifas de datos normales por el uso de la cuenta de almacenamiento y del centro de eventos al enviar registros de diagnóstico a cualquier destino. La facturación se realiza en Azure Monitor, no en Azure Cache for Redis. Al enviar registros a Log Analytics, solo se le cobrará por la ingesta de datos de Log Analytics.

Para más información sobre los precios, consulte Precios de Azure Monitor.

Habilitar el registro de conexión en Azure Portal

  1. Inicie sesión en Azure Portal.

  2. Vaya a la cuenta de Azure Cache for Redis. Abra el panel Configuración de diagnóstico en la sección Supervisión a la izquierda. Después, seleccione Agregar configuración de diagnóstico.

    Select diagnostics

  3. En el panel Configuración de diagnóstico, seleccione ConnectedClientList en Categorías.

    Para obtener más información sobre los datos registrados, consulte el contenido de los registros de conexión a continuación.

  4. Una vez que seleccione ConnectedClientList, envíe los registros al destino que prefiera. Seleccione la información en el panel de trabajo.

    Select enable resource-specific

Habilitar el registro de conexión en la API de REST

Use la API REST de Azure Monitor para crear una configuración de diagnóstico a través de la consola interactiva. Para más información, vea el tema sobre creación o actualización.

Solicitud

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

encabezados

Parámetros y encabezados Valor y descripción
name El nombre de la configuración de diagnóstico.
resourceUri subscriptions/{SUBSCRIPTION_ID}/resourceGroups/{RESOURCE_GROUP}/providers/Microsoft.Cache/Redis/{CACHE_NAME}
api-version 2017-05-01-versión preliminar
Content-Type application/json

Cuerpo

{
    "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 el registro de conexiones mediante la CLI de Azure

Use el comando az monitor diagnostic-settings create para crear una configuración de diagnóstico con la CLI de Azure. Para más información sobre el comando y las descripciones de parámetros, consulte Creación de una configuración de diagnóstico para enviar los registros y las métricas de la plataforma a diferentes destinos. En este ejemplo, se muestra cómo usar la CLI de Azure para transmitir datos a cuatro puntos de conexión 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

Contenido de los registros de conexión

Estos campos y propiedades aparecen en la categoría de registro ConnectedClientList. En Azure Monitor, los registros se recopilan en la tabla ACRConnectedClientList con el nombre MICROSOFT.CACHE para el proveedor de recursos.

Propiedad o campo de Azure Storage Propiedad de registros de Azure Monitor Descripción
time TimeGenerated Marca de tiempo de cuándo se generó el registro en UTC.
location Location Ubicación (región) en la que se ha accedido a la instancia de Azure Cache for Redis.
category N/D Categorías de registro disponibles: ConnectedClientList.
resourceId _ResourceId Recurso Azure Cache for Redis para el que están habilitados los registros.
operationName OperationName La operación de Redis asociada a la entrada de registro.
properties N/D El contenido de este campo se describe en las filas siguientes.
tenant CacheName Nombre de la instancia de Azure Cache for Redis.
roleInstance RoleInstance Instancia de rol que registró la lista de clientes.
connectedClients.ip ClientIp Dirección IP del cliente de Redis.
connectedClients.privateLinkIpv6 PrivateLinkIpv6 La dirección IPv6 del vínculo privado del cliente de Redis (si procede).
connectedClients.count ClientCount Número de conexiones de cliente de Redis desde la dirección IP asociada.

Registro de la cuenta de almacenamiento de ejemplo

Si envía los registros a una cuenta de almacenamiento, el contenido de los registros tiene este aspecto.

{
    "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"
}

Consultas de Log Analytics

Nota:

Para ver un tutorial sobre cómo usar Azure Log Analytics, consulte Introducción a Log Analytics en Azure Monitor. Recuerde que los registros podrían tardar hasta 90 minutos en aparecer en Log Analtyics.

Estas son algunas consultas básicas que se usarán como modelos.

  • Conexiones cliente de Azure Cache for Redis por hora en el intervalo de direcciones IP especificado:
let IpRange = "10.1.1.0/24";
ACRConnectedClientList
// For particular datetime filtering, add '| where TimeGenerated between (StartTime .. EndTime)'
| where ipv4_is_in_range(ClientIp, IpRange)
| summarize ConnectionCount = sum(ClientCount) by TimeRange = bin(TimeGenerated, 1h)
  • Direcciones IP de cliente de Redis únicas que se han conectado a la memoria caché:
ACRConnectedClientList
| summarize count() by ClientIp

Pasos siguientes

Para más información sobre cómo crear una configuración de diagnóstico mediante Azure Portal, la CLI o PowerShell, consulte el artículo Creación de una configuración de diagnóstico para enviar los registros y las métricas de la plataforma a diferentes destinos.