Устранение неполадок в SQL Insights (предварительная версия)
Применимо к: База данных SQL Azure Управляемый экземпляр SQL Azure
Чтобы устранить проблемы при сборе данных в SQL Insights (предварительная версия), проверьте состояние компьютера мониторинга на вкладке Управление профилем. Доступные варианты состояния:
- Собирание
- Не собирается
- Сбор ошибок
Выберите состояние, чтобы просмотреть журналы и дополнительные сведения, которые могут помочь в решении проблемы.
Состояние: сбор данных не выполняется
Компьютер мониторинга находится в состоянии Сбор данных не выполняется, если в InsightsMetrics для SQL отсутствуют данные за последние 10 минут.
Примечание.
Убедитесь, что вы пытаетесь получить данные из поддерживаемой версии SQL. Например, попытка сбора данных с допустимым профилем и строкой подключения, но из неподдерживаемой версии Базы данных SQL Azure приведет к переходу в состояние Сбор данных не выполняется.
Для получения этих сведений SQL Insights (предварительная версия) использует следующий запрос:
InsightsMetrics
| extend Tags = todynamic(Tags)
| extend SqlInstance = tostring(Tags.sql_instance)
| where TimeGenerated > ago(10m) and isnotempty(SqlInstance) and Namespace == 'sqlserver_server_properties' and Name == 'uptime'
Проверьте, есть ли какие-либо журналы из Telegraf, которые могут помочь в поиске первопричины проблемы. Если записи журнала есть, можно выбрать Сбор данных не выполняется и проверить журналы и сведения об устранении неполадок для распространенных проблем.
Если соответствующие записи в журналах отсутствуют, необходимо проверить журналы на виртуальной машине для мониторинга для следующих служб, установленных двумя расширениями виртуальной машины:
Microsoft.Azure.Monitor.AzureMonitorLinuxAgent
- Служба: mdsd
Microsoft.Azure.Monitor.Workloads.Workload.WLILinuxExtension
- Служба: wli
- Служба: telegraf
- Служба: fluent-bit
- Журнал расширений для проверки сбоев установки:
/var/log/azure/Microsoft.Azure.Monitor.Workloads.Workload.WLILinuxExtension/wlilogs.log
Журналы службы wli
Журналы службы: /var/log/wli.log
Чтобы просмотреть последние журналы: tail -n 100 -f /var/log/wli.log
Если отображается следующий журнал ошибок, возникла проблема со службойmdsd
: 2021-01-27T06:09:28Z [Error] Failed to get config data. Error message: dial unix /var/run/mdsd/default_fluent.socket: connect: no such file or directory
Журналы службы Telegraf
Журналы службы: /var/log/telegraf/telegraf.log
Чтобы просмотреть последние журналы: tail -n 100 -f /var/log/ms-telegraf/telegraf.log
Чтобы просмотреть журналы последних ошибок и предупреждений: tail -n 1000 /var/log/ms-telegraf/telegraf.log | grep "E\!\|W!"
Конфигурация, используемая Telegraf, создается службой wli и находится в следующем каталоге: /etc/ms-telegraf/telegraf.d/wli
Если сгенерирована неправильная конфигурация, служба ms-telegraf может не запуститься. Чтобы проверить, запущена ли служба ms-telegraf, выполните следующую команду: service ms-telegraf status
Чтобы просмотреть сообщения об ошибках службы Telegraf, запустите ее вручную с помощью следующей команды:
/usr/bin/ms-telegraf --config /etc/ms-telegraf/telegraf.conf --config-directory /etc/ms-telegraf/telegraf.d/wli --test
Журналы службы mdsd
Проверьте предварительные требования для агента Azure Monitor.
До выхода версии 1.12 агента мониторинга Azure журналы службы mdsd располагались в следующей папке:
/var/log/mdsd.err
/var/log/mdsd.warn
/var/log/mdsd.info
Начиная с версии 1.12, журналы службы находятся в следующей папке:
/var/opt/microsoft/azuremonitoragent/log/
/etc/opt/microsoft/azuremonitoragent/
Чтобы просмотреть последние ошибки: tail -n 100 -f /var/log/mdsd.err
Если вам нужно обратиться в службу поддержки, соберите следующие сведения:
- Журналы в
/var/log/azure/Microsoft.Azure.Monitor.AzureMonitorLinuxAgent/
- Журнал в
/var/log/waagent.log
- Журналы в
/var/log/mdsd*
либо журналы в/var/opt/microsoft/azuremonitoragent/log/
и/etc/opt/microsoft/azuremonitoragent/
. - Файлы в
/etc/mdsd.d/
- Файл
/etc/default/mdsd
Недопустимая конфигурация виртуальной машины для мониторинга
Одной из причин состояния Сбор данных не выполняется является недопустимая конфигурация виртуальной машины мониторинга. Вот простейшая форма конфигурации:
{
"version": 1,
"secrets": {
"telegrafPassword": {
"keyvault": "https://mykeyvault.vault.azure.net/",
"name": "sqlPassword"
}
},
"parameters": {
"sqlAzureConnections": [
"Server=mysqlserver.database.windows.net;Port=1433;Database=mydatabase;User Id=telegraf;Password=$telegrafPassword;"
],
"sqlVmConnections": [
],
"sqlManagedInstanceConnections": [
]
}
}
Эта конфигурация определяет маркеры замены, которые будут использоваться в конфигурации профиля виртуальной машины для мониторинга. Она также позволяет ссылаться на секреты из Azure Key Vault, что позволяет не хранить значения секрета в какой-либо конфигурации (настоятельно рекомендуется).
В этой конфигурации строка подключения к базе данных содержит маркер замены $telegrafPassword
. SQL Insights заменяет маркер паролем проверки подлинности SQL, полученным из Key Vault. URI Key Vault задается в разделе telegrafPassword
конфигурации в подразделе secrets
.
Секреты
Секреты — это маркеры, значения которых извлекаются во время выполнения из хранилища ключей Azure Key Vault. Секрет определяется парой значений, включающей URI-адрес хранилища ключей и имя секрета. Это позволяет SQL Insights получить значение секрета во время выполнения и использовать его в нижестоящей конфигурации.
Вы можете задать нужное количество секретов, в том числе секреты, хранящиеся в разных хранилищах ключей.
"secrets": {
"<secret-token-name-1>": {
"keyvault": "<key-vault-uri>",
"name": "<key-vault-secret-name>"
},
"<secret-token-name-2>": {
"keyvault": "<key-vault-uri-2>",
"name": "<key-vault-secret-name-2>"
}
}
Разрешения на доступ к хранилищу ключей предоставляются управляемому удостоверению на виртуальной машине для мониторинга. Этому управляемому удостоверению должно быть предоставлено разрешение Get для всех секретов Key Vault, указанных в конфигурации профиля мониторинга. Их можно создать с помощью портала Azure, PowerShell, Azure CLI или шаблона Azure Resource Manager.
Параметры
Параметры — это маркеры, на которые можно ссылаться в конфигурации профиля с помощью шаблонов JSON. Параметры имеют имя и значение. Значениями может быть любой тип JSON, в том числе объекты и массивы. На параметр в конфигурации профиля указывает ссылка с использованием его имени в этом соглашении .Parameters.<name>
.
Параметры могут ссылаться на секреты в Key Vault, используя то же соглашение. Например, sqlAzureConnections
ссылается на секрет telegrafPassword
, используя соглашение $telegrafPassword
.
Во время выполнения все параметры и секреты будут разрешены и объединены с конфигурацией профиля для создания фактической конфигурации, которая будет использоваться на компьютере.
Примечание.
Имена параметров sqlAzureConnections
, sqlVmConnections
и sqlManagedInstanceConnections
являются обязательными в конфигурации, даже если для некоторых из них не указаны строки подключения.
Состояние: сбор данных выполняется с ошибками
Компьютер мониторинга будет иметь состояние сбора с ошибками , если есть по крайней мере один недавний журнал InsightsMetrics , но в Operation
таблице также есть ошибки.
Для получения этих сведений SQL Insights использует следующие запросы:
InsightsMetrics
| extend Tags = todynamic(Tags)
| extend SqlInstance = tostring(Tags.sql_instance)
| where TimeGenerated > ago(240m) and isnotempty(SqlInstance) and Namespace == 'sqlserver_server_properties' and Name == 'uptime'
WorkloadDiagnosticLogs
| summarize Errors = countif(Status == 'Error')
Примечание.
Если вы не видите никаких данных в WorkloadDiagnosticLogs
, возможно, требуется обновить профиль мониторинга. На портале Azure в разделе SQL Insights выберите Управление профилем>Изменить профиль>Обновить профиль мониторинга.
В общих случаях мы предоставляем набор знаний по устранению неполадок в нашем представлении журналов:
Известные проблемы
В период доступа к SQL Insights в режиме предварительной версии могут возникать перечисленные ниже известные проблемы.
Ошибка при подключении к серверу или базе данных при входе в систему
Использование в паролях проверки подлинности SQL, сохраненных в конфигурации мониторинга виртуальной машины или в Key Vault, определенных специальных символов может препятствовать подключению виртуальной машины мониторинга к серверу SQL или базе данных. Этот набор символов включает круглые, квадратные и фигурные скобки, знак доллара, прямую и обратную косую черту и точку (
[ { ( ) } ] $ \ / .
).Пробелы в атрибутах строки подключения к базе данных могут быть заменены специальными знаками, что приводит к сбоям при подключении к базе данных. Например, если пробел в атрибуте
User Id
заменить специальным знаком, подключение будет завершаться ошибкой Ошибка входа пользователя ''. Чтобы устранить проблему, измените конфигурацию профиля мониторинга и удалите все специальные знаки, отображаемые вместо пробела. Некоторые специальные знаки могут выглядеть неотличимыми от пробела, поэтому вы можете удалить каждый пробел, ввести его заново и сохранить конфигурацию.Сбор и визуализация данных могут не работать, если имя компьютера операционной системы виртуальной машины мониторинга отличается от имени виртуальной машины мониторинга.
Сообщение "Расширение WLI на этом компьютере ниже рекомендуемой версии [...]" может появиться неправильно, даже если расширение WLI обновлено.
Сбор и визуализация данных могут не работать, если имя компьютера ОС виртуальной машины, на которой установлен SQL Server, не соответствует имени сервера в метаданных SQL Server. Дополнительные сведения см. в разделе "Переименование компьютера", на котором размещен автономный экземпляр SQL Server.
Рекомендации
Обеспечьте доступ к Key Vault из виртуальной машины мониторинга. Если вы используете Key Vault для хранения паролей проверки подлинности SQL (настоятельно рекомендуется), необходимо убедиться, что конфигурация сети и безопасности позволяет виртуальной машине мониторинга беспрепятственно обращаться к Key Vault. Дополнительные сведения см. в разделах Доступ к Azure Key Vault из-за брандмауэра и Настройка сетевых параметров Azure Key Vault. Чтобы убедиться, что виртуальная машина мониторинга может обращаться к Key Vault, выполните указанные ниже команды из сеанса подключения SSH к виртуальной машине. Вы должны успешно получить маркер доступа и секрет. Замените
[YOUR-KEY-VAULT-URL]
,[YOUR-KEY-VAULT-SECRET]
и[YOUR-KEY-VAULT-ACCESS-TOKEN]
соответствующими значениями.# Get an access token for accessing Key Vault secrets curl 'http://[YOUR-KEY-VAULT-URL]/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fvault.azure.net' -H Metadata:true # Get Key Vault secret curl 'https://[YOUR-KEY-VAULT-URL]/secrets/[YOUR-KEY-VAULT-SECRET]?api-version=2016-10-01' -H "Authorization: Bearer [YOUR-KEY-VAULT-ACCESS-TOKEN]"
Обновите программного обеспечения на виртуальной машине мониторинга Мы настоятельно рекомендуем периодически обновлять операционную систему и расширения на виртуальной машине мониторинга. Если расширение поддерживает автоматическое обновление, включите его.
Сохраняйте предыдущие конфигурации. Если вы хотите внести изменения в профиль мониторинга или конфигурацию виртуальной машины мониторинга, рекомендуется сначала сохранить рабочую копию данных конфигурации. На странице SQL Insights на портале Azure выберите Управление профилем>Изменить профиль и скопируйте текст текущей конфигурации профиля мониторинга в файл. Аналогичным образом выберите Управление профилем>Настроить для виртуальной машины мониторинга и скопируйте текст из текущей конфигурации мониторинга в файл. Если ошибки сбора данных возникают после изменения конфигурации, сравните новую конфигурацию с известной рабочей конфигурацией с помощью инструмента сравнения текста, который поможет найти изменения, повлиявшие на сбор данных.
Следующие шаги
- Узнайте больше о включении аналитики SQL (предварительная версия).