Включение SQL Insights (предварительная версия)
Применимо к: База данных SQL Azure Управляемый экземпляр SQL Azure
Внимание
СЛУЖБА SQL Insights (предварительная версия) будет прекращена 31 декабря 2024 г. Мы рекомендуем перейти на наблюдатель за базами данных для SQL Azure (предварительная версия) или другое решение для мониторинга баз данных по этой дате.
Наблюдатель за базами данных — это рекомендуемое решение для мониторинга сценариев, требующих низкой задержки сбора данных, мониторинга уровня недвижимости, комплексных данных мониторинга, включая подробные сведения о уровне запросов и поддержку расширенной аналитики собранных данных мониторинга. В настоящее время наблюдатель за базами данных поддерживает База данных SQL Azure и Управляемый экземпляр SQL Azure.
После 31 декабря 2024 года SQL Insights (предварительная версия) не будет поддерживаться и не будет доступен в портал Azure. Вы сохраните все существующие данные мониторинга, собранные SQL Insights в рабочей области Log Analytics.
В этой статье объясняется, как включить SQL Insights (предварительная версия) для мониторинга развертываний SQL. Мониторинг выполняется с виртуальной машины Azure, которая устанавливает подключение к развертываниям SQL и применяет динамические административные представления для сбора данных мониторинга. Вы можете управлять тем, какие наборы данных и как часто будут собираться, с помощью профиля мониторинга.
Чтобы включить SQL Insights (предварительная версия), создайте профиль мониторинга и виртуальную машину для включения, используя примеры шаблонов Azure Resource Manager для развертывания и настройки SQL Insights.
Создание рабочей области Log Analytics
SQL Insights хранит данные в одной или нескольких рабочих областях Log Analytics. Прежде чем включать SQL Insights, нужно создать рабочую область или выбрать одну из существующих. Одну рабочую область можно использовать с несколькими профилями мониторинга, но рабочая область и все профили должны находиться в одном регионе Azure. Чтобы настраивать и использовать возможности SQL Insights, вам необходима роль участника SQL Insights в рабочей области.
Создание пользователя мониторинга
Вам потребуется пользователь (login) в развертываниях SQL, которые вы будете отслеживать. Выполните указанные ниже процедуры для разных типов развертываний SQL.
Процессы, описанные в инструкциях ниже, будут разными для разных типов SQL, которые вы можете отслеживать. Чтобы с помощью скрипта выполнить этот процесс сразу в нескольких ресурсах SQL, воспользуйтесь файлом README и примером скрипта.
Примечание.
SQL Insights (предварительная версия) не поддерживает следующие сценарии Базы данных SQL Azure:
- Эластичные пулы. Невозможно собирать метрики для эластичных пулов. Метрики не могут быть собраны для баз данных в эластичных пулах.
- Низкие уровни служб: нельзя собирать метрики для баз данных в целях службы "Базовый", "S0" и "S1 "
В SQL Insights (предварительная версия) предусмотрена ограниченная поддержка следующих сценариев Базы данных SQL Azure:
- Бессерверный уровень. Метрики можно собирать для баз данных с использованием уровня бессерверных вычислений. Однако процесс сбора метрик приведет к сбросу таймера задержки автоматической приостановки, что не позволит базе данных перейти в режим автоматической приостановки.
Подключитесь к базе данных SQL Azure с помощью SQL Server Management Studio, редактора запросов (предварительная версия) на портале Azure или любого другого клиентского средства SQL.
Выполните приведенный ниже скрипт, чтобы создать учетную запись пользователя с необходимыми разрешениями. Замените здесь заполнитель user именем пользователя, а mystrongpassword — надежным паролем для него.
CREATE USER [user] WITH PASSWORD = N'mystrongpassword';
GO
GRANT VIEW DATABASE STATE TO [user];
GO
Убедитесь, что пользователь успешно создан.
select name as username,
create_date,
modify_date,
type_desc as type,
authentication_type_desc as authentication_type
from sys.database_principals
where type not in ('A', 'G', 'R', 'X')
and sid is not null
order by username
Создание виртуальной машины Azure
Вам потребуется создать одну или несколько виртуальных машин Azure для сбора данных для мониторинга SQL.
Примечание.
Профили мониторинга указывают, какие данные будут собираться из разных типов SQL, которые вы хотите отслеживать. С каждой виртуальной машиной мониторинга может быть связан только один профиль мониторинга. Если вам нужно несколько профилей мониторинга, необходимо создать виртуальную машину для каждого из них.
Требования к виртуальной машине Azure
Виртуальная машина Azure имеет следующие требования:
- Операционная система: Ubuntu 18.04 с помощью образа Azure Marketplace. Пользовательские образы не поддерживаются. Чтобы получить расширенное обслуживание безопасности (ESM) для этой версии Ubuntu, рекомендуется использовать образ Marketplace Ubuntu Pro 18.04 LTS. Дополнительные сведения см. в статье "Поддержка технологий Linux и с открытым исходным кодом" в Azure.
- Рекомендуемые минимальные размеры виртуальных машин Azure: Standard_B2s (2 ЦП, 4-ГиБ памяти)
- Развертывание в любом регионе Azure, поддерживаемом агентом Azure Monitor, и удовлетворяющем всем предварительным требованиям агента Azure Monitor.
Примечание.
Размер виртуальной машины Standard_B2s (2 ЦП, 4 ГиБ памяти) поддерживает до 100 строк подключения. Не следует выделять более 100 подключений на одну виртуальную машину.
В зависимости от параметров сети для ресурсов SQL может потребоваться разместить виртуальные машины в той же виртуальной сети, где находятся ресурсы SQL, чтобы они могли устанавливать сетевые подключения для получения данных мониторинга.
Настройка параметров сети
Каждый тип SQL предлагает собственные методы для безопасного доступа к SQL с виртуальной машины мониторинга. В приведенных далее разделах рассматриваются эти варианты для разных типов развертывания SQL.
SQL Insights поддерживает доступ к Базе данных SQL Azure через общедоступную конечную точку или из виртуальной сети.
Для доступа через общедоступную конечную точку вы добавите правило на странице параметров брандмауэра и раздел параметров IP-брандмауэра в портал Azure. Для настройки доступа из виртуальной вы можете задать правила брандмауэра виртуальной сети и теги службы, необходимые для агента Azure Monitor.
Хранение пароля мониторинга в Azure Key Vault
По соображениям безопасности настоятельно рекомендуется хранить пароли SQL пользователя (login) в Key Vault, а не вводить их непосредственно в строки подключения профиля мониторинга.
Для настройки профиля для мониторинга SQL вам потребуется одно из следующих разрешений на ресурс Key Vault, который предполагается использовать:
- Microsoft.Authorization/roleAssignments/write.
- Microsoft.Authorization/roleAssignments/delete
Если у вас есть эти разрешения, новая политика доступа к Key Vault будет автоматически создана в ходе создания профиля SQL Monitoring, использующего указанный Key Vault.
Внимание
Необходимо убедиться, что конфигурация сети и безопасности позволяет виртуальной машине мониторинга получать доступ к Key Vault. Дополнительные сведения см. в разделах Доступ к Azure Key Vault из-за брандмауэра и Настройка сетевых параметров Azure Key Vault.
Создание профиля мониторинга SQL
Чтобы открыть SQL Insights (предварительная версия), выберите элемент SQL (предварительная версия) в разделе Insights в меню Azure Monitor на портале Azure. Выберите команду Создать профиль.
В этом профиле будут храниться сведения, которые необходимо получить из систем SQL. В нем есть специальные настройки для следующих сред:
- База данных SQL Azure
- Управляемый экземпляр SQL Azure
- SQL Server на виртуальных машинах Azure
Например, вы можете создать один профиль с именем SQL Production и еще одни с именем SQL Staging, у которых будут разные настройки частоты сбора данных, объектов данных и рабочих областей для отправки данных.
Профиль хранится в формате ресурса правила сбора данных в выбранной подписке и группе ресурсов. Для каждого профиля требуется следующее:
- Имя. Его нельзя изменить после создания.
- Location. Это регион Azure.
- Рабочая область Log Analytics для хранения данных мониторинга.
- Параметры сбора данных для мониторинга SQL: частота и тип собираемых данных.
Примечание.
Расположение профиля должно совпадать с расположением рабочей области Log Analytics, в которую вы намерены отправлять данные мониторинга.
После ввода сведений о профиле мониторинга выберите "Создать профиль мониторинга". Развертывание профиля может потребовать около минуты. Если вы не видите новый профиль, указанный в поле со списком профилей мониторинга, нажмите кнопку обновления и она должна появиться после завершения развертывания. Выбрав новый профиль, перейдите на вкладку Управление профилем, чтобы добавить компьютер мониторинга и связать его с этим профилем.
Добавить компьютер для мониторинга
Выберите "Добавить компьютер мониторинга", чтобы открыть панель контекста, чтобы выбрать виртуальную Add monitoring virtual machine
машину, из которой следует отслеживать экземпляры SQL и предоставить строка подключения.
Выберите подписку и имя для виртуальной машины мониторинга. Если вы используете Key Vault для хранения паролей для входа мониторинга (настоятельно рекомендуется), выберите подписку этого Key Vault в разделе Key vault subscriptions
, а затем выберите Key Vault, в которой KeyVault
хранятся секреты. Connection strings
В поле введите URI хранилища и имя секрета для каждого пароля, который будет использоваться в строка подключения.
Например, если универсальный код ресурса (URI) Key Vault имеет https://mykeyvault.vault.azure.net/
значение , а имена секретов — sqlPassword1
и sqlPassword2
json в Connection strings
поле будет содержать следующее:
{
"secrets": {
"telegrafPassword1": {
"keyvault": "https://mykeyvault.vault.azure.net/",
"name": "sqlPassword1"
},
"telegrafPassword2": {
"keyvault": "https://mykeyvault.vault.azure.net/",
"name": "sqlPassword2"
}
}
}
Теперь эти секреты можно ссылаться дальше в Connection strings
поле. В следующем примере два строка подключения ссылались на telegrafPassword1
секреты, telegrafPassword2
определенные ранее:
{
"sqlAzureConnections": [
"Server=mysqlserver.database.windows.net;Port=1433;Database=mydatabase;User Id=telegraf;Password=$telegrafPassword1;"
],
"sqlVmConnections": [
"Server=mysqlserver1;Port=1433;Database=master;User Id=telegraf;Password=$telegrafPassword2;"
]
}
Дополнительные сведения об определении строки подключения для разных типов развертываний SQL см. в следующем разделе.
Добавление строк подключения
Строка подключения задает имя входа, которое SQL Insights (предварительная версия) должен использовать при входе в SQL для сбора данных мониторинга. Если вы используете Key Vault для хранения пароля пользователя мониторинга, укажите URI хранилища Key Vault и имя секрета с паролем.
Строки подключения будут разными для разных типов ресурса SQL:
TCP-подключения с компьютера мониторинга к IP-адресу и порту, используемым базой данных, должны быть разрешены всеми брандмауэрами или группами безопасности сети (NSG), которые встречаются на сетевом пути. Дополнительные сведения об IP-адресах и портах см. в разделе Архитектура подключений к Базе данных SQL Azure.
Введите строку подключения в следующем формате:
"sqlAzureConnections": [
"Server=mysqlserver1.database.windows.net;Port=1433;Database=mydatabase;User Id=$username;Password=$password;",
"Server=mysqlserver2.database.windows.net;Port=1433;Database=mydatabase;User Id=$username;Password=$password;"
]
Получите сведения на странице "Строки подключения" и соответствующую конечную точку ADO.NET для базы данных.
Чтобы отслеживать вторичную реплику для чтения, добавьте ;ApplicationIntent=ReadOnly
к строке подключения. SQL Insights поддерживает мониторинг для одной вторичной реплики Собранные данные будут помечены тегами, чтобы легче было отличать первичные данные от вторичных.