Включение SQL Insights (предварительная версия)

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

В этой статье объясняется, как включить SQL Insights (предварительная версия) для мониторинга развертываний SQL. Мониторинг выполняется с виртуальной машины Azure, которая устанавливает подключение к развертываниям SQL и применяет динамические административные представления для сбора данных мониторинга. Вы можете управлять тем, какие наборы данных и как часто будут собираться, с помощью профиля мониторинга.

Примечание

Чтобы включить SQL Insights (предварительная версия), создайте профиль мониторинга и виртуальную машину для включения, используя примеры шаблонов Azure Resource Manager для развертывания и настройки SQL Insights.

Чтобы узнать, как включить SQL Insights (предварительная версия), вы также можете изучить этот эпизод Data Exposed.

Создание рабочей области Log Analytics

SQL Insights хранит данные в одной или нескольких рабочих областях Log Analytics. Прежде чем включать SQL Insights, нужно создать рабочую область или выбрать одну из существующих. Одну рабочую область можно использовать с несколькими профилями мониторинга, но рабочая область и все профили должны находиться в одном регионе Azure. Чтобы настраивать и использовать возможности SQL Insights, вам необходима роль участника SQL Insights в рабочей области.

Создание пользователя мониторинга

Вам потребуется пользователь (login) в развертываниях SQL, которые вы будете отслеживать. Выполните указанные ниже процедуры для разных типов развертываний SQL.

Процессы, описанные в инструкциях ниже, будут разными для разных типов SQL, которые вы можете отслеживать. Чтобы с помощью скрипта выполнить этот процесс сразу в нескольких ресурсах SQL, воспользуйтесь файлом README и примером скрипта.

База данных SQL Azure

Примечание

SQL Insights (предварительная версия) не поддерживает следующие сценарии Базы данных SQL Azure:

  • Эластичные пулы. Невозможно собирать метрики для эластичных пулов. Метрики не могут быть собраны для баз данных в эластичных пулах.
  • Низкие уровни служб. Невозможно собирать метрики для баз данных на уровнях служб "Базовый", S0, S1 и S2.

В 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 

Снимок экрана: Редактор запросов с пользовательским скриптом создания telegraf.

Убедитесь, что пользователь успешно создан.

Снимок экрана: окно запроса Редактор запросов с проверкой пользовательского скрипта telegraf.

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

Управляемый экземпляр SQL Azure

Подключитесь к Управляемому экземпляру SQL Azure и примените SQL Server Management Studio или аналогичное средство для выполнения приведенного ниже скрипта, который позволяет создать учетную запись пользователя мониторинга с необходимыми разрешениями. Замените здесь заполнитель user именем пользователя, а mystrongpassword — надежным паролем для него.

USE master; 
GO 
CREATE LOGIN [user] WITH PASSWORD = N'mystrongpassword'; 
GO 
GRANT VIEW SERVER STATE TO [user]; 
GO 
GRANT VIEW ANY DEFINITION TO [user]; 
GO 

SQL Server

Подключитесь к SQL Server на виртуальной машине Azure и примените SQL Server Management Studio или аналогичное средство для выполнения приведенного ниже скрипта, который позволяет создать учетную запись пользователя с необходимыми разрешениями. Замените здесь заполнитель user именем пользователя, а mystrongpassword — надежным паролем для него.

USE master; 
GO 
CREATE LOGIN [user] WITH PASSWORD = N'mystrongpassword'; 
GO 
GRANT VIEW SERVER STATE TO [user]; 
GO 
GRANT VIEW ANY DEFINITION TO [user]; 
GO

Убедитесь, что пользователь успешно создан.

select name as username,
       create_date,
       modify_date,
       type_desc as type
from sys.server_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. Пользовательские образы не поддерживаются.
  • Рекомендуемые минимальные размеры виртуальных машин Azure: Standard_B2s (2 ЦП, 4-ГиБ памяти)
  • Развертывание в любом регионе Azure, поддерживаемом агентом Azure Monitor, и удовлетворяющем всем предварительным требованиям агента Azure Monitor.

Примечание

Размер виртуальной машины Standard_B2s (2 ЦП, 4 ГиБ памяти) поддерживает до 100 строк подключения. Не следует выделять более 100 подключений на одну виртуальную машину.

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

Настройка параметров сети

Каждый тип SQL предлагает собственные методы для безопасного доступа к SQL с виртуальной машины мониторинга. В приведенных далее разделах рассматриваются эти варианты для разных типов развертывания SQL.

База данных SQL Azure

SQL Insights поддерживает доступ к Базе данных SQL Azure через общедоступную конечную точку или из виртуальной сети.

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

Снимок экрана: страница базы данных Azure SQL в портал Azure. Выделена кнопка

Снимок экрана: страница параметров брандмауэра базы данных Azure SQL в портал Azure. Параметры брандмауэра.

Управляемый экземпляр SQL Azure

Если виртуальная машина мониторинга будет находиться в той же виртуальной сети, что и ваши ресурсы SQL MI, см. раздел Подключение в той же виртуальной сети. Если виртуальная машина мониторинга будет находиться в другой виртуальной сети, отличной от той, где размещены ресурсы SQL MI, см. раздел Подключение в другой виртуальной сети.

SQL Server

Если виртуальная машина мониторинга находится в той же виртуальной сети, что и ресурсы виртуальной машины SQL, воспользуйтесь разделом Подключение к SQL Server в пределах одной виртуальной сети. Если виртуальная машина мониторинга будет находиться в сети, отличной от сети для ресурсов виртуальной машины SQL, см. раздел Подключение к SQL Server через Интернет.

Хранение пароля мониторинга в 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. Выберите команду Создать профиль.

Снимок экрана: страница Azure Monitor в портал Azure. Выделена кнопка создания нового профиля.

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

  • База данных SQL Azure
  • Управляемый экземпляр SQL Azure
  • SQL Server на виртуальных машинах.

Например, вы можете создать один профиль с именем SQL Production и еще одни с именем SQL Staging, у которых будут разные настройки частоты сбора данных, объектов данных и рабочих областей для отправки данных.

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

  • Название Его нельзя изменить после создания.
  • Расположение. Это регион Azure.
  • Рабочая область Log Analytics для хранения данных мониторинга.
  • Параметры сбора данных для мониторинга SQL: частота и тип собираемых данных.

Примечание

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

Снимок экрана: страница

После ввода сведений о профиле мониторинга выберите "Создать профиль мониторинга ". Развертывание профиля может потребовать около минуты. Если новый профиль не отображается в поле со списком "Профиль мониторинга ", нажмите кнопку "Обновить", и она должна появиться после завершения развертывания. Выбрав новый профиль, перейдите на вкладку Управление профилем, чтобы добавить компьютер мониторинга и связать его с этим профилем.

Добавление компьютера мониторинга

Выберите "Добавить компьютер мониторинга ", чтобы открыть контекстную панель, чтобы выбрать виртуальную машину, из которой можно отслеживать экземпляры SQL и предоставить строки подключения.

Выберите подписку и имя для виртуальной машины мониторинга. Если вы используете Key Vault для хранения пароля пользователя мониторинга, выберите ресурсы Key Vault с этими секретами и введите URL-адрес и имя секрета для пароля, которые будут использоваться в строках подключения. Дополнительные сведения об определении строки подключения для разных типов развертываний SQL см. в следующем разделе.

Снимок экрана: страница

Добавление строк подключения

Строка подключения задает имя входа, которое SQL Insights (предварительная версия) должен использовать при входе в SQL для сбора данных мониторинга. Если вы используете Key Vault для хранения пароля пользователя мониторинга, укажите URI хранилища Key Vault и имя секрета с паролем.

Строки подключения будут разными для разных типов ресурса SQL:

База данных SQL Azure

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 поддерживает мониторинг для одной вторичной реплики Собранные данные будут помечены тегами, чтобы легче было отличать первичные данные от вторичных.

Управляемый экземпляр SQL Azure

TCP-подключения с компьютера мониторинга к IP-адресу и порту, используемым управляемым экземпляром, должны быть разрешены всеми брандмауэрами или группами безопасности сети (NSG), которые встречаются на сетевом пути. Дополнительные сведения об IP-адресах и портах см. в разделе Типы подключений Управляемого экземпляра SQL Azure.

Введите строку подключения в следующем формате:

"sqlManagedInstanceConnections": [
   "Server= mysqlserver1.<dns_zone>.database.windows.net;Port=1433;User Id=$username;Password=$password;",
   "Server= mysqlserver2.<dns_zone>.database.windows.net;Port=1433;User Id=$username;Password=$password;" 
] 

Получите сведения на странице "Строки подключения" и соответствующую конечную точку ADO.NET для управляемого экземпляра. При использовании общедоступной конечной точки управляемого экземпляра замените порт 1433 на 3342.

Чтобы отслеживать вторичную реплику для чтения, добавьте ;ApplicationIntent=ReadOnly к строке подключения. SQL Insights поддерживает мониторинг одной вторичной реплики высокого уровня доступности для данной базы данных-источника. Собранные данные будут помечены тегами, чтобы легче было отличать первичные данные от вторичных.

SQL Server

Для экземпляра SQL Server, который требуется отслеживать, должен быть включен протокол TCP/IP. TCP-подключения с компьютера мониторинга к IP-адресу и порту, используемым экземпляром SQL Server, должны быть разрешены всеми брандмауэрами или группами безопасности сети (NSG), которые встречаются на сетевом пути.

Если вы хотите отслеживать SQL Server, настроенный для обеспечения высокой доступности (с помощью групп доступности или экземпляров отказоустойчивого кластера), рекомендуется отслеживать каждый экземпляр SQL Server в кластере по отдельности, а не подключаясь через прослушиватель группы доступности или имя отказоустойчивого кластера. Это гарантирует, что данные мониторинга собираются независимо от текущей роли экземпляра (первичная или вторичная).

Введите строку подключения в следующем формате:

"sqlVmConnections": [
   "Server=SQLServerInstanceIPAddress1;Port=1433;User Id=$username;Password=$password;",
   "Server=SQLServerInstanceIPAddress2;Port=1433;User Id=$username;Password=$password;"
] 

Используйте IP-адрес, который прослушивает экземпляр SQL Server.

Если ваш экземпляр SQL Server настроен на прослушивание порта, отличного от заданного по умолчанию, замените 1433 на этот номер порта в строке подключения. Если вы используете SQL Server на виртуальной машине Azure, вы увидите, какой порт следует использовать на странице "Безопасность" для ресурса.

Снимок экрана: страница

Для любого экземпляра SQL Server можно определить все IP-адреса и порты, которые он прослушивает, подключившись к экземпляру и выполнив следующий запрос T-SQL, если имеется хотя бы одно подключение TCP к экземпляру.

SELECT DISTINCT local_net_address, local_tcp_port
FROM sys.dm_exec_connections
WHERE net_transport = 'TCP'
      AND
      protocol_type = 'TSQL';

Профиль мониторинга создан

Выберите элемент Add monitoring virtual machine (Добавить виртуальную машину мониторинга), чтобы настроить на виртуальной машине сбор данных из ресурсов SQL. Не возвращайтесь на вкладку Обзор. Через несколько минут столбец "Состояние" должен изменить значение на "Сбор", и вы увидите данные для ресурсов SQL, которые выбрали для мониторинга.

Если эти данные не отображаются, см. статью Устранение неполадок с SQL Insights (предварительная версия) для выявления проблемы.

Снимок экрана: страница портал Azure для Azure Monitor для SQL. В меню

Примечание

Если вам нужно обновить профиль мониторинга или строки подключения на виртуальных машинах мониторинга, это можно сделать с помощью вкладки Управление профилем в SQL Insights. После сохранения изменений они будут применены примерно через 5 минут.

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