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 A: Banco de Dados SQL do Azure, Instância SQL Gerenciada do Azure
Cuidado
A Análise de SQL do Azure (versão prévia) é uma integração com o Azure Monitor, em que muitas soluções de monitoramento não estão mais em desenvolvimento ativo. Para obter mais opções de monitoramento, consulte Monitoramento e ajuste de desempenho no Banco de Dados SQL do Azure e na Instância Gerenciada de SQL do Azure.
A Análise de SQL do Azure (versão prévia) é uma solução avançada de monitoramento de nuvem para monitorar o desempenho de todos os bancos de dados SQL do Azure em escala e em várias assinaturas em uma única exibição. A Análise de SQL do Azure coleta e visualiza as principais métricas de desempenho com inteligência interna para solução de problemas de desempenho.
Usando essas métricas coletadas, você pode criar regras e alertas de monitoramento personalizados. A Análise de SQL do Azure ajuda você a identificar problemas em cada camada da pilha de aplicativos. A Análise de SQL do Azure usa métricas de Diagnóstico do Azure junto com exibições do Azure Monitor para apresentar dados sobre todos os bancos de dados SQL do Azure em um único workspace do Log Analytics. O Azure Monitor ajuda você a coletar, correlacionar e visualizar dados estruturados e não estruturados.
Fontes conectadas
A Análise de SQL do Azure é uma solução de monitoramento somente na nuvem que dá suporte ao streaming de telemetria de diagnóstico para todos os bancos de dados SQL do Azure. Como a Análise de SQL do Azure não usa agentes para se conectar ao Azure Monitor, ela não dá suporte ao monitoramento do SQL Server hospedado localmente ou em máquinas virtuais.
Origem conectada | Suportado | Descrição |
---|---|---|
Configurações de diagnóstico | Sim | Os dados de métrica e log do Azure são enviados diretamente pelo Azure para o Azure Monitor Logs. |
Conta de Armazenamento do Azure | Não | O Azure Monitor não lê os dados de uma conta de armazenamento. |
agentes do Windows | Não | Os agentes diretos do Windows não são usados pela Análise de SQL do Azure. |
Agentes Linux | Não | Os agentes diretos do Linux não são usados pela Análise de SQL do Azure. |
Grupo de Gerenciamento do System Center Operations Manager | Não | Uma conexão direta do agente do Operations Manager com o Azure Monitor não é usada pela Análise de SQL do Azure. |
Opções da Análise de SQL do Azure
A tabela abaixo descreve as opções com suporte para duas versões do painel da Análise de SQL do Azure, uma para o Banco de Dados SQL do Azure e outra para bancos de dados da Instância Gerenciada de SQL do Azure.
Opção análise de SQL do Azure | Descrição | Suporte ao Banco de Dados SQL | Suporte à Instância Gerenciada de SQL |
---|---|---|---|
Recurso por tipo | Perspectiva que conta todos os recursos monitorados. | Sim | Sim |
Inspirações | Fornece detalhamento hierárquico sobre o desempenho do Intelligent Insights. | Sim | Sim |
Erros | Fornece uma análise hierárquica sobre erros sql que ocorreram nos bancos de dados. | Sim | Sim |
Tempos de Espera | Oferece investigação hierárquica dos timeouts de SQL que ocorreram dentro dos bancos de dados. | Sim | Não |
Bloqueios | Fornece detalhamento hierárquico em bloqueios SQL que ocorreram nos bancos de dados. | Sim | Não |
Esperas de banco de dados | Fornece uma análise detalhada hierárquica das estatísticas de espera do SQL no nível do banco de dados. Inclui resumos do tempo total de espera e do tempo de espera por tipo de espera. | Sim | Não |
Duração da consulta | Fornece uma busca detalhada hierárquica nas estatísticas de execução da consulta, como duração da consulta, uso da CPU, uso de E/S de dados, uso de E/S de log. | Sim | Sim |
Esperas de consulta | Fornece uma análise hierárquica detalhada das estatísticas de espera de consultas, classificadas por categoria de espera. | Sim | Sim |
Configuração da Análise de SQL do Azure (versão prévia)
Use o processo descrito em Adicionar soluções do Azure Monitor por meio da Galeria de Soluções para adicionar o Azure SQL Analytics (versão prévia) ao seu workspace do Log Analytics.
Configurar o Banco de Dados SQL do Azure para transmitir telemetria de diagnóstico
Depois de criar a solução do Azure SQL Analytics em seu workspace, você precisará configurar cada recurso que deseja monitorar para transmitir sua telemetria de diagnóstico para a Análise de SQL do Azure. Siga as instruções detalhadas nesta página:
- Habilite o Diagnóstico do Azure para seu banco de dados para transmitir telemetria de diagnóstico para a Análise de SQL do Azure.
A página acima também fornece instruções sobre como habilitar o suporte para monitorar várias assinaturas do Azure de um único workspace do Azure SQL Analytics como um único painel de vidro.
Usar a Análise de SQL do Azure (versão prévia)
Acesse a implantação do SQL Analytics na página soluções herdadas do workspace do Log Analytics.
A Análise de SQL do Azure fornece duas exibições separadas: uma para monitorar o Banco de Dados SQL e outra para monitorar a Instância Gerenciada de SQL.
Exibindo dados da Análise de SQL do Azure
O painel inclui a visão geral de todos os bancos de dados monitorados por meio de diferentes perspectivas. Para que diferentes perspectivas funcionem, você deve habilitar métricas ou logs adequados em seus recursos SQL para serem transmitidos para o workspace do Log Analytics.
Se algumas métricas ou logs não forem transmitidos para o Azure Monitor, os blocos na Análise de SQL do Azure não serão preenchidos com informações de monitoramento.
Exibição do Banco de Dados SQL
Depois que o bloco da Análise de SQL do Azure para o banco de dados for selecionado, o painel de monitoramento será mostrado.
Selecionar qualquer um dos blocos abre um relatório detalhado na perspectiva específica. Depois que a perspectiva é selecionada, o relatório de detalhamento é aberto.
Cada perspectiva nessa exibição fornece resumos nos níveis de assinatura, servidor, pool elástico e banco de dados. Além disso, cada perspectiva apresenta uma visão específica do relatório localizado à direita. A seleção da assinatura, do servidor, do pool ou do banco de dados da lista continua a exploração detalhada.
Exibição da Instância Gerenciada de SQL
Depois que o bloco da Análise de SQL do Azure para os bancos de dados for selecionado, o painel de monitoramento será mostrado.
Selecionar qualquer um dos blocos abre um relatório detalhado na perspectiva específica. Depois que a perspectiva é selecionada, o relatório de detalhamento é aberto.
Selecionar a visualização de Instância Gerenciada do SQL mostra detalhes sobre a utilização da instância, os bancos de dados da instância e a telemetria das consultas executadas na instância gerenciada.
Relatório do Intelligent Insights
O Intelligent Insights do Banco de Dados SQL do Azure permite que você saiba o que está acontecendo com o desempenho de todos os bancos de dados SQL do Azure. Todos os Insights Inteligentes coletados podem ser visualizados e acessados através da perspectiva Insights.
Pools elásticos e relatórios de banco de dados
Os pools elásticos e os bancos de dados têm seus próprios relatórios específicos que mostram todos os dados coletados para o recurso no tempo especificado.
Consultar relatórios
Por meio da duração da consulta e das perspectivas de espera de consulta, você pode correlacionar o desempenho de qualquer consulta por meio do relatório de consulta. Este relatório compara o desempenho da consulta em diferentes bancos de dados e facilita a identificação de bancos de dados que executam bem a consulta selecionada em comparação com os que estão lentos.
Permissões
Para usar a Análise de SQL do Azure (versão prévia), os usuários precisam receber uma permissão mínima da função Leitor no Azure. Essa função, no entanto, não permite que os usuários vejam o texto da consulta ou executem ações de ajuste automático. As funções mais permissivas no Azure que permitem o uso da Análise do Azure SQL na máxima extensão são Proprietário, Colaborador, Colaborador do Banco de Dados SQL ou Colaborador do SQL Server. Você também pode considerar a criação de uma função personalizada no portal com permissões específicas necessárias apenas para usar a Análise de SQL do Azure e sem acesso ao gerenciamento de outros recursos.
Criar uma função personalizada no portal
Observação
Recomendamos que você use o módulo do Az PowerShell do Azure para interagir com o Azure. Confira Instalar o Azure PowerShell para começar. Para saber como migrar para o módulo Az PowerShell, confira Migrar o Azure PowerShell do AzureRM para o Az.
Reconhecendo que algumas organizações impõem controles de permissão estritos no Azure, localize o script do PowerShell a seguir, permitindo a criação de uma função personalizada "Operador de Monitoramento da Análise de SQL" no portal do Azure com as permissões mínimas de leitura e gravação necessárias para usar a Análise de SQL do Azure em sua extensão mais completa.
Substitua "{SubscriptionId}" no script abaixo pela sua ID de subscrição do Azure e execute o script logado com a função de proprietário ou colaborador no Azure.
Connect-AzAccount
Select-AzSubscription {SubscriptionId}
$role = Get-AzRoleDefinition -Name Reader
$role.Name = "SQL Analytics Monitoring Operator"
$role.Description = "Lets you monitor database performance with Azure SQL Analytics as a reader. Does not allow change of resources."
$role.IsCustom = $true
$role.Actions.Add("Microsoft.SQL/servers/databases/read");
$role.Actions.Add("Microsoft.SQL/servers/databases/topQueries/queryText/*");
$role.Actions.Add("Microsoft.Sql/servers/databases/advisors/read");
$role.Actions.Add("Microsoft.Sql/servers/databases/advisors/write");
$role.Actions.Add("Microsoft.Sql/servers/databases/advisors/recommendedActions/read");
$role.Actions.Add("Microsoft.Sql/servers/databases/advisors/recommendedActions/write");
$role.Actions.Add("Microsoft.Sql/servers/databases/automaticTuning/read");
$role.Actions.Add("Microsoft.Sql/servers/databases/automaticTuning/write");
$role.Actions.Add("Microsoft.Sql/servers/advisors/read");
$role.Actions.Add("Microsoft.Sql/servers/advisors/write");
$role.Actions.Add("Microsoft.Sql/servers/advisors/recommendedActions/read");
$role.Actions.Add("Microsoft.Sql/servers/advisors/recommendedActions/write");
$role.Actions.Add("Microsoft.Resources/deployments/write");
$role.AssignableScopes = "/subscriptions/{SubscriptionId}"
New-AzRoleDefinition $role
Depois que a nova função for criada, atribua essa função a cada usuário que você precisa para conceder permissões personalizadas para usar a Análise de SQL do Azure.
Analisar dados e criar alertas
A análise de dados no Azure SQL Analytics baseia-se no idioma do Log Analytics para suas consultas e relatórios personalizados. Encontre a descrição dos dados disponíveis coletados do banco de dados para consulta personalizada em métricas e logs disponíveis.
O alerta automatizado no Azure SQL Analytics baseia-se na gravação de uma consulta do Log Analytics que dispara um alerta após uma condição atendida. Encontre abaixo vários exemplos de consultas do Log Analytics nas quais os alertas podem ser configurados no Azure SQL Analytics.
Criar alertas para o Banco de Dados SQL do Azure
Você pode criar alertas facilmente com os dados provenientes dos recursos do Banco de Dados SQL do Azure. Aqui estão algumas consultas de log úteis que você pode usar com um alerta de log:
CPU alta
AzureMetrics
| where ResourceProvider=="MICROSOFT.SQL"
| where ResourceId contains "/DATABASES/"
| where MetricName=="cpu_percent"
| summarize AggregatedValue = max(Maximum) by bin(TimeGenerated, 5m)
| render timechart
Observação
- O pré-requisito de configurar esse alerta é que os bancos de dados monitorados transmitam métricas básicas para o workspace do Log Analytics usado pelo Azure SQL Analytics.
- Substitua o valor de MetricName
cpu_percent
pordtu_consumption_percent
para obter resultados de DTU altos.
Alta utilização de CPU em pools elásticos
AzureMetrics
| where ResourceProvider=="MICROSOFT.SQL"
| where ResourceId contains "/ELASTICPOOLS/"
| where MetricName=="cpu_percent"
| summarize AggregatedValue = max(Maximum) by bin(TimeGenerated, 5m)
| render timechart
Observação
- O pré-requisito de configurar esse alerta é que os bancos de dados monitorados transmitam métricas básicas para o workspace do Log Analytics usado pelo Azure SQL Analytics.
- Substitua o valor
cpu_percent
pordtu_consumption_percent
de MetricName para alcançar resultados altos de DTU.
Armazenamento em média acima de 95% na última hora
let time_range = 1h;
let storage_threshold = 95;
AzureMetrics
| where ResourceId contains "/DATABASES/"
| where MetricName == "storage_percent"
| summarize max_storage = max(Average) by ResourceId, bin(TimeGenerated, time_range)
| where max_storage > storage_threshold
| distinct ResourceId
Observação
- O pré-requisito de configurar esse alerta é que os bancos de dados monitorados transmitam métricas básicas para o workspace do Log Analytics usado pelo Azure SQL Analytics.
- Essa consulta requer que uma regra de alerta seja configurada para disparar um alerta quando houver resultados (> 0 resultados) da consulta, indicando que a condição existe em alguns bancos de dados. A saída é uma lista de recursos de banco de dados que estão acima do
storage_threshold
dentro dotime_range
definido. - A saída é uma lista de recursos de banco de dados que estão acima do
storage_threshold
dentro dotime_range
definido.
Alerta sobre insights inteligentes
Importante
Caso um banco de dados esteja com um bom desempenho e que nenhum Intelligent Insights tenha sido gerado, essa consulta falhará com uma mensagem de erro: falha ao resolver a expressão escalar chamada rootCauseAnalysis_s
. Esse comportamento é esperado para todos os casos em que não existem insights inteligentes para o banco de dados.
let alert_run_interval = 1h;
let insights_string = "hitting its CPU limits";
AzureDiagnostics
| where Category == "SQLInsights" and status_s == "Active"
| where TimeGenerated > ago(alert_run_interval)
| where rootCauseAnalysis_s contains insights_string
| distinct ResourceId
Observação
- O pré-requisito de configurar esse alerta é que os bancos de dados monitorados transmitam o log de diagnóstico do SQLInsights para o workspace do Log Analytics usado pelo Azure SQL Analytics.
- Essa consulta requer que uma regra de alerta seja configurada para ser executada com a mesma frequência que
alert_run_interval
, a fim de evitar resultados duplicados. A regra deve ser configurada para disparar o alerta quando houver resultados (> 0 resultados) da consulta. - Personalize o
alert_run_interval
para especificar o intervalo de tempo para verificar se a condição ocorreu em bancos de dados configurados para transmitir continuamente o log do SQLInsights para a Análise do SQL do Azure. - Personalize o insights_string para capturar a saída do texto de análise de causa raiz do Insights. Esse é o mesmo texto exibido na interface do usuário do Azure SQL Analytics que você pode usar nos insights disponíveis. Como alternativa, você pode usar a consulta abaixo para ver o texto de todos os Insights gerados em sua assinatura. Use a saída da consulta para coletar as cadeias de caracteres distintas para configurar alertas no Insights.
AzureDiagnostics
| where Category == "SQLInsights" and status_s == "Active"
| distinct rootCauseAnalysis_s
Criar alertas para a Instância Gerenciada de SQL
O armazenamento está acima de 90%
let storage_percentage_threshold = 90;
AzureDiagnostics
| where Category =="ResourceUsageStats"
| summarize (TimeGenerated, calculated_storage_percentage) = arg_max(TimeGenerated, todouble(storage_space_used_mb_s) *100 / todouble (reserved_storage_mb_s))
by ResourceId
| where calculated_storage_percentage > storage_percentage_threshold
Observação
- O pré-requisito de configurar esse alerta é que a instância gerenciada monitorada tenha o streaming do log ResourceUsageStats habilitado para o workspace do Log Analytics usado pelo Azure SQL Analytics.
- Essa consulta requer que uma regra de alerta seja configurada para disparar um alerta quando houver resultados (> 0 resultados) da consulta, indicando que a condição existe na instância gerenciada. A saída é o consumo de percentual de armazenamento na instância gerenciada.
O consumo médio da CPU está acima de 95% nos últimos 1 hora
let cpu_percentage_threshold = 95;
let time_threshold = ago(1h);
AzureDiagnostics
| where Category == "ResourceUsageStats" and TimeGenerated > time_threshold
| summarize avg_cpu = max(todouble(avg_cpu_percent_s)) by ResourceId
| where avg_cpu > cpu_percentage_threshold
Observação
- O pré-requisito de configurar esse alerta é que a instância gerenciada monitorada tenha o streaming do log ResourceUsageStats habilitado para o workspace do Log Analytics usado pelo Azure SQL Analytics.
- Essa consulta requer que uma regra de alerta seja configurada para disparar um alerta quando houver resultados (> 0 resultados) da consulta, indicando que a condição existe na instância gerenciada. A saída é o consumo médio do percentual de utilização da CPU no período definido na instância gerenciada.
Preços
Embora a Análise de SQL do Azure (versão prévia) seja livre para uso, o consumo de telemetria de diagnóstico acima das unidades gratuitas de ingestão de dados alocadas a cada mês se aplica, consulte os preços do Log Analytics. As unidades gratuitas de ingestão de dados fornecidas permitem o monitoramento gratuito de vários bancos de dados por mês. Bancos de dados mais ativos com cargas de trabalho mais pesadas ingerem mais dados versus bancos de dados ociosos. Você pode monitorar facilmente o consumo de ingestão de dados na Análise de SQL do Azure selecionando o Workspace do OMS no menu de navegação da Análise de SQL do Azure e selecionando Uso e Custos Estimados.
Próximas etapas
- Use consultas de log no Azure Monitor para exibir dados SQL detalhados do Azure.
- Crie seus próprios painéis mostrando dados SQL do Azure.
- Crie alertas quando ocorrerem eventos ESPECÍFICOs do SQL do Azure.
- Monitorar um Banco de Dados SQL do Azure com o Azure Monitor
- Monitorar Instância Gerenciada de SQL do Azure com o Azure Monitor