Кэш Azure для Redis предлагает два варианта мониторинга в параметрах диагностики:
-
Метрики кэша регистрируют метрики Azure Monitor о операциях кэша.
-
Журналы подключений регистрируют подключения к кэшу. Azure записывает эти журналы, также называемые журналами плоскости данных, на запрос. Содержимое журналов подключений зависит от типа ресурса.
Общие сведения о функциях мониторинга и ведения журнала Azure Monitor см. в разделе "Параметры диагностики" в Azure Monitor.
Область доступности
Уровень |
Базовый, Стандартный и Премиум |
"Корпоративный" и Enterprise Flash |
Метрики кэша |
Да |
Да |
Журналы подключений |
Да |
Да |
Метрики кэша
Azure Redis выдает множество полезных метрик, таких как загрузка сервера и подключения в секунду. Полный список метрик Redis для Azure см. в разделе "Метрики".
Чтобы регистрировать метрики кэша, включите параметр AllMetrics в параметрах диагностики кэша в соответствии с инструкциями по уровню. Вы можете настроить, сколько времени хранятся метрики. Дополнительные сведения о ведении журнала и экспорте метрик см. в разделе "Кэш Azure для Redis".
Журналы подключений
Кэш Azure для Redis использует параметры диагностики Azure для регистрации сведений о подключении клиента к кэшу. Ведение журнала и анализ этих сведений в параметрах диагностики помогает понять, кто подключается к кэшу и когда. Вы можете использовать данные журнала для аудита безопасности или определить область проблем безопасности.
Примечание.
Вы всегда можете использовать команды redis-cli INFO или CLIENT LIST , чтобы проверить, кто подключен к экземпляру кэша по запросу.
Реализация журнала подключений и созданные журналы аналогичны уровням Redis Azure, но уровни "Базовый", "Стандартный" и "Премиум" имеют некоторые отличия от уровней Enterprise и Enterprise Flash.
Внимание
- В уровнях "Базовый", "Стандартный" и "Премиум" ведение журнала подключений опрашивает текущие клиентские подключения в кэше. Те же IP-адреса клиента могут отображаться многократно, пока их соединения продолжаются.
- На уровнях Enterprise и Enterprise Flash ведение журнала сосредоточено на событиях подключения. Ведение журнала происходит только при первом возникновении события подключения или другого события, связанного с подключением.
Требования и ограничения
Базовые, стандартные и премиум-уровни кэшируют клиентские подключения по IP-адресу, включая количество подключений, исходящих из каждого уникального IP-адреса. Эти логи не являются накопительными, а представляют собой моментальные снимки, фиксирующие текущий момент каждые 10 секунд. Эти уровни не регистрируют события успешной или неудачной проверки подлинности или события отключения.
Необходимо учитывать следующие ограничения.
- Поскольку журналы подключений на этих уровнях состоят из моментальных снимков состояния, сделанных каждые 10 секунд, подключения, установленные и удаленные в течение 10-секундного интервала, не фиксируются.
- События проверки подлинности и отключения не регистрируются.
- Параметры диагностики могут занять до 90 минут, чтобы данные начали поступать в выбранное вами место назначения.
- Ведение журнала подключений может привести к снижению производительности в кэше.
- Для передачи журналов в Log Analytics поддерживается исключительно тарифный план "Analytics Logs". Дополнительные сведения см. на странице цен на Azure Monitor.
Кэши уровня Enterprise и Enterprise Flash используют функциональность события аудита подключения, встроенную в Redis Enterprise. События аудита подключения позволяют регистрировать все события подключения, отключения и проверки подлинности, включая события проверки подлинности сбоем.
Необходимо учитывать следующие ограничения.
- При использовании политики кластера OSS журналы отправляются от каждого узла данных. При использовании политики кластера Enterprise только узел, используемый в качестве прокси-сервера, выдает журналы. Это различие является только архитектурой. Обе версии охватывают все подключения к кэшу.
- Потеря данных или отсутствие события подключения является редким, но возможно. Потеря данных обычно вызвана проблемами сети.
- Журналы отключения могут быть не полностью стабильными, а события могут быть пропущены.
- Так как журналы подключений на уровнях Enterprise основаны на событиях, рассмотрите политики хранения. Если срок хранения равен 10 дней, подключение, которое началось 15 дней назад, может по-прежнему существовать, но журнал для этого события подключения не сохраняется.
- При использовании активной георепликации необходимо настроить ведение журнала отдельно для каждого экземпляра кэша в группе георепликации.
- Параметры диагностики могут занять до 90 минут, чтобы данные начали поступать в выбранное вами место назначения.
- Ведение журнала подключений может привести к снижению производительности в кэше.
Внимание
При выборе журналов можно выбрать категории или группы категорий, которые являются предопределенными группами журналов в службах Azure. Если вы используете группы категорий, вы не можете настроить параметры хранения. Если необходимо задать длительность хранения для журналов подключений, выберите элемент в категориях . Дополнительные сведения см. в разделе "Группы категорий".
Целевое расположение для журналов
При включении параметров диагностики для экземпляра Redis Azure можно отправлять журналы ресурсов в следующие назначения:
Отправка в рабочую область Log Analytics. Рабочая область не обязательно должна находиться в том же регионе, что и отслеживаемый ресурс.
Archive to a storage account (Архивировать в учетной записи хранения). Учетная запись хранения должна находиться в том же регионе, что и кэш.
Stream to an event hub (Потоковая передача в концентратор событий). Концентратор событий должен находиться в том же регионе, что и кэш.
Параметры диагностики не могут получить доступ к ресурсам концентратора событий, если виртуальные сети включены. Включите параметр Разрешить доверенным службам Microsoft обход этого брандмауэра в Центрах событий Azure, чтобы предоставить доступ к ресурсам концентратора событий.
Отправьте партнеру для решения. Список потенциальных решений для ведения журналов партнеров см. в статье Расширение Azure с помощью собственных интеграций Azure — данные и хранилище.
При отправке журналов диагностики в учетную запись хранения или концентратор событий взимается плата по стандартным тарифам за передачу данных для любого из этих пунктов назначения. Плата взимается в Azure Monitor, а не в Azure Cache для Redis. При отправке журналов в Log Analytics взимается плата только за прием данных Log Analytics. Дополнительную информацию о ценах см. на странице цен Azure Monitor.
Включение параметров диагностики с помощью портала Azure
На странице портала Azure для кэша выберите параметры диагностики в разделе "Мониторинг " в области навигации слева.
На странице параметров диагностики выберите "Добавить параметр диагностики".
На странице параметров диагностики введите имя параметра диагностики и выберите нужные параметры мониторинга. Например, выберите AllMetrics, чтобы регистрировать все метрики и allLogs, чтобы регистрировать и список подключенных клиентов, и журнал аудита проверки подлинности MSEntra.
Выберите одно или несколько назначений и сведения о назначении, а затем нажмите кнопку "Сохранить".
На странице портала Azure для кэша в разделе Мониторинг на панели навигации слева выберите Настройки диагностики — Метрики для метрик или Настройки диагностики — Аудит для журналов.
На странице Диагностические настройки — Метрики или Диагностические настройки — Аудит, выберите Добавить параметр диагностики.
На странице параметров диагностики для метрик или журналов ресурсов введите имя параметра диагностики и выберите нужные параметры метрики или журнала ресурсов. На странице ведения журналов можно выбрать категорию события подключения, группу категорий аудит или все логи. Любой из этих вариантов включает ведение журнала подключений.
Выберите одно или несколько назначений и сведения о назначении, а затем нажмите кнопку "Сохранить".
Включение ведения журнала подключений с помощью REST API
Чтобы создать параметр диагностики, используйте REST API Azure Monitor в интерактивной консоли, как показано ниже. Дополнительные сведения см. в разделе "Параметры диагностики" — создание или обновление.
запрос
PUT https://management.azure.com/{resourceUri}/providers/Microsoft.Insights/diagnosticSettings/{name}?api-version=2017-05-01-preview
Параметры и заголовки
-
Content-Type
: application/json
-
name
: имя вашего параметра диагностики
-
resourceUri
: subscriptions/<your subscription id>/resourceGroups/<cache resource group>/providers/Microsoft.Cache/Redis/<cache name>
-
api-version
: 2017-05-01-preview
Пример текста
{
"properties": {
"storageAccountId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/apptest/providers/Microsoft.Storage/storageAccounts/appteststorage1",
"eventHubAuthorizationRuleId": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/montest/providers/microsoft.eventhub/namespaces/mynamespace/eventhubs/myeventhub/authorizationrules/myrule",
"eventHubName": "myeventhub",
"workspaceId": "/subscriptions/cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a/resourceGroups/insights-integration/providers/Microsoft.OperationalInsights/workspaces/myworkspace",
"logs": [
{
"category": "ConnectedClientList",
"enabled": true,
"retentionPolicy": {
"enabled": false,
"days": 0
}
}
]
}
}
запрос
PUT https://management.azure.com/{resourceUri}/providers/Microsoft.Insights/diagnosticSettings/{name}?api-version=2017-05-01-preview
Параметры и заголовки
-
Content-Type
: application/json
-
name
: имя вашего параметра диагностики
-
resourceUri
: subscriptions/<your subscription id>/resourceGroups/<cache resource group>/providers/Microsoft.Cache/RedisEnterprise/<cache name>
-
api-version
: 2017-05-01-preview
Пример текста
{
"properties": {
"storageAccountId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/apptest/providers/Microsoft.Storage/storageAccounts/myteststorage",
"eventHubAuthorizationRuleID": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/montest/providers/microsoft.eventhub/namespaces/mynamespace/authorizationrules/myrule",
"eventHubName": "myeventhub",
"marketplacePartnerId": "/subscriptions/dddd3d3d-ee4e-ff5f-aa6a-bbbbbb7b7b7b/resourceGroups/test-rg/providers/Microsoft.Datadog/monitors/mydatadog",
"workspaceId": "/subscriptions/cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a/resourceGroups/insights integration/providers/Microsoft.OperationalInsights/workspaces/myworkspace",
"logs": [
{
"category": "ConnectionEvents",
"enabled": true,
"retentionPolicy": {
"enabled": false,
"days": 0
}
}
]
}
}
Включение ведения журнала подключений с помощью Azure CLI
Используйте команду Azure CLI az monitor diagnostic-settings create
для создания параметра диагностики. Дополнительные сведения о описаниях команд и параметров см. в статье "Создание параметров диагностики для отправки журналов и метрик платформы в разные назначения".
В следующем примере показано, как использовать Azure CLI для потоковой передачи данных в четыре разных конечных точки:
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}/providers/Microsoft.Datadog/monitors/mydatadog
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
Содержимое журнала подключений
В категории журнала ConnectedClientList
отображаются следующие поля и свойства. В Azure Monitor журналы собираются в ACRConnectedClientList
таблице под именем MICROSOFT.CACHE
поставщика ресурсов.
Поле или свойство службы хранилища Azure |
Свойство журналов Azure Monitor |
Описание |
time |
TimeGenerated |
Момент времени в UTC, когда был создан журнал. |
location |
Location |
В регионе Azure, где был доступ к кэшу Redis Azure. |
category |
Н/Д |
Доступна категория журнала ConnectedClientList . |
resourceId |
_ResourceId |
Включены журналы ресурсов Redis в Azure. |
operationName |
OperationName |
Операция Redis, связанная с записью журнала. |
properties |
Н/Д |
См. следующие строки. |
tenant |
CacheName |
Имя экземпляра Redis Для Azure. |
roleInstance |
RoleInstance |
Экземпляр роли, зарегистрировавший список клиентов. |
connectedClients.ip |
ClientIp |
IP-адрес клиента Redis. |
connectedClients.privateLinkIpv6 |
PrivateLinkIpv6 |
Адрес IPv6 для частной связи клиента Redis, если применимо. |
connectedClients.count |
ClientCount |
Число клиентских подключений Redis из связанного IP-адреса. |
Пример журнала учетной записи хранения
Содержимое журнала, отправленного в учетную запись хранения, может выглядеть следующим образом.
{
"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/eeee4efe-ff5f-aa6a-bb7b-cccccc8c8c8c/RESOURCEGROUPS/AZURE-CACHE/PROVIDERS/MICROSOFT.CACHE/REDIS/MYCACHE",
"Level": 4,
"operationName": "Microsoft.Cache/ClientList"
}
Эти поля и свойства отображаются в категории журнала ConnectionEvents
. В Azure Monitor журналы собираются в REDConnectionEvents
таблице под именем MICROSOFT.CACHE
поставщика ресурсов.
Поле или свойство службы хранилища Azure |
Свойство журналов Azure Monitor |
Описание |
time |
TimeGenerated |
Момент времени в UTC, когда был создан журнал. |
location |
Location |
В регионе Azure, где был доступ к кэшу Redis Azure. |
category |
Н/Д |
Доступна категория журнала ConnectedClientList . |
resourceId |
_ResourceId |
Включены журналы ресурсов Redis в Azure. |
operationName |
OperationName |
Операция Redis, связанная с записью журнала. |
properties |
Н/Д |
См. следующие строки. |
eventEpochTime |
EventEpochTime |
Метка времени UTC UNIX или количество секунд с 1 января 1970 года, когда произошло событие. Метку времени можно преобразовать в datetime формат с помощью функции unixtime_seconds_todatetime в рабочей области Log Analytics. |
clientIP |
ClientIP |
IP-адрес клиента Redis. Если вы используете хранилище Azure, IP-адрес будет формата IPv4 или IPv6 Private Link в зависимости от типа кэша. Если вы используете Log Analytics, этот результат всегда находится в IPv4, так как есть отдельное поле IPv6. |
Н/Д |
PrivateLinkIPv6 |
Адрес IPv6 клиента Redis, выдаваемый только при использовании как Private Link, так и Log Analytics. |
id |
ConnectionId |
Уникальный идентификатор подключения, назначенный Redis. |
eventType |
EventType |
Тип события подключения: new_conn , auth или close_conn . |
eventStatus |
EventStatus |
Результаты запроса проверки подлинности в виде кода состояния. Применимо только для событий проверки подлинности. |
Примечание.
Если вы используете приватный канал, регистрируется только IPv6-адрес, если данные не передаются в Log Analytics. IPv6-адрес можно преобразовать в эквивалентный IPv4-адрес, используя последние четыре байта данных в IPv6-адресе. Например, в IPv6-адресе Private Link fd40:8913:31:6810:6c31:200:a01:104
последние четыре байта в шестнадцатеричном виде: 0a
, 01
, 01
и 04
. (В адресе ведущие нули после двоеточия опущены.) Эти значения соответствуют 10
, 1
, 1
, и 4
в десятичном формате, создавая IPv4-адрес 10.1.1.4
.
Примеры журналов учетной записи хранения
Журнал события подключения, отправленного в учетную запись хранения, может выглядеть следующим образом.
{
"time": "2023-01-24T10:00:02.3680050Z",
"resourceId": "/SUBSCRIPTIONS/ffff5f5f-aa6a-bb7b-cc8c-dddddd9d9d9d/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/ffff5f5f-aa6a-bb7b-cc8c-dddddd9d9d9d/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/ffff5f5f-aa6a-bb7b-cc8c-dddddd9d9d9d/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 или Azure PowerShell см. в статье "Создание параметров диагностики для сбора журналов и метрик платформы в Azure".