Отслеживание Базы данных SQL Azure с помощью Azure Monitor

Область применения: База данных SQL Azure

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

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

Обзорная страница мониторинга на портале Azure

Просмотрите метрики Azure Monitor для всех подключенных ресурсов, перейдя на страницу Azure Monitor непосредственно в портал Azure. Или на странице обзора базы данных Azure SQL выберите Метрики в заголовке "Мониторинг", чтобы получить доступ к Azure Monitor.

Аналитика SQL для Azure Monitor (предварительная версия)

Для некоторых служб в Azure на портале Azure имеется предварительно созданная панель мониторинга, которая может служить отправной точкой для отслеживания службы. Такие панели мониторинга называются аналитическими, они отключены по умолчанию. Дополнительные сведения об аналитике SQL для Azure Monitor для всех продуктов в семействе Azure SQL см. в статье Отслеживание развертываний SQL с помощью аналитики SQL (предварительная версия).

После создания профиля мониторинга можно настроить метрики Azure Monitor SQL Insights для конкретного SQL для Azure SQL Базы данных, Управляемый экземпляр SQL и SQL Server на виртуальных машинах Azure.

Примечание

Аналитика SQL Azure (предварительная версия) предоставляет средства интеграции с платформой Azure Monitor, на которой многие решения для отслеживания уже вышли из стадии активной разработки. Другие параметры отслеживания можно найти в статье Отслеживание и настройка производительности Базы данных SQL Azure и Управляемого экземпляра SQL Azure.

Данные мониторинга

База данных SQL Azure собирает данные отслеживания тех же типов, что и другие ресурсы Azure, описанные в статье Отслеживание данных из ресурсов Azure.

Подробные сведения о метриках и журналах, создаваемых в Базе данных SQL Azure, см. в справочнике Отслеживание Базы данных SQL Azure с помощью Azure Monitor.

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

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

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

К доступным параметрам диагностики относятся:

  • log: SQLInsights, AutomaticTuning, QueryStoreRuntimeStatistics, QueryStoreWaitStatistics, Errors, DatabaseWaitStatistics, Timeouts, Blocks, Deadlocks
  • metric: все метрики Azure Monitor в категориях Basic и InstanceAndAppAdvanced
  • destination details: отправить в рабочую область Log Analytics, архивировать в учетной записи хранения, передать в концентратор событий, отправить в решение партнера

Дополнительные сведения о журналах ресурсов и доступных параметрах диагностики см. в разделе Телеметрия диагностики для экспорта.

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

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

Вы можете анализировать метрики для базы данных Azure SQL вместе с метриками из других служб Azure с помощью обозревателя метрик, открыв метрики в меню "Монитор" в портал Azure. Подробные сведения об использовании этого средства см. в статье Начало работы с обозревателем метрик Azure.

Список метрик платформы, собираемых для Базы данных SQL Azure, см. в разделе "Метрики" справочника Отслеживание данных Базы данных SQL Azure.

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

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

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

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

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

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

Список таблиц, используемых журналами Azure Monitor и запрашиваемых Log Analytics, см. в таблицах журналов Azure Monitor для базы данных Azure SQL.

Примеры запросов Kusto

Важно!

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

Примечание

Иногда может потребоваться до 15 минут между отправкой события и появлением в рабочей области Log Analytics.

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

Пример 1. Log_write_percent за последний час

AzureMetrics
| where ResourceProvider == "MICROSOFT.SQL"
| where TimeGenerated >= ago(60min)
| where MetricName in ('log_write_percent')
| parse _ResourceId with * "/microsoft.sql/servers/" Resource
| summarize Log_Maximum_last60mins = max(Maximum), Log_Minimum_last60mins = min(Minimum), Log_Average_last60mins = avg(Average) by Resource, MetricName

Пример 2. Типы ожидания SQL Server за последние 15 минут

AzureDiagnostics
| where ResourceProvider == "MICROSOFT.SQL"
| where TimeGenerated >= ago(15min)
| parse _ResourceId with * "/microsoft.sql/servers/" LogicalServerName "/databases/" DatabaseName
| summarize Total_count_15mins = sum(delta_waiting_tasks_count_d) by LogicalServerName, DatabaseName, wait_type_s

Пример 3. Взаимоблокировки SQL Server за последние 60 минут

AzureMetrics
| where ResourceProvider == "MICROSOFT.SQL"
| where TimeGenerated >= ago(60min)
| where MetricName in ('deadlock')
| parse _ResourceId with * "/microsoft.sql/servers/" Resource
| summarize Deadlock_max_60Mins = max(Maximum) by Resource, MetricName

Пример 4. Средняя загрузка ЦП за последний час

AzureMetrics
| where ResourceProvider == "MICROSOFT.SQL"
| where TimeGenerated >= ago(60min)
| where MetricName in ('cpu_percent')
| parse _ResourceId with * "/microsoft.sql/servers/" Resource
| summarize CPU_Maximum_last60mins = max(Maximum), CPU_Minimum_last60mins = min(Minimum), CPU_Average_last60mins = avg(Average) by Resource, MetricName

видны узлы

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

Если вы создаете или запускаете приложение в Azure, в Azure Monitor Application Insights могут быть предоставлены дополнительные типы оповещений.

Вы также можете настроить оповещения с помощью Azure CLI или PowerShell. Пример: использование PowerShell для мониторинга и масштабирования отдельной базы данных в Azure SQL Database.

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

Название сигнала Оператор Тип агрегирования Пороговое значение Описание
Процент DTU Больше Среднее 80 Когда среднее значение DTU превышает 80 %
Log IO percentage Больше Среднее 80 Когда среднее значение ввода-вывода журнала превышает 80 %
Взаимоблокировки* Больше Count 1 Когда количество взаимоблокировок превышает 1
Процент использования ЦП Больше Среднее 80 Когда средняя загрузка ЦП превышает 80 %

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

Дальнейшие действия