Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
ПРИМЕНЯЕТСЯ К: База данных SQL Azure, Управляемый экземпляр SQL Azure
Осторожность
Аналитика SQL Azure (предварительная версия) предоставляет средства интеграции с платформой Azure Monitor, на которой многие решения мониторинга уже вышли из стадии активной разработки. Дополнительные параметры мониторинга см. в разделе "Мониторинг и настройка производительности" в Базе данных SQL Azure и Управляемом экземпляре SQL Azure.
Аналитика Azure SQL (предварительный просмотр) — это продвинутое облачное решение для мониторинга, позволяющее отслеживать производительность всех баз данных Azure SQL с возможностью масштабирования, объединением нескольких подписок в едином представлении. Аналитика SQL Azure собирает и отображает важные метрики производительности благодаря встроенным средствам аналитики, которые помогают устранять неполадки.
С помощью этих собранных метрик можно создавать пользовательские правила мониторинга и оповещения. Аналитика SQL Azure помогает выявлять проблемы на каждом уровне стека приложений. Аналитика SQL Azure использует метрики диагностики Azure вместе с представлениями Azure Monitor для представления данных обо всех базах данных SQL Azure в одной рабочей области Log Analytics. Azure Monitor помогает собирать, сопоставлять и визуализировать структурированные и неструктурированные данные.
Подключенные источники
Аналитика SQL Azure — это облачное решение для мониторинга, поддерживающее потоковую передачу данных телеметрии диагностики для всех баз данных SQL Azure. Так как Аналитика SQL Azure не использует агенты для подключения к Azure Monitor, она не поддерживает мониторинг размещенных локально или виртуальных машин SQL Server.
Подключенный источник | Поддерживается | Описание |
---|---|---|
Параметры диагностики | Да | Данные метрик и журналов Azure отправляются в журналы Azure Monitor напрямую из Azure. |
Учетная запись хранения Azure | нет | Azure Monitor не считывает данные из учетной записи хранения. |
агенты Windows | нет | Прямые агенты Windows не используются Аналитикой SQL Azure. |
агенты Linux | нет | Прямые агенты Linux не используются Аналитикой SQL Azure. |
группа управления System Center Operations Manager | нет | Прямое подключение агента Operations Manager к Azure Monitor не используется Аналитикой SQL Azure. |
Параметры аналитики Azure SQL
В приведенной ниже таблице описаны поддерживаемые варианты для двух версий панели мониторинга Аналитики SQL Azure, одной для базы данных SQL Azure и другой для баз данных Управляемого экземпляра SQL Azure.
Опция аналитики Azure SQL | Описание | Поддержка базы данных SQL | Поддержка SQL Managed Instance |
---|---|---|---|
Ресурс по типу | Подход, который учитывает все отслеживаемые ресурсы. | Да | Да |
Взгляды | Обеспечивает иерархическую детализацию интеллектуальных инсайтов о производительности. | Да | Да |
Ошибки | Предоставляет иерархическую детализацию по ошибкам SQL, которые произошли в базах данных. | Да | Да |
тайм-ауты | Предоставляет иерархическую детализацию по времени ожидания SQL, которые произошли в базах данных. | Да | нет |
Блокировки | Предоставляет иерархический анализ блокировок SQL, которые произошли в базах данных. | Да | нет |
Ожидания базы данных | Предоставляет иерархическую детализацию статистики ожиданий в SQL на уровне базы данных. Включает сводки по общему времени ожидания и времени ожидания на тип ожидания. | Да | нет |
Длительность запросов | Предоставляет иерархическую детализацию в статистике выполнения запросов, например длительность запроса, использование ЦП, использование операций ввода-вывода данных, использование операций ввода-вывода журнала. | Да | Да |
Задержка обработки запросов | Предоставляет иерархическую детализацию по статистике ожидания запроса по категориям ожидания. | Да | Да |
Настройка Аналитики SQL Azure (предварительная версия)
Используйте процесс, описанный в статье "Добавление решений Azure Monitor из коллекции решений ", чтобы добавить Аналитику SQL Azure (предварительная версия) в рабочую область Log Analytics.
Настройка Базы данных SQL Azure для потоковой передачи данных телеметрии диагностики
После создания решения Аналитики SQL Azure в рабочей области необходимо настроить каждый ресурс, который вы хотите отслеживать для потоковой передачи данных телеметрии диагностики в Аналитику SQL Azure. Следуйте подробным инструкциям на этой странице:
- Включите диагностику Azure для базы данных, чтобы передавать диагностическую телеметрию в Azure SQL Analytics.
На приведенной выше странице также приведены инструкции по включению поддержки мониторинга нескольких подписок Azure из одной рабочей области Аналитики SQL Azure в виде одной панели стекла.
Использование Аналитики SQL Azure (предварительная версия)
Перейдите на страницу наследных решений рабочей области Log Analytics и выберите развертывание SQL Analytics.
Аналитика SQL Azure предоставляет два отдельных представления: один для мониторинга базы данных SQL, а другой — для мониторинга управляемого экземпляра SQL.
Просмотр данных Azure SQL Analytics
Панель мониторинга содержит обзор всех баз данных, отслеживаемых с помощью разных перспектив. Чтобы разные перспективы успешно функционировали, необходимо включить соответствующие метрики или журналы в ресурсах SQL для потоковой передачи в рабочую область Log Analytics.
Если некоторые метрики или журналы не передаются в Azure Monitor, плитки в Аналитике SQL Azure не заполняются сведениями мониторинга.
Представление базы данных SQL
После выбора плитки Аналитики SQL Azure для базы данных отображается панель мониторинга.
При выборе любой из ячеек открывается детализированный отчет для конкретной перспективы. После выбора точки зрения откроется доклад детализации.
Каждая перспектива в этом представлении содержит сводки по подписке, серверу, эластичному пулу и уровням баз данных. Кроме того, каждая точка зрения показывает аспекты, относящиеся к отчету справа. Выбор подписки, сервера, пула или базы данных из списка продолжает детализацию.
Представление SQL об управляемом экземпляре
После выбора плитки Аналитики SQL Azure для баз данных отображается панель мониторинга.
При выборе любой из ячеек открывается детализированный отчет для конкретной перспективы. После выбора точки зрения откроется доклад детализации.
При выборе представления Управляемого экземпляра SQL отображаются сведения об использовании экземпляров, базах данных экземпляров и телеметрии запросов, выполняемых в управляемом экземпляре.
Отчет Intelligent Insights
Интеллектуальная аналитика базы данных SQL Azure позволяет узнать, что происходит с производительностью всех баз данных SQL Azure. Все собранные интеллектуальные инсайты можно визуализировать и получить доступ к ним с помощью перспективы Инсайтов.
Эластичные пулы и отчеты базы данных
Как эластичные пулы, так и базы данных имеют собственные отчеты, которые отображают все данные, собранные для ресурса в указанное время.
Запрос отчетов
С помощью перспектив времени выполнения и ожидания запросов можно соотнести производительность любого запроса с отчетом по запросам. В этом отчете сравнивается производительность запросов в разных базах данных и позволяет легко определить базы данных, которые хорошо выполняют выбранный запрос и которые медленно.
Разрешения
Чтобы использовать Аналитику SQL Azure (предварительная версия), пользователям необходимо предоставить минимальное разрешение роли читателя в Azure. Однако эта роль не позволяет пользователям просматривать текст запроса или выполнять какие-либо действия автоматической настройки. Более разрешительными ролями в Azure, которые позволяют в полной мере использовать Azure SQL Analytics, являются роли Владельца, Участника, Участника базы данных SQL и Участника SQL Server. Кроме того, вам может потребоваться создать пользовательскую роль на портале с определенными разрешениями, необходимыми только для использования Аналитики SQL Azure, и без доступа к управлению другими ресурсами.
Создание настраиваемой роли на портале
Примечание.
Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Чтобы начать работу, см. статью Установка Azure PowerShell. Чтобы узнать, как перейти на модуль Az PowerShell, см. статью Миграция Azure PowerShell с AzureRM на Az.
Признавая, что некоторые организации применяют строгие элементы управления разрешениями в Azure, найдите следующий сценарий PowerShell, позволяющий создать настраиваемую роль "Оператор мониторинга аналитики SQL" на портале Azure с минимальными разрешениями на чтение и запись, необходимые для использования Azure SQL Analytics в полной степени.
Замените "{SubscriptionId}" в приведённом ниже скрипте идентификатором вашей подписки Azure и выполните сценарий при наличии роли владельца или участника в Azure.
Connect-AzAccount
Select-AzSubscription {SubscriptionId}
$role = Get-AzRoleDefinition -Name Reader
$role.Name = "SQL Analytics Monitoring Operator"
$role.Description = "Lets you monitor database performance with Azure SQL Analytics as a reader. Does not allow change of resources."
$role.IsCustom = $true
$role.Actions.Add("Microsoft.SQL/servers/databases/read");
$role.Actions.Add("Microsoft.SQL/servers/databases/topQueries/queryText/*");
$role.Actions.Add("Microsoft.Sql/servers/databases/advisors/read");
$role.Actions.Add("Microsoft.Sql/servers/databases/advisors/write");
$role.Actions.Add("Microsoft.Sql/servers/databases/advisors/recommendedActions/read");
$role.Actions.Add("Microsoft.Sql/servers/databases/advisors/recommendedActions/write");
$role.Actions.Add("Microsoft.Sql/servers/databases/automaticTuning/read");
$role.Actions.Add("Microsoft.Sql/servers/databases/automaticTuning/write");
$role.Actions.Add("Microsoft.Sql/servers/advisors/read");
$role.Actions.Add("Microsoft.Sql/servers/advisors/write");
$role.Actions.Add("Microsoft.Sql/servers/advisors/recommendedActions/read");
$role.Actions.Add("Microsoft.Sql/servers/advisors/recommendedActions/write");
$role.Actions.Add("Microsoft.Resources/deployments/write");
$role.AssignableScopes = "/subscriptions/{SubscriptionId}"
New-AzRoleDefinition $role
После создания новой роли назначьте эту роль каждому пользователю, которому необходимо предоставить пользовательские разрешения для использования Аналитики SQL Azure.
Анализ данных и создание оповещений
Анализ данных в Аналитике SQL Azure основан на языке Log Analytics для пользовательских запросов и отчетов. Найдите описание доступных данных, собранных из ресурса базы данных для пользовательского запроса в метриках и журналах.
Автоматическое оповещение в Azure SQL Analytics основано на написании запроса Log Analytics, который активирует оповещение при выполнении условия. Найдите ниже несколько примеров запросов Log Analytics, на которых можно настроить оповещения в Аналитике SQL Azure.
Создание оповещений для базы данных SQL Azure
Вы можете легко создавать оповещения с данными , поступающими из ресурсов базы данных SQL Azure. Ниже приведены некоторые полезные запросы к журналам, которые можно использовать с оповещением о журнале.
Высокая нагрузка ЦП
AzureMetrics
| where ResourceProvider=="MICROSOFT.SQL"
| where ResourceId contains "/DATABASES/"
| where MetricName=="cpu_percent"
| summarize AggregatedValue = max(Maximum) by bin(TimeGenerated, 5m)
| render timechart
Примечание.
- Предварительное требование настройки этого оповещения заключается в том, что отслеживаемые базы данных передают базовые метрики в рабочую область Log Analytics, используемую Аналитикой SQL Azure.
- Замените значение MetricName
cpu_percent
наdtu_consumption_percent
, чтобы вместо этого получить высокие результаты DTU.
Высокая нагрузка процессора в эластичных пулах
AzureMetrics
| where ResourceProvider=="MICROSOFT.SQL"
| where ResourceId contains "/ELASTICPOOLS/"
| where MetricName=="cpu_percent"
| summarize AggregatedValue = max(Maximum) by bin(TimeGenerated, 5m)
| render timechart
Примечание.
- Предварительное требование настройки этого оповещения заключается в том, что отслеживаемые базы данных передают базовые метрики в рабочую область Log Analytics, используемую Аналитикой SQL Azure.
- Замените значение MetricName
cpu_percent
наdtu_consumption_percent
, чтобы вместо этого получить высокие результаты DTU.
Хранение в среднем выше уровня 95% за последний час
let time_range = 1h;
let storage_threshold = 95;
AzureMetrics
| where ResourceId contains "/DATABASES/"
| where MetricName == "storage_percent"
| summarize max_storage = max(Average) by ResourceId, bin(TimeGenerated, time_range)
| where max_storage > storage_threshold
| distinct ResourceId
Примечание.
- Предварительное требование настройки этого оповещения заключается в том, что отслеживаемые базы данных передают базовые метрики в рабочую область Log Analytics, используемую Аналитикой SQL Azure.
- Для этого запроса необходимо настроить правило генерации оповещений при наличии результатов (> 0) из запроса, указывая, что условие существует в некоторых базах данных. Результат — это список ресурсов базы данных, которые находятся выше
storage_threshold
в пределах определенногоtime_range
. - Результат — это список ресурсов базы данных, которые находятся выше
storage_threshold
в пределах определенногоtime_range
.
Оповещение об интеллектуальной аналитике
Это важно
Если база данных работает хорошо, и не было создано Intelligent Insights, этот запрос завершится ошибкой с сообщением об ошибке: не удалось разрешить скалярное выражение с именем rootCauseAnalysis_s
. Это поведение ожидается для всех случаев, когда нет интеллектуальной аналитики для базы данных.
let alert_run_interval = 1h;
let insights_string = "hitting its CPU limits";
AzureDiagnostics
| where Category == "SQLInsights" and status_s == "Active"
| where TimeGenerated > ago(alert_run_interval)
| where rootCauseAnalysis_s contains insights_string
| distinct ResourceId
Примечание.
- Предварительное требование настройки этого оповещения заключается в том, что отслеживаемые базы данных передают журнал диагностики SQLInsights в рабочую область Log Analytics, используемую Аналитикой SQL Azure.
- Для этого запроса требуется настроить правило генерации оповещений с той же частотой, что
alert_run_interval
и для предотвращения повторяющихся результатов. Правило должно быть настроено для срабатывания оповещения при наличии результатов (> 0 результатов) из запроса. - Настройте
alert_run_interval
, чтобы указать диапазон времени, и проверьте, произошло ли условие в базах данных, настроенных для потоковой передачи журнала SQLInsights в Azure SQL Analytics. - Настройте insights_string, чтобы зафиксировать вывод текста анализа первопричин Инсайтов. Это тот же текст, отображаемый в пользовательском интерфейсе Аналитики SQL Azure, который можно использовать из существующей аналитики. Кроме того, можно использовать приведенный ниже запрос, чтобы просмотреть текст всех аналитических сведений, созданных в вашей подписке. Используйте выходные данные запроса для сбора отдельных строк для настройки оповещений в Insights.
AzureDiagnostics
| where Category == "SQLInsights" and status_s == "Active"
| distinct rootCauseAnalysis_s
Создание оповещений для Управляемого экземпляра SQL
Объём хранения превышает 90%
let storage_percentage_threshold = 90;
AzureDiagnostics
| where Category =="ResourceUsageStats"
| summarize (TimeGenerated, calculated_storage_percentage) = arg_max(TimeGenerated, todouble(storage_space_used_mb_s) *100 / todouble (reserved_storage_mb_s))
by ResourceId
| where calculated_storage_percentage > storage_percentage_threshold
Примечание.
- Предварительное требование настройки этого оповещения заключается в том, что отслеживаемый управляемый экземпляр имеет потоковую передачу журнала ResourceUsageStats в рабочую область Log Analytics, используемую Аналитикой SQL Azure.
- Для этого запроса требуется, чтобы правило генерации оповещений было настроено для срабатывания оповещения при наличии результатов (> 0) из запроса, указывая на то, что условие существует в управляемом экземпляре. Результатом является процент потребления хранилища на управляемом экземпляре.
Средняя загрузка ЦПУ превышает 95% за последний 1 час
let cpu_percentage_threshold = 95;
let time_threshold = ago(1h);
AzureDiagnostics
| where Category == "ResourceUsageStats" and TimeGenerated > time_threshold
| summarize avg_cpu = max(todouble(avg_cpu_percent_s)) by ResourceId
| where avg_cpu > cpu_percentage_threshold
Примечание.
- Предварительное требование настройки этого оповещения заключается в том, что отслеживаемый управляемый экземпляр имеет потоковую передачу журнала ResourceUsageStats в рабочую область Log Analytics, используемую Аналитикой SQL Azure.
- Для этого запроса требуется, чтобы правило генерации оповещений было настроено для срабатывания оповещения при наличии результатов (> 0) из запроса, указывая на то, что условие существует в управляемом экземпляре. Выходные данные — это среднее процент использования ЦП в определенный период в управляемом экземпляре.
Ценообразование
Хотя Azure SQL Analytics (предварительная версия) является бесплатной, плата взимается за потребление диагностической телеметрии сверх бесплатных единиц приема данных, выделяемых каждый месяц, см. Цены на Log Analytics. Бесплатные единицы приема данных обеспечивают бесплатный мониторинг нескольких баз данных каждый месяц. Более активные базы данных с более тяжелыми рабочими нагрузками поглощают больше данных по сравнению с простоем баз данных. Вы можете легко отслеживать потребление данных в Аналитике SQL Azure, выбрав рабочую область OMS в меню навигации Аналитики SQL Azure, а затем выбрав "Использование" и "Предполагаемые затраты".
Дальнейшие действия
- Используйте запросы журнала в Azure Monitor для просмотра подробных данных SQL Azure.
- Создайте собственные панели мониторинга с данными SQL Azure.
- Создание оповещений при возникновении определенных событий SQL Azure.
- Отслеживание Базы данных SQL Azure с помощью Azure Monitor
- Мониторинг Управляемого экземпляра SQL Azure с помощью Azure Monitor