Monitorizar a Base de Dados SQL do Azure com o Azure Monitor

Aplica-se a:Banco de Dados SQL do Azure

Quando tem aplicações críticas e processos de negócio que dependem dos recursos do Azure, deverá querer monitorizar esses recursos quanto à disponibilidade, ao desempenho e à operação.

Este artigo descreve os dados de monitoramento gerados pelo Banco de Dados SQL do Azure. O Banco de Dados SQL do Azure pode ser monitorado pelo Azure Monitor. Se você não estiver familiarizado com os recursos do Azure Monitor comuns a todos os serviços do Azure que o usam, leia Monitorando recursos do Azure com o Azure Monitor.

Importante

Para obter um conjunto de regras de alerta recomendadas, consulte Monitorar o Banco de Dados SQL do Azure com métricas e alertas do Azure Monitor.

Página de visão geral do monitor no portal do Azure

Exiba suas métricas do Azure Monitor para todos os recursos conectados acessando a página Azure Monitor diretamente no portal do Azure. Ou, na página Visão geral de um banco de dados, selecione Métricas sob o título Monitoramento para acessar o Azure Monitor.

Azure Monitor SQL Insights (visualização)

Alguns serviços no Azure têm um painel de monitoramento focado e pré-criado no portal do Azure que pode ser habilitado para fornecer um ponto de partida para monitorar seu serviço. Esses painéis especiais são chamados de "insights" e não são habilitados por padrão. Para saber mais sobre como usar o Azure Monitor SQL Insights para todos os produtos da família SQL do Azure, consulte Monitorar suas implantações SQL com o SQL Insights (visualização).

Depois de criar um perfil de monitoramento, você pode configurar o Azure Monitor SQL Insights para métricas específicas do SQL para o Banco de Dados SQL do Azure, a Instância Gerenciada do SQL do Azure e o SQL Server em VMs do Azure.

Nota

O Azure SQL Analytics (visualização) é uma integração com o Azure Monitor, onde 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 SQL do Azure.

Monitorizar dados

O Banco de Dados SQL do Azure coleta os mesmos tipos de dados de monitoramento que outros recursos do Azure descritos em Monitoramento de dados de recursos do Azure.

Consulte Monitoramento do Banco de Dados SQL do Azure com referência do Azure Monitor para obter informações detalhadas sobre as métricas e métricas de logs criadas pelo Banco de Dados SQL do Azure.

Recolha e encaminhamento

As métricas de plataforma e o Registo de atividades são recolhidos e armazenados automaticamente, mas podem ser encaminhados para outras localizações através de uma definição de diagnóstico.

Os registos de recursos não são recolhidos nem armazenados até que crie uma definição de diagnóstico e os encaminhe para uma ou mais localizações. Os registos de recursos eram anteriormente designados como registos de diagnóstico.

As definições de diagnóstico disponíveis incluem:

  • log: SQLInsights, AutomaticTuning, QueryStoreRuntimeStatistics, QueryStoreWaitStatistics, Erros, DatabaseWaitStatistics, Timeouts, Blocos, Deadlocks
  • métrica: Todas as métricas do Azure Monitor nas categorias Basic e InstanceAndAppAdvanced
  • detalhes do destino: Enviar para o espaço de trabalho do Log Analytics, Arquivar para uma conta de armazenamento, Transmitir para um hub de eventos, Enviar para solução de parceiro

Para obter mais informações sobre os logs de recursos e diagnósticos disponíveis, consulte Telemetria de diagnóstico para exportação.

Veja Criar uma definição de diagnóstico para recolher registos e métricas da plataforma no Azure para ficar a conhecer o processo detalhado de criação de uma definição de diagnóstico com o portal do Azure, a CLI ou o PowerShell. Ao criar uma configuração de diagnóstico, você especifica quais categorias de logs devem ser coletadas. As categorias do Banco de Dados SQL do Azure estão listadas na referência de dados de monitoramento do Banco de Dados SQL do Azure.

Os logs são agrupados em grupos de categorias. Os grupos de categorias são uma coleção de logs diferentes para ajudá-lo a atingir diferentes objetivos de monitoramento. Esses grupos são definidos dinamicamente e podem mudar ao longo do tempo à medida que novos logs de recursos ficam disponíveis e são adicionados ao grupo de categorias. Isso pode incorrer em custos adicionais. O grupo de categorias de log de recursos de auditoria permite selecionar os logs de recursos necessários para auditar seu recurso. Para obter mais informações, consulte Configurações de diagnóstico no Azure Monitor: logs de recursos.

Analise métricas

Você pode analisar métricas do Banco de Dados SQL do Azure juntamente com métricas de outros serviços do Azure usando o explorador de métricas abrindo Métricas no menu Monitor no portal do Azure. Veja Introdução ao Explorador de Métricas do Azure para obter detalhes de como utilizar esta ferramenta.

Para obter configurações típicas de regras de alerta para o Banco de Dados SQL do Azure, consulte Regras de alerta recomendadas. Para obter uma lista das métricas de plataforma coletadas para o Banco de Dados SQL do Azure, consulte Monitorando métricas de referência de dados do Banco de Dados SQL do Azure.

Para referência, você pode ver uma lista de todas as métricas de recursos com suporte no Azure Monitor.

Analisar registos

Os dados nos Logs do Azure Monitor são armazenados em tabelas onde cada tabela tem seu próprio conjunto de propriedades exclusivas. Estes dados são opcionalmente recolhidos através das definições de diagnóstico.

Todos os logs de recursos no Azure Monitor têm os mesmos campos seguidos por campos específicos do serviço. O esquema comum é descrito no esquema de log de recursos do Azure Monitor.

O log de atividades é um tipo de log de plataforma no Azure que fornece informações sobre eventos no nível de assinatura. Pode vê-lo de forma independente ou encaminhá-lo para os Registos do Azure Monitor, onde pode fazer consultas muito mais complexas com o Log Analytics.

Para obter uma lista dos tipos de logs de recursos coletados para o Banco de Dados SQL do Azure, consulte Logs de recursos para o Banco de Dados SQL do Azure.

Para obter uma lista das tabelas usadas pelos Logs do Azure Monitor e consultáveis pelo Log Analytics, consulte Tabelas de Logs do Azure Monitor para o Banco de Dados SQL do Azure.

Exemplos de consultas Kusto

Importante

Selecionar Logs no menu Monitoramento de um banco de dados abre o Log Analytics com o escopo da consulta definido para o banco de dados atual. Isso significa que as consultas de log incluirão apenas dados desse recurso. Se quiser executar uma consulta que inclua dados de outros bancos de dados ou dados de outros serviços do Azure, selecione Logs no menu Azure Monitor . Consulte Escopo e intervalo de tempo da consulta de log no Azure Monitor Log Analytics para obter detalhes.

Nota

Ocasionalmente, pode levar até 15 minutos entre quando um evento é emitido e quando ele aparece em um espaço de trabalho do Log Analytics.

Use as consultas a seguir para monitorar seu banco de dados. Você pode ver diferentes opções disponíveis dependendo do seu modelo de compra.

Exemplo A: Log_write_percent da última hora

AzureMetrics
| where ResourceProvider == "MICROSOFT.SQL"
| where TimeGenerated >= ago(60min)
| where MetricName in ('log_write_percent')
| parse _ResourceId with * "/microsoft.sql/servers/" Resource
| summarize Log_Maximum_last60mins = max(Maximum), Log_Minimum_last60mins = min(Minimum), Log_Average_last60mins = avg(Average) by Resource, MetricName

Exemplo B: Tipos de espera do SQL Server dos últimos 15 minutos

AzureDiagnostics
| where ResourceProvider == "MICROSOFT.SQL"
| where TimeGenerated >= ago(15min)
| parse _ResourceId with * "/microsoft.sql/servers/" LogicalServerName "/databases/" DatabaseName
| summarize Total_count_15mins = sum(delta_waiting_tasks_count_d) by LogicalServerName, DatabaseName, wait_type_s

Exemplo C: impasses do SQL Server dos últimos 60 minutos

AzureMetrics
| where ResourceProvider == "MICROSOFT.SQL"
| where TimeGenerated >= ago(60min)
| where MetricName in ('deadlock')
| parse _ResourceId with * "/microsoft.sql/servers/" Resource
| summarize Deadlock_max_60Mins = max(Maximum) by Resource, MetricName

Exemplo D: Uso médio da CPU da última hora

AzureMetrics
| where ResourceProvider == "MICROSOFT.SQL"
| where TimeGenerated >= ago(60min)
| where MetricName in ('cpu_percent')
| parse _ResourceId with * "/microsoft.sql/servers/" Resource
| summarize CPU_Maximum_last60mins = max(Maximum), CPU_Minimum_last60mins = min(Minimum), CPU_Average_last60mins = avg(Average) by Resource, MetricName

Alertas

Os alertas do Azure Monitor notificam proativamente quando as condições importantes são encontradas nos dados de monitorização. Essas métricas no Azure Monitor são sempre coletadas. Eles permitem que você identifique e resolva problemas em seus bancos de dados ou pools elásticos antes que seus clientes percebam. Você pode definir alertas em métricas, logs e no registro de atividades.

Se você estiver criando ou executando um aplicativo no Azure, o Azure Monitor Application Insights pode oferecer tipos adicionais de alertas.

Você também pode configurar alertas com a CLI do Azure ou o PowerShell. Por exemplo, consulte Usar o PowerShell para monitorar e dimensionar um único banco de dados no Banco de Dados SQL do Azure.

A tabela a seguir lista regras de alerta comuns e recomendadas para o Banco de Dados SQL do Azure. Você pode ver diferentes opções disponíveis dependendo do seu modelo de compra.

Nome do sinal Operador Tipo de agregação Valor do limiar Description
Percentagem de DTU Maior que Média 80 Sempre que a percentagem média de DTU for superior a 80%
Percentagem de E/S de registo Maior que Média 80 Sempre que a percentagem média de log io for superior a 80%
Impasses* Maior que Count 1 Sempre que a contagem de impasses for superior a 1.
Percentagem de CPU Maior que Média 80 Sempre que a percentagem média de CPU for superior a 80%

* Alertar sobre impasses pode ser desnecessário e barulhento em alguns aplicativos onde os impasses são esperados e tratados corretamente.