Включение 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 "

В 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 

Screenshot of the Query Editor with a create telegraf user script.

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

Screenshot of the Query Editor query window verifying the telegraf user script.

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 имеет следующие требования:

Примечание.

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

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

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

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

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

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

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

Screenshot of an Azure SQL Database page in the Azure portal. The Set server firewall button is highlighted.

Screenshot of an Azure SQL Database Firewall settings page in the Azure portal. Firewall settings.

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

Screenshot of the Azure Monitor page in Azure portal. The create new profile button is highlighted.

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

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

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

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

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

Примечание.

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

A screenshot of the Create new profile details page in the Azure portal.

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

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

Выберите "Добавить компьютер мониторинга", чтобы открыть панель контекста, чтобы выбрать виртуальную 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 и sqlPassword2json в 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;"
   ]
}

A screenshot of the Azure portal Add monitoring virtual machine page. Choose the VM, specify the KV url (if used) and the secret name. Enter connection strings for each system to monitor. Choose the KV where you created the secret used in the connection strings.

Дополнительные сведения об определении строки подключения для разных типов развертываний 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;" 
] 

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

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

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, вы увидите, какой порт следует использовать на странице "Безопасность " для ресурса.

A screenshot of the SQL virtual machine Security page in the Azure portal. The SQL virtual machine security page has a Security & networking section with a Port field.

Для любого экземпляра 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 (предварительная версия) для выявления проблемы.

A screenshot of the Azure portal page for Azure Monitor for SQL. In the Insights menu, SQL is selected. A profile is shown to have been created.

Примечание.

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

Следующие шаги