Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se:SQL Server
Além dos pontos de extremidade usuais, a extensão do Azure Arc para SQL Server se conecta a dois outros pontos de extremidade:
Ponto de extremidade do serviço de processamento de dados (DPS)
As informações de inventário coletadas sobre instâncias do SQL Server, bancos de dados, grupos de disponibilidade e dados de uso para fins de cobrança são enviadas para esse ponto de extremidade.
Endpoint de telemetria
Os logs do Azure Connected Machine Agent, os logs da extensão do Azure para o SQL Server e os dados das Exibições de Gerenciamento Dinâmico (DMV) são enviados para esse ponto de extremidade.
A comunicação com esses pontos de extremidade utiliza HTTPS com SSL/TLS e a porta TCP/443 para conexões criptografadas e seguras. O agente inicia a comunicação para enviar os dados para o Azure. O Azure nunca inicia comunicação. A conectividade com esses pontos de extremidade é, portanto, apenas unidirecional.
Quando a comunicação com esses pontos de extremidade é bloqueada, o serviço tem os seguintes sintomas:
- Você não vê instâncias do SQL Server no portal do Azure. O ponto de extremidade do DPS está bloqueado.
- Você não vê dados na exibição de painéis de desempenho da instância do SQL Server. Se o ponto de extremidade DPS for desbloqueado, mas o ponto de extremidade de telemetria estiver bloqueado.
- Você vê um erro na extensão do Azure para status do SQL Server no portal do Azure. Consulte Verificar o status da Extensão Azure para SQL Server no portal do Azure.
- Você vê um erro na extensão do Azure para o log do SQL Server. Examine Verificar a Extensão do Azure para logs do SQL Server.
Estado atual da extensão do Azure
Você pode exibir o estado atual da extensão do Azure para SQL Server no portal. Os dados são atualizados a cada 30 minutos.
Estado saudável
Verifique se você tem um problema ao se conectar aos pontos de extremidade de DPS ou telemetria
Existem duas maneiras de verificar se você enfrenta problemas de conectividade com o DPS ou os endpoints de telemetria.
Verifique o status da Extensão Azure para SQL Server no portal do Azure
Se estiver conectado ao Azure em geral, a Extensão do Azure para SQL Server relatará seu status no portal do Azure.
- Navegue até a exibição Máquinas - Azure Arc no portal do Azure, localize a máquina pelo nome e selecione-a.
- Selecione Extensões.
- Selecione WindowsAgent.SqlServer ou LinuxAgent.SqlServer para exibir os detalhes.
- Observe a mensagem de status e o valor
uploadStatus. Se for algo diferente de OK,, há um problema com a conexão com o DPS. Se for0, é provável que haja um firewall bloqueando a comunicação com o ponto de extremidade DPS. Pode haver mais detalhes na mensagem de status ou no código de errouploadStatusque podem fornecer informações sobre o problema de conectividade.
Verifique os logs da Extensão do Azure para SQL Server.
O arquivo de log de extensão está em:
C:\ProgramData\GuestConfig\extension_logs\Microsoft.AzureData.WindowsAgent.SqlServer\
O nome do arquivo de log depende da versão da Extensão do Azure para SQL Server. Para a versão mais recente da Extensão do Azure para SQL Server, o arquivo de log é:
unifiedagent.log
Para a versão de extensão 1.1.24724.69 e versões anteriores, o arquivo de log é:
ExtensionLog_0.log
Verifique as entradas de log que indiquem um problema de conexão com o DPS ou com os endpoints de telemetria.
Investigação de pontos de extremidade de servidor Web
Você pode usar várias ferramentas para sondar os endpoints do servidor web para DPS e telemetria. Por exemplo, Invoke-WebRequest ou curl.
O exemplo a seguir usa Invoke-Webrequest:
Invoke-WebRequest telemetry.<region>.arcdataservices.com
Um possível código de status de resposta é:
Invoke-WebRequest: Response status code does not indicate success: 401 (Unauthorized).
401 é esperado porque não há uma rota não autenticada no endpoint de telemetria.
Para o DPS:
Invoke-WebRequest dataprocessingservice.<region>.arcdataservices.com
Para o governo dos EUA na Virgínia, substitua arcdataservices.com por arcdataservices.azure.us. Este exemplo seria:
Invoke-WebRequest dataprocessingservice.<region>.arcdataservices.azure.us
Um possível código de status de resposta é:
StatusCode : 200
StatusDescription : OK
Espera-se 200, pois há uma rota não autenticada.
Verificar conectividade para todas as regiões
Você pode investigar a conectividade com todas as regiões com o script do PowerShell test-connectivity.ps1.
Nota
Para a região do governo dos EUA na Virgínia, substitua arcdataservices.com por arcdataservices.azure.us.
#This script repeatedly probes all regions for connectivity to the Azure Arc data services/Arc-enabled SQL Server endpoints for telemetry and the data processing service.
#The script will output the status of the connectivity to the console.
#The script will run indefinitely until stopped by the user.
#The script will iterate through all regions in the $regions array.
#The list of regions are updated as of June 7,2024 to reflect all publicly available, supported Azure regions for Arc-enabled SQL Server.
$regions = @(
"East US",
"East US 2",
"West US 2",
"West US 3",
"Central US",
"North Central US",
"South Central US",
"West Central US",
"Canada Central",
"Canada East",
"UK South",
"UK West",
"France Central",
"West Europe",
"North Europe",
"Switzerland North",
"Central India",
"Brazil South",
"South Africa North",
"UAE North",
"Japan East",
"Korea Central",
"Southeast Asia",
"Australia East",
"Sweden Central",
"Norway East"
)
$regions = $regions | ForEach-Object { $_.Replace(" ", "") }
do{
$regions | ForEach-Object {
$dps_url = "dataprocessingservice.$_.arcdataservices.com"
$ti_url = "telemetry.$_.arcdataservices.com"
try{
$dps_response_time = Measure-Command { $response = Invoke-WebRequest -Uri $dps_url -Method Get }
$dps_result = ($response).StatusCode
}catch{
$dps_result = $_.Exception.Message
}
try{
$ti_response_time = Measure-Command { $response = Invoke-WebRequest -Uri $ti_url -Method Get -SkipHttpErrorCheck }
}catch{
if($_.Exception.Message -like "*401*"){
$ti_result = "Expected"
}
else {
$ti_result = $_.Exception.Message
}
}
if ($ti_response_time.TotalSeconds -gt 3 -or $dps_response_time.TotalSeconds -gt 3 -or $dps_result -ne 200 -or $ti_result -ne "Expected") {
Write-Host $dps_result "($dps_response_time) " $ti_result " ($ti_response_time) :: $_" -ForegroundColor Red
}
elseif ($ti_response_time.TotalSeconds -gt 1 -or $dps_response_time.TotalSeconds -gt 1) {
Write-Host $dps_result "($dps_response_time) " $ti_result " ($ti_response_time) :: $_" -ForegroundColor Yellow
}
else
{
Write-Host $dps_result "($dps_response_time) " $ti_result " ($ti_response_time) :: $_"
}
}
Write-Host "====================================================================="
} while($true)
Verificar a compatibilidade de versão do TLS
O ponto de extremidade do serviço de processamento de dados dá suporte às seguintes versões do TLS: TLS 1.2 e 1.3. Não há suporte para o Windows Server 2012 e versões mais antigas.
Para pontos de extremidade de telemetria, não há suporte para o Windows Server 2012 R2 e versões mais antigas.
Se uma versão do TLS sem suporte estiver sendo usada, você poderá ver um erro no log
<date time>|ERROR|SqlServerExtension.Service|Request failed with exception 'System.Net.Http.HttpRequestException: The SSL connection could not be established, see inner exception.
---> System.Security.Authentication.AuthenticationException: Authentication failed because the remote party sent a TLS alert: 'HandshakeFailure'.
---> System.ComponentModel.Win32Exception (0x80090326): The message received was unexpected or badly formatted.
Referência de ponto de extremidade
Para se conectar ao Azure, os pontos de extremidade usam *.arcdataservices.com.
Plano de fundo adicional
A Extensão do Azure para SQL Server usa os seguintes pontos de extremidade:
- DPS:
dataprocessingservice.<region>.arcdataservices.com, ou para a região do governo dos EUA na Virgínia,*.<region>.arcdataservices.azure.us. - Telemetria
telemetry.<region>.arcdataservices.com
Substitua <region> pelo nome curto da região do Azure onde o recurso de máquina Arc está localizado. O nome curto é derivado do nome da região do Azure, sem espaços e em minúsculas.
Por exemplo, se o recurso da máquina Arc estiver localizado em East US 2, o nome abreviado da região será eastus2 e o ponto de extremidade da telemetria é:
telemetry.eastus2.arcdataservices.com
Se sua extensão for anterior a 11 de março de 2024, ela poderá usar endpoints mais antigos. Atualize sua extensão para usar o endpoint atual.
Nota
Os valores de endpoint antes de *.arcdataservices.com estão sujeitos a alterações.
Usar um servidor proxy HTTPS para conectividade de saída
Se sua rede exigir o uso de um servidor proxy HTTPS para conectividade de saída, você poderá ler mais sobre como configurar isso em Atualizar ou remover configurações de proxy.
Consulte o Azure Resource Graph para obter estatísticas de upload de telemetria
Use o Azure Resource Graph para consultar o status de upload do seu ambiente.
resources
| where type =~ 'microsoft.hybridcompute/machines/extensions'
| where properties.type in ('WindowsAgent.SqlServer','LinuxAgent.SqlServer')
| parse id with * '/providers/Microsoft.HybridCompute/machines/' machineName '/extensions/' *
| parse properties with * 'uploadStatus : ' uploadStatus ';' *
| project uploadStatus, subscriptionId, resourceGroup, machineName
| where uploadStatus !in ('OK') //comment this out to see all upload stats
| order by uploadStatus desc
Localizar extensões SQL que não se conectam ao DPS há muito tempo
Consulte o Azure Resource Graph para localizar extensões que não se conectaram ao DPS recentemente.
resources
| where type =~ 'microsoft.hybridcompute/machines/extensions'
| where properties.type in ('WindowsAgent.SqlServer','LinuxAgent.SqlServer')
| parse id with * '/providers/Microsoft.HybridCompute/machines/' machineName '/extensions/' *
| parse properties with * 'timestampUTC : ' timestampUTC ';' *
| project timestampUTC, subscriptionId, resourceGroup, machineName
| order by timestampUTC desc
Códigos do Erro
A tabela a seguir mostra alguns dos valores comuns de status de upload do DPS e o que você pode fazer para solucionar mais problemas.
| Valor do status de upload do DPS | Código de erro do HTTP | Sugestões para resolução de problemas |
|---|---|---|
0 |
Causa provável: um firewall está bloqueando a transmissão dos dados para o DPS. Abra o firewall para o ponto de extremidade DNS do DPS (TCP, porta: 443). | |
OK |
200 | A conexão está funcionando conforme o esperado. |
Bad request |
400 | Causa possível: o nome do recurso (instância do SQL Server ou nome do banco de dados) não está em conformidade com as convenções de nomenclatura para os recursos do Azure. Por exemplo, se o nome do banco de dados for uma palavra reservada. |
Unauthorized |
401 | Causa provável: a extensão está configurada para enviar dados por meio de um proxy HTTP que requer autenticação. No momento, não há suporte para o uso de um proxy HTTP que exija autenticação. Utilize um proxy HTTP sem autenticação ou não utilize proxy algum. |
Forbidden |
403 | Verifique se o Microsoft.AzureArcData provedor de recursos está registrado na assinatura. Se o Azure Connected Machine Agent estiver funcionando conforme o esperado e esse erro não se resolver após uma reinicialização, crie um caso de suporte com o Suporte da Microsoft por meio do portal do Azure. |
NotFound |
404 | O ponto de extremidade ao qual a extensão está tentando se conectar não existe. Para verificar a qual endpoint ele está tentando se conectar, pesquise por dataprocessingservice nos logs. Essa condição pode acontecer se o agente do Azure Connected Machine foi implantado e conectado a uma região do Azure na qual o Microsoft.AzureArcData provedor de recursos ainda não está disponível. Reimplante o Azure Connected Machine Agent em uma região em que o provedor de recursos Microsoft.AzureArcData para um SQL Server habilitado pelo Azure Arc esteja disponível. Confira também a disponibilidade da região.É possível que o cache de resolvedor DNS não seja atualizado para seu computador. Para atualizar: - Na execução do Windows: ipconfig /flushdns- No Linux (se systemd estiver sendo usado) execute: sudo resolvectl flush-caches |
Conflict |
409 | Causa provável: erro temporário que ocorre dentro do DPS. Se isso não se resolver, crie um caso de suporte com o Suporte da Microsoft por meio do portal do Azure. |
InternalServerError |
500 | Este é um erro que está acontecendo dentro do DPS. Crie um caso de suporte com o Suporte da Microsoft por meio do portal do Azure. |
Conteúdo relacionado
- Solucionar problemas de extensão do Azure para implantação do SQL Server
- Solucionar problemas de avaliação de práticas recomendadas no SQL Server
- Configurar práticas recomendadas de avaliação do SQL Server habilitado pelo Azure Arc
- Gerenciar o inventário de recursos do SQL Server com o Azure Arc
- Configurar o SQL Server habilitado pelo Azure Arc
- Usar logs de atividade do SQL Server habilitado pelo Azure Arc
- Coleção de dados e relatórios do SQL Server habilitado pelo o Azure Arc
