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

Состояние: сбор данных выполняется с ошибками

Компьютер мониторинга будет иметь состояние сбора с ошибками, если в таблице есть по крайней мере один недавний журнал Аналитика Metrics, но в 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 выберите Управление профилем>Изменить профиль>Обновить профиль мониторинга.

В общих случаях мы предоставляем набор знаний по устранению неполадок в нашем представлении журналов:

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

Известные проблемы

В период доступа к 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 выберите Управление профилем>Изменить профиль и скопируйте текст текущей конфигурации профиля мониторинга в файл. Аналогичным образом выберите Управление профилем>Настроить для виртуальной машины мониторинга и скопируйте текст из текущей конфигурации мониторинга в файл. Если ошибки сбора данных возникают после изменения конфигурации, сравните новую конфигурацию с известной рабочей конфигурацией с помощью инструмента сравнения текста, который поможет найти изменения, повлиявшие на сбор данных.

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