Monitorizar a Base de Dados SQL do Azure com o SQL do Azure Analytics (pré-visualização)
APLICA-SE A: SQL do Azure Database, Azure SQL Managed Instance
Atenção
SQL do Azure Analytics (pré-visualização) é uma integração com o Azure Monitor, onde muitas soluções de monitorização já não estão em desenvolvimento ativo. Para obter mais opções de monitorização, veja Monitorização e otimização do desempenho na Base de Dados SQL do Azure e Azure SQL Managed Instance.
SQL do Azure Analytics (pré-visualização) é uma solução avançada de monitorização da cloud para monitorizar o desempenho de todas as bases de dados SQL do Azure em escala e em várias subscrições numa única vista. SQL do Azure Analytics recolhe e visualiza as principais métricas de desempenho com inteligência incorporada para resolução de problemas de desempenho.
Ao utilizar estas métricas recolhidas, pode criar regras e alertas de monitorização personalizados. SQL do Azure Analytics ajuda-o a identificar problemas em cada camada da pilha de aplicações. SQL do Azure Analytics utiliza métricas Diagnóstico do Azure juntamente com as vistas do Azure Monitor para apresentar dados sobre todas as bases de dados SQL do Azure numa única área de trabalho do Log Analytics. O Azure Monitor ajuda-o a recolher, correlacionar e visualizar dados estruturados e não estruturados.
Origens ligadas
SQL do Azure Analytics é uma solução de monitorização apenas na cloud que suporta a transmissão em fluxo de telemetria de diagnósticos para todas as bases de dados SQL do Azure. Uma vez que o SQL do Azure Analytics não utiliza agentes para ligar ao Azure Monitor, não suporta a monitorização de SQL Server alojados no local ou em máquinas virtuais.
Origem Ligada | Suportado | Description |
---|---|---|
Definições de diagnóstico | Sim | Os dados de métricas e registos do Azure são enviados diretamente para os Registos do Azure Monitor pelo Azure. |
Conta de armazenamento do Azure | No | O Azure Monitor não lê os dados de uma conta de armazenamento. |
Agentes do Windows | No | Os agentes Diretos do Windows não são utilizados pelo SQL do Azure Analytics. |
Agentes do Linux | No | Os agentes Do Linux Direto não são utilizados pelo SQL do Azure Analytics. |
Grupo de gestão do System Center Operations Manager | No | Uma ligação direta do agente do Operations Manager para o Azure Monitor não é utilizada pelo SQL do Azure Analytics. |
opções do SQL do Azure Analytics
A tabela abaixo descreve as opções suportadas para duas versões do dashboard do SQL do Azure Analytics, uma para a Base de Dados SQL do Azure e outra para bases de dados Azure SQL Managed Instance.
opção análise de SQL do Azure | Description | Base de Dados SQL suporte | Suporte ao SQL Managed Instance |
---|---|---|---|
Recurso por tipo | Perspetiva que conta todos os recursos monitorizados. | Yes | Yes |
Informações | Fornece uma desagregação hierárquica das Informações Inteligentes sobre o desempenho. | Yes | Yes |
Erros | Fornece desagregar hierárquica sobre erros de SQL que ocorreram nas bases de dados. | Yes | Yes |
Tempos limite | Fornece desagregar hierárquica nos tempos limite do SQL que ocorreram nas bases de dados. | Yes | No |
Bloqueios | Fornece desagregar hierárquicos em bloqueios de SQL que ocorreram nas bases de dados. | Yes | No |
Esperas da base de dados | Fornece desagregar hierárquica nas estatísticas de espera do SQL ao nível da base de dados. Inclui resumos do tempo total de espera e do tempo de espera por tipo de espera. | Yes | No |
Duração da consulta | Fornece desagregar hierárquica nas estatísticas de execução de consultas, tais como a duração da consulta, a utilização da CPU, a utilização de E/S de Dados, a utilização de E/S de Registo. | Yes | Yes |
Esperas de consultas | Fornece desagregar hierárquica nas estatísticas de espera de consulta por categoria de espera. | Yes | Yes |
Configuração do SQL do Azure Analytics (pré-visualização)
Utilize o processo descrito em Adicionar soluções do Azure Monitor a partir da Galeria de Soluções para adicionar SQL do Azure Analytics (Pré-visualização) à sua área de trabalho do Log Analytics.
Configurar a Base de Dados SQL do Azure para transmitir em fluxo telemetria de diagnóstico
Depois de criar a solução SQL do Azure Analytics na área de trabalho, tem de configurar cada recurso que pretende monitorizar para transmitir em fluxo a telemetria de diagnóstico para o SQL do Azure Analytics. Siga as instruções detalhadas nesta página:
- Ative Diagnóstico do Azure para a sua base de dados transmitir telemetria de diagnóstico para SQL do Azure Analytics.
A página acima também fornece instruções sobre como ativar o suporte para monitorizar várias subscrições do Azure a partir de uma única área de trabalho do SQL do Azure Analytics como um único painel de vidro.
Utilizar o SQL do Azure Analytics (pré-visualização)
Navegue para a implementação do SQL Analytics a partir da página Soluções legadas da área de trabalho do Log Analytics.
SQL do Azure Analytics fornece duas vistas separadas: uma para monitorização Base de Dados SQL e outra vista para monitorização SQL Managed Instance.
Ver dados do SQL do Azure Analytics
O dashboard inclui a descrição geral de todas as bases de dados que são monitorizadas através de diferentes perspetivas. Para que diferentes perspetivas funcionem, tem de ativar métricas ou registos adequados nos seus recursos SQL para serem transmitidos em fluxo para a área de trabalho do Log Analytics.
Se algumas métricas ou registos não forem transmitidos para o Azure Monitor, os mosaicos no SQL do Azure Analytics não serão preenchidos com informações de monitorização.
vista Base de Dados SQL
Assim que o mosaico SQL do Azure Analytics da base de dados estiver selecionado, é apresentado o dashboard de monitorização.
Ao selecionar qualquer um dos mosaicos, abre um relatório de desagregação na perspetiva específica. Assim que a perspetiva estiver selecionada, o relatório de desagregação é aberto.
Cada perspetiva nesta vista fornece resumos nos níveis de subscrição, servidor, conjunto elástico e base de dados. Além disso, cada perspetiva mostra uma perspetiva específica do relatório à direita. A seleção da subscrição, servidor, conjunto ou base de dados da lista continua a desagregação.
vista SQL Managed Instance
Assim que o mosaico SQL do Azure Analytics das bases de dados estiver selecionado, é apresentado o dashboard de monitorização.
Ao selecionar qualquer um dos mosaicos, abre um relatório de desagregação na perspetiva específica. Assim que a perspetiva estiver selecionada, o relatório de desagregação é aberto.
Selecionar a vista SQL Managed Instance mostra detalhes sobre a utilização da instância, bases de dados de instâncias e telemetria nas consultas executadas na instância gerida.
Relatório do Intelligent Insights
O SQL do Azure Database Intelligent Insights permite-lhe saber o que está a acontecer com o desempenho de todas as bases de dados SQL do Azure. Todas as Informações Inteligentes recolhidas podem ser visualizadas e acedidas através da perspetiva do Insights.
Conjuntos elásticos e relatórios de bases de dados
Tanto os conjuntos elásticos como as bases de dados têm os seus próprios relatórios específicos que mostram todos os dados recolhidos para o recurso no tempo especificado.
Consultar relatórios
Através da duração da consulta e das perspetivas de espera de consultas, pode correlacionar o desempenho de qualquer consulta através do relatório de consulta. Este relatório compara o desempenho da consulta em diferentes bases de dados e facilita a identificação de bases de dados que executam bem a consulta selecionada em comparação com as que estão lentas.
Permissões
Para utilizar o SQL do Azure Analytics (pré-visualização), é necessário conceder aos utilizadores uma permissão mínima da função Leitor no Azure. No entanto, esta função não permite que os utilizadores vejam o texto da consulta nem efetuem quaisquer ações de Otimização automática. As funções mais permissivas no Azure que permitem utilizar o SQL do Azure Analytics na extensão máxima são Proprietário, Contribuidor, Contribuidor da BD SQL ou Contribuidor SQL Server. Também poderá querer considerar criar uma função personalizada no portal com permissões específicas necessárias apenas para utilizar o SQL do Azure Analytics e sem acesso à gestão de outros recursos.
Criar uma função personalizada no portal
Nota
Recomendamos que utilize o módulo do Azure Az PowerShell para interagir com o Azure. Veja Instalar o Azure PowerShell para começar. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.
Reconhecendo que algumas organizações impõem controlos de permissão rigorosos no Azure, encontre o seguinte script do PowerShell que permite a criação de uma função personalizada "Operador de Monitorização da Análise de SQL" no portal do Azure com as permissões mínimas de leitura e escrita necessárias para utilizar o SQL do Azure Analytics na sua extensão máxima.
Substitua "{SubscriptionId}" no script abaixo pelo seu ID de subscrição do Azure e execute o script com sessão iniciada como Proprietário ou Contribuidor 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
Assim que a nova função for criada, atribua esta função a cada utilizador de que precisa para conceder permissões personalizadas para utilizar o SQL do Azure Analytics.
Analisar dados e criar alertas
A análise de dados no SQL do Azure Analytics baseia-se na linguagem do Log Analytics para a sua consulta e relatórios personalizados. Encontre a descrição dos dados disponíveis recolhidos a partir do recurso de base de dados para consultas personalizadas em métricas e registos disponíveis.
Os alertas automatizados no SQL do Azure Analytics baseiam-se na escrita de uma consulta do Log Analytics que aciona um alerta após uma condição cumprida. Veja abaixo vários exemplos de consultas do Log Analytics nas quais os alertas podem ser configurados no SQL do Azure Analytics.
Criar alertas para a Base de Dados do SQL do Azure
Pode criar facilmente alertas com os dados provenientes de recursos da Base de Dados do SQL do Azure. Eis algumas consultas de registo úteis que pode utilizar com um alerta de registo:
CPU elevada
AzureMetrics
| where ResourceProvider=="MICROSOFT.SQL"
| where ResourceId contains "/DATABASES/"
| where MetricName=="cpu_percent"
| summarize AggregatedValue = max(Maximum) by bin(TimeGenerated, 5m)
| render timechart
Nota
- O pré-requisito da configuração deste alerta é que as bases de dados monitorizadas transmitem métricas básicas para a área de trabalho do Log Analytics utilizada pelo SQL do Azure Analytics.
- Substitua o valor
cpu_percent
MetricName pordtu_consumption_percent
para obter resultados de DTU elevados.
CPU elevada em conjuntos 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
Nota
- O pré-requisito da configuração deste alerta é que as bases de dados monitorizadas transmitem métricas básicas para a área de trabalho do Log Analytics utilizada pelo SQL do Azure Analytics.
- Substitua o valor
cpu_percent
MetricName pordtu_consumption_percent
para obter resultados de DTU elevados.
Armazenamento em média acima de 95% nas últimas 1 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
Nota
- O pré-requisito da configuração deste alerta é que as bases de dados monitorizadas transmitem métricas básicas para a área de trabalho do Log Analytics utilizada pelo SQL do Azure Analytics.
- Esta consulta requer a configuração de uma regra de alerta para acionar um alerta quando existem resultados (> 0 resultados) da consulta, indicando que a condição existe em algumas bases de dados. O resultado é uma lista de recursos de base de dados que estão acima do
storage_threshold
dentro dotime_range
definido. - O resultado é uma lista de recursos de base de dados que estão acima do
storage_threshold
dentro dotime_range
definido.
Alerta sobre informações inteligentes
Importante
Caso uma base de dados tenha um bom desempenho e não tenha sido gerada nenhuma Informação Inteligente, esta consulta falhará com uma mensagem de erro: Falha ao resolver a expressão escalar com o nome rootCauseAnalysis_s
. Este comportamento é esperado para todos os casos em que não existem informações inteligentes para a base 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
Nota
- O pré-requisito da configuração deste alerta é que as bases de dados monitorizadas transmitem o registo de diagnósticos do SQLInsights para a área de trabalho do Log Analytics utilizada pelo SQL do Azure Analytics.
- Esta consulta requer que seja configurada uma regra de alerta para ser executada com a mesma frequência
alert_run_interval
que para evitar resultados duplicados. A regra deve ser configurada para acionar o alerta quando existirem resultados (> 0 resultados) da consulta. - Personalize o
alert_run_interval
para especificar o intervalo de tempo para verificar se a condição ocorreu em bases de dados configuradas para transmitir o registo do SQLInsights para o SQL do Azure Analytics. - Personalize o insights_string para capturar a saída do texto de análise da causa raiz do Insights. Este é o mesmo texto apresentado na IU do SQL do Azure Analytics que pode utilizar a partir das informações existentes. Em alternativa, pode utilizar a consulta abaixo para ver o texto de todas as Informações geradas na sua subscrição. Utilize o resultado da consulta para recolher as cadeias distintas para configurar alertas no Insights.
AzureDiagnostics
| where Category == "SQLInsights" and status_s == "Active"
| distinct rootCauseAnalysis_s
Criar alertas para SQL Managed Instance
O armazenamento está acima dos 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
Nota
- O pré-requisito da configuração deste alerta é que a instância gerida monitorizada tem a transmissão em fluxo do registo ResourceUsageStats ativada para a área de trabalho do Log Analytics utilizada pelo SQL do Azure Analytics.
- Esta consulta requer que seja configurada uma regra de alerta para acionar um alerta quando existem resultados (> 0 resultados) da consulta, indicando que a condição existe na instância gerida. O resultado é o consumo da percentagem de armazenamento na instância gerida.
O consumo médio da CPU é superior a 95% nas últimas 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
Nota
- O pré-requisito da configuração deste alerta é que a instância gerida monitorizada tem a transmissão em fluxo do registo ResourceUsageStats ativada para a área de trabalho do Log Analytics utilizada pelo SQL do Azure Analytics.
- Esta consulta requer que seja configurada uma regra de alerta para acionar um alerta quando existem resultados (> 0 resultados) da consulta, indicando que a condição existe na instância gerida. O resultado é o consumo médio da percentagem de utilização da CPU no período definido na instância gerida.
Preços
Embora o SQL do Azure Analytics (pré-visualização) seja gratuito, o consumo de telemetria de diagnóstico acima das unidades gratuitas de ingestão de dados alocadas todos os meses aplica-se, veja Preços do Log Analytics. As unidades gratuitas de ingestão de dados fornecidas permitem a monitorização gratuita de várias bases de dados todos os meses. As bases de dados mais ativas com cargas de trabalho mais pesadas ingerem mais dados versus bases de dados inativas. Pode monitorizar facilmente o consumo de ingestão de dados no SQL do Azure Analytics ao selecionar Área de Trabalho do OMS no menu de navegação do SQL do Azure Analytics e, em seguida, selecionar Utilização e Custos Estimados.
Passos seguintes
- Utilize consultas de registo no Azure Monitor para ver dados de SQL do Azure detalhados.
- Crie os seus próprios dashboards com SQL do Azure dados.
- Crie alertas quando ocorrerem eventos de SQL do Azure específicos.
- Monitorizar a Base de Dados SQL do Azure com o Azure Monitor
- Monitorizar Azure SQL Managed Instance com o Azure Monitor