Поделиться через


Мониторинг данных Управляемого Redis (предварительная версия) Azure с помощью параметров диагностики

Параметры диагностики в Azure используются для сбора журналов ресурсов. Ресурс Azure выдает журналы ресурсов и предоставляет широкие и частые данные об операции этого ресурса. Эти журналы записываются на запрос и также называются журналами плоскости данных. Ознакомьтесь с параметрами диагностики в Azure Monitor , чтобы ознакомиться с рекомендуемыми функциями в Azure. Содержимое этих журналов зависит от типа ресурса. В Управляемом Redis Azure (предварительная версия) доступны два варианта для регистрации:

  • Метрики кэша (то есть AllMetrics), используемые для регистрации метрик из Azure Monitor
  • Журналы подключений регистрируют подключения к кэшу в целях безопасности и диагностики.

Метрики кэша

Управляемый Redis (предварительная версия) Azure выдает множество метрик, таких как загрузка сервера и подключения в секунду , которые полезны для журналов. Выбор параметра AllMetrics позволяет регистрировать эти и другие метрики кэша. Вы можете настроить, сколько времени хранятся метрики. См . здесь пример экспорта метрик кэша в учетную запись хранения.

Журналы подключений

Управляемый Redis Azure использует параметры диагностики Azure для регистрации сведений о клиентских подключениях к кэшу. Ведение журнала и анализ этого параметра диагностики помогает понять, кто подключается к вашим кэшам, и узнать метку времени этих подключений. Данные журнала можно использовать для определения области нарушения безопасности и в целях аудита безопасности.

Управляемый Redis Azure использует функции событий подключения аудита, встроенные в стек Redis Enterprise. События аудита подключения позволяют регистрировать все события подключения, отключения и проверки подлинности, включая события проверки подлинности сбоем.

Внимание

Ведение журнала в Управляемом Redis в Azure сосредоточено на каждом событии подключения. Журналы происходят только при первом возникновении фактического события.

Предварительные требования и ограничения ведения журнала подключений

  • При использовании политики кластеров OSS журналы создаются из каждого узла данных. При использовании корпоративной политики кластера только узел, используемый в качестве прокси-сервера, выдает журналы. Обе версии по-прежнему охватывают все подключения к кэшу. Это просто разница в архитектуре.
  • Потеря данных (т. е. отсутствие события подключения) является редкой, но возможной. Потеря данных обычно вызвана проблемами сети.
  • Журналы отключения пока не полностью стабильны и события могут быть пропущены.
  • Так как журналы подключений в Управляемом Redis Azure основаны на событиях, будьте осторожны с политиками хранения. Например, если срок хранения равен 10 дней, а событие подключения произошло 15 дней назад, это подключение может по-прежнему существовать, но журнал для этого подключения не сохраняется.
  • При использовании активной георепликации необходимо настроить ведение журнала для каждого экземпляра кэша в группе георепликации по отдельности.
  • Все параметры диагностики могут занять до 90 минут , чтобы начать поток в выбранное место назначения.
  • Включение журналов подключений может привести к снижению производительности экземпляра Redis.

Примечание.

Всегда можно использовать команды INFO или CLIENT LIST , чтобы проверить, кто подключен к экземпляру кэша по запросу.

Внимание

При выборе журналов можно выбрать определенные группы категорий или категорий, которые являются предопределенными группами журналов в службах Azure. При использовании групп категорий больше не удается настроить параметры хранения. Если необходимо определить длительность хранения для журналов подключений, выберите элемент в разделе "Категории ".

Назначения журналов

Вы можете включить параметры диагностики для экземпляров Управляемого Redis в Azure и отправить журналы ресурсов в следующие назначения:

  • Рабочая область Log Analytics — не обязательно должна находиться в том же регионе, что и отслеживаемый ресурс.
  • Учетная запись хранения — должна находиться в том же регионе, что и кэш. Однако учетные записи хранения класса Premium не поддерживаются в качестве назначения.
  • Концентратор событий — параметры диагностики не могут получить доступ к ресурсам концентраторов событий, если включены виртуальные сети. Установите флажок Разрешить доверенным службам Майкрософт обходить этот параметр брандмауэра в концентраторах событий, чтобы предоставить доступ к ресурсам концентраторов событий. Концентратор событий должен находиться в том же регионе, что и кэш.
  • Партнерское решение — список потенциальных решений для ведения журналов партнеров можно найти здесь

Дополнительные сведения о требованиях к диагностике см. в статье Параметры диагностики.

Вы взимаете обычные тарифы данных для учетной записи хранения и использования концентратора событий при отправке журналов диагностики в любое место назначения. Плата взимается в Azure Monitor, а не в Управляемом Redis Azure. При отправке журналов в Log Analytics оплачивается только прием данных в Log Analytics.

Дополнительные сведения о ценах см. на странице цен Azure Monitor.

Включение ведения журнала подключений с помощью портал Azure

  1. Войдите на портал Azure.

  2. Перейдите к учетной записи Управляемого Redis в Azure. Откройте область "Параметры диагностики— аудит" в разделе "Мониторинг" слева. Затем выберите Добавить параметр диагностики. Снимок экрана: параметры диагностики — аудит, выбранный в меню

  3. В области "Параметры диагностики — аудит" выберите события подключения из категорий.

    Дополнительные сведения о зарегистрированных данных см. в разделе "Содержимое журналов подключений".

  4. Выбрав события подключения, отправьте журналы в предпочитаемое место назначения. Выберите сведения в рабочей области. Снимок экрана: события подключения, которые проверяются в рабочей области.

Включение ведения журнала подключений с помощью REST API

Для создания параметра диагностики через интерактивную консоль используйте REST API Azure Monitor. Дополнительные сведения см. в статье о создании или обновлении фильтров учетной записи.

Запросить

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

Заголовки

Параметры и заголовки Значение и описание
name Имя параметра диагностики.
resourceUri subscriptions/{SUBSCRIPTION_ID}/resourceGroups/{RESOURCE_GROUP}/providers/Microsoft.Cache/RedisEnterprise/{CACHE_NAME}/database/default
api-version 2017-05-01-preview
Content-Type application/json

Текст

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

Включение ведения журнала подключений с помощью Azure CLI

Используйте команду az monitor diagnostic-settings create, чтобы создать параметр диагностики в Azure CLI. Дополнительные сведения о командах и параметрах см. в статье Создание параметров диагностики для отправки журналов платформы и метрик в различные места назначения. В этом примере показано, как использовать Azure CLI для потоковой передачи данных в четыре разных конечных точки:

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

Содержимое журналов подключений

Эти поля и свойства отображаются в категории журнала ConnectionEvents. В Azure Monitor данные журналов передаются в таблицу REDConnectionEvents с именем поставщика ресурсов MICROSOFT.CACHE.

Поле или свойство службы хранилища Azure Свойство журналов Azure Monitor Description
time TimeGenerated Метка времени (UTC) при записи журнала событий.
location Location Доступ к расположению (региону) экземпляра Управляемого Redis в Azure.
category Н/Д Доступные категории журналов: ConnectionEvents.
resourceId _ResourceId Ресурс Управляемого Redis Azure, для которого включены журналы.
operationName OperationName Операция Redis, связанная с записью журнала.
properties Н/Д Содержимое этого поля описано в строках, приведенных ниже.
eventEpochTime EventEpochTime Метка времени UNIX (количество секунд с 1 января 1970 г.), когда событие произошло в формате UTC. Метка времени можно преобразовать в формат datetime с помощью функции unixtime_seconds_todatetime в рабочей области Log Analytics.
clientIP ClientIP IP-адрес клиента Redis. При использовании хранилища Azure IP-адрес — это формат IPv4 или IPv6 приватного канала на основе типа кэша. Если используется Log Analytics, результат всегда находится в IPv4, в качестве отдельного поля IPv6 предоставляется.
Н/Д PrivateLinkIPv6 Адрес IPv6 клиента Redis (только при использовании Приватный канал и log analytics).
id ConnectionId Уникальный идентификатор подключения, назначенный Redis.
eventType EventType Тип события подключения (new_conn, аутентификации или close_conn).
eventStatus EventStatus Результаты запроса проверки подлинности в виде кода состояния (применимо только для события проверки подлинности).

Примечание.

Если используется приватная ссылка, будет зарегистрирован только IPv6-адрес (если вы не выполняете потоковую передачу данных в log analytics). IPv6-адрес можно преобразовать в эквивалентный IPv4-адрес, просмотрев последние четыре байта данных в IPv6-адресе. Например, в адресе IPv6 приватного канала "fd40:8913:31:6810:6c31:200:a01:104", последние четыре байта в шестнадцатеричном формате : "0a", "01", "01" и "04". (Обратите внимание, что начальные нули опущены после каждой двоеточия.) Они соответствуют "10", "1", "1", "1" и "4" в десятичном разряде, что дает нам IPv4-адрес "10.1.1.4".

Пример журнала учетной записи хранения

Если вы отправляете журналы в учетную запись хранения, журнал события подключения выглядит следующим образом:

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

Журнал события проверки подлинности выглядит следующим образом:

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

Журнал события отключения выглядит следующим образом:

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

Следующие шаги

Подробные инструкции по созданию параметра диагностики с помощью портала Azure, Azure CLI или PowerShell см. в статье Создание параметра диагностики для сбора журналов и метрик платформы в Azure.