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.
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, sqlVmConnections
mesmo que você não forneça cadeias de sqlAzureConnections
conexã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:
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
- Obtenha detalhes sobre como habilitar o SQL Insights (visualização).