Мониторинг Служебной шины Azure

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

Общие сведения об Azure Monitor

Служебная шина Azure создает данные мониторинга с помощью Azure Monitor — комплексной службы мониторинга в Azure. Azure Monitor предоставляет полный набор функций для мониторинга ресурсов в Azure и других облаках, а также в локальной среде.

Начните со статьи Мониторинг ресурсов Azure с помощью Azure Monitor, в которой описаны следующие понятия:

  • Общие сведения об Azure Monitor
  • Затраты, связанные с мониторингом
  • данные мониторинга, собираемые в Azure;
  • настройка сбора данных;
  • стандартные средства Azure для анализа данных мониторинга и оповещения.

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

Совет

Сведения о затратах, связанных с Azure Monitor, см. в статье о затратах и использовании Azure Monitor. О том, сколько времени потребуется для отображения данных в Azure Monitor, см. в статье "Сроки приема данных журналов в Azure Monitor".

Мониторинг данных из Служебной шины Azure

Служебная шина Azure собирает данные мониторинга тех же типов, что и другие ресурсы Azure, описанные в статье Мониторинг данных из ресурсов Azure.

Подробную справку по журналам и метрикам, создаваемым Служебной шиной Azure, см. в справочнике по данным мониторинга Служебной шины Azure.

Сбор и маршрутизация

Метрики платформы и журнал действий собираются и сохраняются автоматически, но их можно направить в другие расположения с помощью параметра диагностики.

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

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

Примечание.

Azure Monitor не содержит измерения в экспортированных данных метрик, которые отправляются в место назначения (например, в службу хранилища Azure, Центры событий Azure или Log Analytics).

Хранилище Azure

Данные журнала диагностики хранятся в контейнерах insights-logs-operationlogs и insights-metrics-pt1m.

Пример URL-адреса для журнала операций: https://<Azure Storage account>.blob.core.windows.net/insights-logs-operationallogs/resourceId=/SUBSCRIPTIONS/<Azure subscription ID>/RESOURCEGROUPS/<Resource group name>/PROVIDERS/MICROSOFT.SERVICEBUS/NAMESPACES/<Namespace name>/y=<YEAR>/m=<MONTH-NUMBER>/d=<DAY-NUMBER>/h=<HOUR>/m=<MINUTE>/PT1H.json. URL-адрес для журнала метрик аналогичен.

Центры событий Azure

Данные журнала диагностики хранятся в концентраторах событий insights-logs-operationlogs и insights-metrics-pt1m. Вы можете также выбрать собственный концентратор событий.

Служба Log Analytics

Данные журнала диагностики хранятся в таблицах AzureDiagnostics и AzureMetrics.

Пример выходных данных журнала операций (отформатированных)

{
	"Environment": "PROD",
	"Region": "East US",
	"ScaleUnit": "PROD-BL2-002",
	"ActivityId": "a097a88a-33e5-4c9c-9c64-20f506ec1375",
	"EventName": "Retrieve Namespace",
	"resourceId": "/SUBSCRIPTIONS/<Azure subscription ID>/RESOURCEGROUPS/SPSBUS0213RG/PROVIDERS/MICROSOFT.SERVICEBUS/NAMESPACES/SPSBUS0213NS",
	"SubscriptionId": "<Azure subscription ID>",
	"EventTimeString": "5/18/2021 3:25:55 AM +00:00",
	"EventProperties": "{\"SubscriptionId\":\"<Azure subscription ID>\",\"Namespace\":\"spsbus0213ns\",\"Via\":\"https://spsbus0213ns.servicebus.windows.net/$Resources/topics?api-version=2017-04&$skip=0&$top=100\",\"TrackingId\":\"a097a88a-33e5-4c9c-9c64-20f506ec1375_M8CH3_M8CH3_G8\"}",
	"Status": "Succeeded",
	"Caller": "rpfrontdoor",
	"category": "OperationalLogs"
}

Пример выходных данных журнала метрик (отформатированных)

{
	"count": 1,
	"total": 4,
	"minimum": 4,
	"maximum": 4,
	"average": 4,
	"resourceId": "/SUBSCRIPTIONS/<Azure subscription ID>/RESOURCEGROUPS/SPSBUS0213RG/PROVIDERS/MICROSOFT.SERVICEBUS/NAMESPACES/SPSBUS0213NS",
	"time": "2021-05-18T03:27:00.0000000Z",
	"metricName": "IncomingMessages",
	"timeGrain": "PT1M"
}

Внимание

Для включения этих параметров требуются дополнительные службы Azure (учетная запись хранения, концентратор событий или Log Analytics), что может привести к увеличению затрат. Рассчитать оценочную стоимость можно с помощью калькулятора цен Azure.

Примечание.

В настоящее время при включении метрик в диагностическом параметре сведения об измерениях не включаются в состав данных, передаваемых в учетную запись хранения, концентратор событий или Log Analytics.

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

Анализ метрик

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

Обозреватель метрик с выбранным пространством имен Служебной шины

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

Совет

Данные метрик Azure Monitor доступны в течение 90 дней, но при создании диаграмм визуализацию можно выполнить только за 30 дней. Например, если требуется визуализировать 90-дневный период, его необходимо разбить на три диаграммы по 30 дней.

Фильтрация и разбиение

Для метрик, поддерживающих измерения, можно применять фильтры по значению измерения — Например, добавьте фильтр с параметром EntityName, имеющим значение имени очереди или раздела. Метрики можно разбивать по измерениям, чтобы наглядно сравнивать различные их сегменты. Дополнительные сведения о фильтрации и разбиении см. в статье "Расширенные возможности обозревателя метрик Azure".

анализ журналов;

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

Внимание

Если выбрать в меню Служебной шины Azure пункт Журналы, откроется Log Analytics с текущей рабочей областью в качестве области запроса. Это означает, что запросы к журналам будут содержать данные только из этого ресурса. Если требуется выполнить запрос, включающий данные из других баз данных или служб Azure, выберите в меню Azure Monitor пункт Журналы. Подробные сведения см. в статье Область запросов журнала и временной диапазон в Azure Monitor Log Analytics.

Дополнительные запросы Kusto

Ниже приведены примеры запросов, которые можно использовать для мониторинга ресурсов Служебной шины Azure.

  • Получение операций управления за последние 7 дней.

    AzureDiagnostics
    | where TimeGenerated > ago(7d)
    | where ResourceProvider =="MICROSOFT.SERVICEBUS"
    | where Category == "OperationalLogs"
    | summarize count() by EventName_s, _ResourceId
    
  • Получите журналы аудита времени выполнения, созданные за последний час.

    AzureDiagnostics
    | where TimeGenerated > ago(1h)
    | where ResourceProvider =="MICROSOFT.SERVICEBUS"
    | where Category == "RuntimeAuditLogs"    
    
  • Получение попыток обращения к хранилищу ключей, завершившихся ошибкой "ключ не найден".

    AzureDiagnostics
    | where ResourceProvider == "MICROSOFT.SERVICEBUS" 
    | where Category == "Error" and OperationName == "wrapkey"
    | project Message, _ResourceId
    
  • Получение ошибок за последние 7 дней.

    AzureDiagnostics
    | where TimeGenerated > ago(7d)
    | where ResourceProvider =="MICROSOFT.SERVICEBUS"
    | where Category == "Error" 
    | summarize count() by EventName_s, _ResourceId
    
  • Получение операций, выполненных с хранилищем ключей для отключения или восстановления ключа.

    AzureDiagnostics
    | where ResourceProvider == "MICROSOFT.SERVICEBUS"
    | where (Category == "info" and (OperationName == "disable" or OperationName == "restore"))
    | project Message, _ResourceId
    
  • Получение всех сущностей, которые были удалены автоматически.

    AzureDiagnostics
    | where ResourceProvider == "MICROSOFT.SERVICEBUS"
    | where Category == "OperationalLogs"
    | where EventName_s startswith "AutoDelete"
    | summarize count() by EventName_s, _ResourceId