Partilhar via


Solucionar problemas do SQL Insights (visualização)

Aplica-se a:Banco de Dados SQL do Azure Instância Gerenciada SQLdo Azure

Para solucionar problemas de coleta de dados no SQL Insights (visualização), verifique o status da máquina de monitoramento na guia Gerenciar perfil . Os estados são:

  • Recolha
  • Não recolher
  • Recolha com erros

Selecione o status para ver os logs e mais detalhes que podem ajudá-lo a resolver o problema.

Screenshot that shows a monitoring machine status.

Estado: Não está a recolher

A máquina de monitoramento tem um status de Não coletando se não houver dados no InsightsMetrics for SQL nos últimos 10 minutos.

Nota

Certifique-se de que está a tentar recolher dados de uma versão suportada do SQL. Por exemplo, tentar coletar dados com um perfil e uma cadeia de conexão válidos, mas de uma versão sem suporte do Banco de Dados SQL do Azure, resultará em um status Não coletado .

O SQL Insights (visualização) usa a seguinte consulta para recuperar essas informações:

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' 

Verifique se algum log do Telegraf ajuda a identificar a causa raiz do problema. Se houver entradas de log, você poderá selecionar Não coletar e verificar os logs e as informações de solução de problemas para problemas comuns.

Se não houver entradas de log, verifique os logs na máquina virtual de monitoramento para os seguintes serviços instalados por duas extensões de máquina virtual:

  • Microsoft.Azure.Monitor.AzureMonitorLinuxAgent
    • Serviço: mdsd
  • Microsoft.Azure.Monitor.Workloads.Workload.WLILinuxExtension
    • Serviço: wli
    • Serviço: telegraf
    • Serviço: fluent-bit
    • Log de extensão para verificar falhas de instalação: /var/log/azure/Microsoft.Azure.Monitor.Workloads.Workload.WLILinuxExtension/wlilogs.log

Logs de serviço WLI

Logs de serviço: /var/log/wli.log

Para ver os registos recentes: tail -n 100 -f /var/log/wli.log

Se vir o seguinte registo de erros, existe um problema com o mdsd serviço: 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 .

Registos de serviço Telegraf

Logs de serviço: /var/log/telegraf/telegraf.log

Para ver os registos recentes: tail -n 100 -f /var/log/ms-telegraf/telegraf.log

Para ver os registos de erros e avisos recentes: tail -n 1000 /var/log/ms-telegraf/telegraf.log | grep "E\!\|W!"

A configuração que o telegraf usa é gerada pelo serviço wli e colocada em: /etc/ms-telegraf/telegraf.d/wli

Se uma configuração incorreta for gerada, o serviço ms-telegraf pode falhar ao iniciar. Verifique se o serviço ms-telegraf está em execução usando este comando: service ms-telegraf status

Para ver mensagens de erro do serviço telegraf, execute-o manualmente usando o seguinte comando:

/usr/bin/ms-telegraf --config /etc/ms-telegraf/telegraf.conf --config-directory /etc/ms-telegraf/telegraf.d/wli --test 

Logs de serviço MDSD

Verifique os pré-requisitos para o agente do Azure Monitor.

Antes do Azure Monitoring Agent v1.12, os logs de serviço mdsd estavam localizados em:

  • /var/log/mdsd.err
  • /var/log/mdsd.warn
  • /var/log/mdsd.info

A partir da v1.12, os logs de serviço estão localizados em:

  • /var/opt/microsoft/azuremonitoragent/log/
  • /etc/opt/microsoft/azuremonitoragent/

Para ver erros recentes: tail -n 100 -f /var/log/mdsd.err

Se você precisar entrar em contato com o suporte, colete as seguintes informações:

  • Iniciar sessão /var/log/azure/Microsoft.Azure.Monitor.AzureMonitorLinuxAgent/
  • Iniciar sessão /var/log/waagent.log
  • Inicia sessão , ou inicia sessão /var/log/mdsd*e /var/opt/microsoft/azuremonitoragent/log//etc/opt/microsoft/azuremonitoragent/.
  • Arquivos em /etc/mdsd.d/
  • Ficheiro /etc/default/mdsd

Configuração de máquina virtual de monitoramento inválida

Uma causa do status Não coletando é uma configuração inválida para a máquina virtual de monitoramento. Aqui está a forma mais simples de configuração:

{
    "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": [
        ]
    }
}

Essa configuração especifica os tokens de substituição a serem usados na configuração de perfil em sua máquina virtual de monitoramento. Ele também permite que você faça referência a segredos do Cofre de Chaves do Azure, para que você não precise manter valores secretos em nenhuma configuração (o que recomendamos fortemente).

Nessa configuração, a cadeia de conexão do banco de dados inclui um $telegrafPassword token de substituição. O SQL Insights substitui esse token pela senha de autenticação SQL recuperada do Cofre de Chaves. O URI do Cofre da Chave é especificado na seção de telegrafPassword configuração em secrets.

Segredos

Segredos são tokens cujos valores são recuperados em tempo de execução de um cofre de chaves do Azure. Um segredo é definido por um par de valores que inclui o URI do cofre de chaves e um nome secreto. Essa definição permite que o SQL Insights obtenha o valor do segredo em tempo de execução e o use na configuração downstream.

Você pode definir quantos segredos forem necessários, incluindo segredos armazenados em vários cofres de chaves.

   "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>"
        }
    }

A permissão para acessar o cofre de chaves é fornecida a uma identidade gerenciada na máquina virtual de monitoramento. Essa identidade gerenciada deve receber a permissão Obter em todos os segredos do Cofre da Chave referenciados na configuração do perfil de monitoramento. Isso pode ser feito no portal do Azure, PowerShell, CLI do Azure ou um modelo do Azure Resource Manager.

Parâmetros

Os parâmetros são tokens que podem ser referenciados na configuração do perfil por meio de modelos JSON. Os parâmetros têm um nome e um valor. Os valores podem ser de qualquer tipo JSON, incluindo objetos e matrizes. Um parâmetro é referenciado na configuração do perfil pelo seu nome, usando esta convenção: .Parameters.<name>.

Os parâmetros podem fazer referência a segredos no Cofre da Chave usando a mesma convenção. Por exemplo, sqlAzureConnections faz referência ao segredo telegrafPassword usando a convenção $telegrafPassword.

No tempo de execução, todos os parâmetros e segredos serão resolvidos e mesclados com a configuração do perfil para construir a configuração real a ser usada na máquina.

Nota

Os nomes dos parâmetros de , e sqlManagedInstanceConnections são todos necessários na configuração, sqlVmConnectionsmesmo que você não forneça cadeias de sqlAzureConnectionsconexão para alguns deles.

Estado: Recolha com erros

A máquina de monitoramento terá o status Coletando com erros se houver pelo menos um log recente do InsightsMetrics, mas também houver erros na Operation tabela.

O SQL Insights usa as seguintes consultas para recuperar essas informações:

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')

Nota

Se você não vir nenhum dado no WorkloadDiagnosticLogs, talvez seja necessário atualizar seu perfil de monitoramento. No SQL Insights no portal do Azure, selecione Gerenciar perfil Editar perfil Atualizar perfil>> de monitoramento.

Para casos comuns, fornecemos dicas de solução de problemas em nossa visualização de registros:

A screenshot of the Azure Monitor page for Troubleshoot SQL logs in the Azure portal.

Problemas conhecidos

Durante a visualização do SQL Insights, você pode encontrar os seguintes problemas conhecidos.

  • Erro 'Falha no login' ao ligar ao servidor ou à base de dados

    O uso de determinados caracteres especiais em senhas de autenticação SQL salvas na configuração da VM de monitoramento ou no Cofre da Chave pode impedir que a VM de monitoramento se conecte a um servidor ou banco de dados SQL. Este conjunto de caracteres inclui parênteses, colchetes quadrados e encaracolados, o cifrão, barras para frente e para trás e ponto ([ { ( ) } ] $ \ / .).

  • Os espaços nos atributos da cadeia de conexão do banco de dados podem ser substituídos por caracteres especiais, levando a falhas de conexão do banco de dados. Por exemplo, se o User Id espaço no atributo for substituído por um caractere especial, as conexões falharão com o erro Falha de login para o usuário '' . Para resolver, edite a configuração do perfil de monitoramento e exclua todos os caracteres especiais que aparecem no lugar de um espaço. Alguns caracteres especiais podem parecer indistinguíveis de um espaço, portanto, você pode querer excluir todos os caracteres de espaço, digitá-los novamente e salvar a configuração.

  • A coleta e a visualização de dados podem não funcionar se o nome do computador do sistema operacional da VM de monitoramento for diferente do nome da VM de monitoramento.

  • Uma mensagem "A extensão WLI nesta máquina está abaixo da versão recomendada [...]" pode aparecer incorretamente mesmo quando a extensão WLI está atualizada.

Melhores práticas

  • Garanta o acesso ao Cofre da Chave a partir da VM de monitoramento. Se você usar o Cofre da Chave para armazenar senhas de autenticação SQL (altamente recomendado), precisará garantir que a configuração de rede e segurança permita que a VM de monitoramento acesse o Cofre da Chave. Para obter mais informações, consulte Acessar o Cofre da Chave do Azure atrás de um firewall e Configurar as configurações de rede do Cofre da Chave do Azure. Para verificar se a VM de monitoramento pode acessar o Cofre da Chave, você pode executar os seguintes comandos a partir de uma sessão SSH conectada à VM. Você deve ser capaz de recuperar com êxito o token de acesso e o segredo. Substitua [YOUR-KEY-VAULT-URL], [YOUR-KEY-VAULT-SECRET], e [YOUR-KEY-VAULT-ACCESS-TOKEN] por valores reais.

    # 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]"
    
  • Atualize o software na VM de monitoramento. É altamente recomendável atualizar periodicamente o sistema operacional e as extensões na VM de monitoramento. Se uma extensão suportar a atualização automática, ative essa opção.

  • Salve as configurações anteriores. Se você quiser fazer alterações no perfil de monitoramento ou na configuração da VM de monitoramento, recomendamos salvar uma cópia de trabalho dos dados de configuração primeiro. Na página SQL Insights no portal do Azure, selecione Gerenciar perfil Editar perfil> e copie o texto da Configuração de Perfil de Monitoramento Atual para um arquivo. Da mesma forma, selecione Gerenciar configuração de perfil para a VM de monitoramento e copie o texto da configuração> de monitoramento atual para um arquivo. Se ocorrerem erros de recolha de dados após alterações na configuração, pode comparar a nova configuração com a configuração de trabalho conhecida utilizando uma ferramenta de comparação de texto para o ajudar a localizar quaisquer alterações que possam ter afetado a recolha.

Próximos passos