Monitorar dados do Azure Managed Redis (visualização) usando configuraçõ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 Azure Managed Redis (visualização), 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.
Métricas de cache
O Azure Managed Redis (visualização) emite muitas métricas, como Carga do Servidor e Conexões por Segundo, que são úteis para o 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 Azure Managed Redis usa as configurações de diagnóstico do Azure para registrar informações em conexões de cliente em 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.
O Azure Managed Redis utiliza a funcionalidade de eventos de ligação de auditoria incorporada na pilha 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.
Importante
O registro em log no Azure Managed Redis é 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
- 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 no Azure Managed Redis 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 de desempenho na instância do Redis.
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 Azure Managed Redis 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 Azure Managed 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
Inicie sessão no portal do Azure.
Navegue até sua conta do Azure Managed Redis. Abra o painel Configurações de diagnóstico - Auditoria na seção Monitoramento à esquerda. Em seguida, selecione Adicionar configuração de diagnóstico.
No painel Configuração de diagnóstico - Auditoria , selecione Eventos de conexão em Categorias.
Para obter mais detalhes sobre os dados registrados, consulte abaixo Conteúdo dos logs de conexão.
Depois de selecionar Eventos de conexão, envie seus logs para o destino de sua preferência. Selecione as informações no painel de trabalho.
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/RedisEnterprise/{CACHE_NAME}/databases/default |
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/myteststorage",
"eventHubAuthorizationRuleID": "/subscriptions/1a66ce04-b633-4a0b-b2bc-a912ec8986a6/resourceGroups/montest/providers/microsoft.eventhub/namespaces/mynamespace/authorizationrules/myrule",
"eventHubName": "myeventhub",
"marketplacePartnerId": "/subscriptions/abcdeabc-1234-1234-ab12-123a1234567a/resourceGroups/test-rg/providers/Microsoft.Datadog/monitors/mydatadog",
"workspaceId": "/subscriptions/4b9e8510-67ab-4e9a-95a9-e2f1e570ea9c/resourceGroups/insights integration/providers/Microsoft.OperationalInsights/workspaces/myworkspace",
"logs": [
{
"category": "ConnectionEvents",
"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/redisenterprise/{cacheName}/databases/default
--name {logName}
--logs '[{"category": "ConnectionEvents","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}/providers/Microsoft.Datadog/monitors/mydatadog
Conteúdo dos logs de conexão
Esses campos e propriedades aparecem na ConnectionEvents
categoria de log. No Azure Monitor, os REDConnectionEvents
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 (UTC) quando o log de eventos foi capturado. |
location |
Location |
O local (região) em que a instância do Azure Managed Redis foi acessada. |
category |
n/d | Categorias de log disponíveis: ConnectionEvents . |
resourceId |
_ResourceId |
O recurso Redis Gerenciado do Azure 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. |
eventEpochTime |
EventEpochTime |
O carimbo de data/hora do UNIX (número de segundos desde 1 de janeiro de 1970) quando o evento aconteceu em UTC. O carimbo de data/hora pode ser convertido para o formato datetime usando a função unixtime_seconds_todatetime no espaço de trabalho de análise de log. |
clientIP |
ClientIP |
O endereço IP do cliente Redis. Se estiver usando o armazenamento do Azure, o endereço IP será IPv4 ou formato IPv6 de link privado com base no tipo de cache. Se estiver usando o Log Analytics, o resultado estará sempre em IPv4, pois um campo IPv6 separado é fornecido. |
n/d | PrivateLinkIPv6 |
O endereço IPv6 do link privado do cliente Redis (emitido apenas se estiver usando o Private Link e a análise de log). |
id |
ConnectionId |
ID de conexão exclusivo atribuído pela Redis. |
eventType |
EventType |
Tipo de evento de conexão (new_conn, auth ou close_conn). |
eventStatus |
EventStatus |
Resultados de uma solicitação de autenticação como um código de status (aplicável apenas para evento de autenticação). |
Nota
Se o link privado for usado, apenas um endereço IPv6 será registrado (a menos que você esteja transmitindo os dados para a análise de log). Você pode converter o endereço IPv6 para o endereço IPv4 equivalente examinando os últimos quatro bytes de dados no endereço IPv6. Por exemplo, no endereço IPv6 do link privado "fd40:8913:31:6810:6c31:200:a01:104", os últimos quatro bytes em hexadecimal são "0a", "01", "01" e "04". (Observe que os zeros à esquerda são omitidos após cada dois pontos.) Estes correspondem a "10", "1", "1" e "4" em decimal, dando-nos o endereço IPv4 "10.1.1.4".
Exemplo de log de conta de armazenamento
Se você enviar seus logs para uma conta de armazenamento, um log para um evento de conexão terá esta aparência:
{
"time": "2023-01-24T10:00:02.3680050Z",
"resourceId": "/SUBSCRIPTIONS/4A1C78C6-5CB1-422C-A34E-0DF7FCB9BD0B/RESOURCEGROUPS/TEST/PROVIDERS/MICROSOFT.CACHE/REDISENTERPRISE/AUDITING-SHOEBOX/DATABASES/DEFAULT",
"category": "ConnectionEvents",
"location": "westus",
"operationName": "Microsoft.Cache/redisEnterprise/databases/ConnectionEvents/Read",
"properties": {
"eventEpochTime": 1674554402,
"id": 6185063009002,
"clientIP": "20.228.16.39",
"eventType": "new_conn"
}
}
E o log de um evento de autenticação tem esta aparência:
{
"time": "2023-01-24T10:00:02.3680050Z",
"resourceId": "/SUBSCRIPTIONS/4A1C78C6-5CB1-422C-A34E-0DF7FCB9BD0B/RESOURCEGROUPS/TEST/PROVIDERS/MICROSOFT.CACHE/REDISENTERPRISE/AUDITING-SHOEBOX/DATABASES/DEFAULT",
"category": "ConnectionEvents",
"location": "westus",
"operationName": "Microsoft.Cache/redisEnterprise/databases/ConnectionEvents/Read",
"properties": {
"eventEpochTime": 1674554402,
"id": 6185063009002,
"clientIP": "20.228.16.39",
"eventType": "auth",
"eventStatus": 8
}
}
E o log de um evento de desconexão tem esta aparência:
{
"time": "2023-01-24T10:00:03.3680050Z",
"resourceId": "/SUBSCRIPTIONS/4A1C78C6-5CB1-422C-A34E-0DF7FCB9BD0B/RESOURCEGROUPS/TEST/PROVIDERS/MICROSOFT.CACHE/REDISENTERPRISE/AUDITING-SHOEBOX/DATABASES/DEFAULT",
"category": "ConnectionEvents",
"location": "westus",
"operationName": "Microsoft.Cache/redisEnterprise/databases/ConnectionEvents/Read",
"properties": {
"eventEpochTime": 1674554402,
"id": 6185063009002,
"clientIP": "20.228.16.39",
"eventType": "close_conn"
}
}
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 .