Habilitar o SQL Insights (visualização)
Aplica-se a:Banco de Dados SQL do Azure Instância Gerenciada SQLdo Azure
Este artigo descreve como habilitar o SQL Insights (visualização) para monitorar suas implantações SQL. O monitoramento é realizado a partir de uma máquina virtual do Azure que faz uma conexão com suas implantações SQL e usa DMVs (Exibições de Gerenciamento Dinâmico) para coletar dados de monitoramento. Você pode controlar quais conjuntos de dados são coletados e a frequência da coleta usando um perfil de monitoramento.
Nota
Para habilitar o SQL Insights (visualização) criando o perfil de monitoramento e a máquina virtual usando um modelo do gerenciador de recursos, consulte Exemplos de modelo do Resource Manager para SQL Insights (visualização).
Para saber como habilitar o SQL Insights (visualização), você também pode consultar este episódio Data Exposed .
Criar uma área de trabalho do Log Analytics
O SQL Insights armazena seus dados em um ou mais espaços de trabalho do Log Analytics. Antes de habilitar o SQL Insights, você precisa criar um espaço de trabalho ou selecionar um existente. Um único espaço de trabalho pode ser usado com vários perfis de monitoramento, mas o espaço de trabalho e os perfis devem estar localizados na mesma região do Azure. Para habilitar e acessar os recursos do SQL Insights, você deve ter a função de colaborador do Log Analytics no espaço de trabalho.
Criar usuário de monitoramento
Você precisa de um usuário (login) nas implantações SQL que deseja monitorar. Siga os procedimentos abaixo para diferentes tipos de implantações SQL.
As instruções abaixo abrangem o processo por tipo de SQL que você pode monitorar. Para fazer isso com um script em vários recursos SQL ao mesmo tempo, consulte o seguinte arquivo LEIA-ME e script de exemplo.
Base de Dados SQL do Azure
Nota
O SQL Insights (visualização) não oferece suporte aos seguintes cenários do Banco de Dados SQL do Azure:
- Pools elásticos: as métricas não podem ser reunidas para pools elásticos. As métricas não podem ser reunidas para bancos de dados em pools elásticos.
- Camadas de serviço baixas: não é possível coletar métricas para bancos de dados em objetivos de serviço Basic, S0 e S1
O SQL Insights (visualização) tem suporte limitado para os seguintes cenários do Banco de Dados SQL do Azure:
- Camada sem servidor: as métricas podem ser coletadas para bancos de dados usando a camada de computação sem servidor. No entanto, o processo de coleta de métricas redefinirá o temporizador de atraso de pausa automática, impedindo que o banco de dados entre em um estado de pausa automática.
Conecte-se a um banco de dados SQL do Azure com o SQL Server Management Studio, o Editor de Consultas (visualização) no portal do Azure ou qualquer outra ferramenta de cliente SQL.
Execute o script a seguir para criar um usuário com as permissões necessárias. Substitua usuário por um nome de usuário e mystrongpassword por uma senha forte.
CREATE USER [user] WITH PASSWORD = N'mystrongpassword';
GO
GRANT VIEW DATABASE STATE TO [user];
GO
Verifique se o usuário foi criado.
select name as username,
create_date,
modify_date,
type_desc as type,
authentication_type_desc as authentication_type
from sys.database_principals
where type not in ('A', 'G', 'R', 'X')
and sid is not null
order by username
Instância Gerida do Azure SQL
Conecte-se à sua Instância Gerenciada SQL do Azure usando o SQL Server Management Studio ou uma ferramenta semelhante e execute o script a seguir para criar o usuário de monitoramento com as permissões necessárias. Substitua usuário por um nome de usuário e mystrongpassword por uma senha forte.
USE master;
GO
CREATE LOGIN [user] WITH PASSWORD = N'mystrongpassword';
GO
GRANT VIEW SERVER STATE TO [user];
GO
GRANT VIEW ANY DEFINITION TO [user];
GO
SQL Server
Conecte-se ao SQL Server em sua máquina virtual do Azure e use o SQL Server Management Studio ou uma ferramenta semelhante para executar o script a seguir para criar o usuário de monitoramento com as permissões necessárias. Substitua usuário por um nome de usuário e mystrongpassword por uma senha forte.
USE master;
GO
CREATE LOGIN [user] WITH PASSWORD = N'mystrongpassword';
GO
GRANT VIEW SERVER STATE TO [user];
GO
GRANT VIEW ANY DEFINITION TO [user];
GO
Verifique se o usuário foi criado.
select name as username,
create_date,
modify_date,
type_desc as type
from sys.server_principals
where type not in ('A', 'G', 'R', 'X')
and sid is not null
order by username
Criar Máquina Virtual do Azure
Você precisará criar uma ou mais máquinas virtuais do Azure que serão usadas para coletar dados para monitorar SQL.
Nota
Os perfis de monitoramento especificam quais dados você coletará dos diferentes tipos de SQL que deseja monitorar. Cada máquina virtual de monitoramento pode ter apenas um perfil de monitoramento associado a ela. Se você precisar de vários perfis de monitoramento, precisará criar uma máquina virtual para cada um.
Requisitos das máquinas Virtuais do Azure
A máquina virtual do Azure tem os seguintes requisitos:
- Sistema operacional: Ubuntu 18.04 usando a imagem do Azure Marketplace. Não há suporte para imagens personalizadas. Para obter a Manutenção de Segurança Estendida (ESM) para esta versão do Ubuntu, recomendamos o uso da imagem de mercado do Ubuntu Pro 18.04 LTS. Para obter mais informações, consulte Suporte para Linux e tecnologia de código aberto no Azure.
- Tamanhos mínimos recomendados de máquina virtual do Azure: Standard_B2s (2 CPUs, memória de 4 GiB)
- Implantado em qualquer região do Azure suportada pelo agente do Azure Monitor e atendendo a todos os pré-requisitos do agente do Azure Monitor.
Nota
O tamanho da máquina virtual Standard_B2s (2 CPUs, 4 GiB de memória) suportará até 100 cadeias de conexão. Você não deve alocar mais de 100 conexões para uma única máquina virtual.
Dependendo das configurações de rede dos recursos SQL, as máquinas virtuais podem precisar ser colocadas na mesma rede virtual que os recursos SQL para que possam fazer conexões de rede para coletar dados de monitoramento.
Configurar as definições de rede
Cada tipo de SQL oferece métodos para que sua máquina virtual de monitoramento acesse o SQL com segurança. As seções abaixo abrangem as opções baseadas no tipo de implantação SQL.
Base de Dados SQL do Azure
O SQL Insights dá suporte ao acesso ao Banco de Dados SQL do Azure por meio de seu ponto de extremidade público, bem como de sua rede virtual.
Para acesso através do ponto de extremidade público, você adicionaria uma regra na página Configurações do firewall e na seção Configurações do firewall IP. Para especificar o acesso de uma rede virtual, você pode definir regras de firewall de rede virtual e definir as tags de serviço exigidas pelo agente do Azure Monitor. Este artigo descreve as diferenças entre esses dois tipos de regras de firewall.
Instância Gerida do Azure SQL
Se a máquina virtual de monitoramento estiver na mesma VNet que os recursos do SQL MI, consulte Conectar dentro da mesma VNet. Se sua máquina virtual de monitoramento estiver na VNet diferente dos recursos do SQL MI, consulte Conectar dentro de uma VNet diferente.
SQL Server
Se a máquina virtual de monitoramento estiver na mesma rede virtual que os recursos da máquina virtual SQL, consulte Conectar-se ao SQL Server em uma rede virtual. Se a máquina virtual de monitoramento estiver na VNet diferente dos recursos da máquina virtual SQL, consulte Conectar-se ao SQL Server pela Internet.
Armazenar senha de monitoramento no Cofre de Chaves do Azure
Como prática recomendada de segurança, recomendamos que você armazene suas senhas de usuário SQL (login) em um Cofre de Chaves, em vez de inseri-las diretamente nas cadeias de conexão do perfil de monitoramento.
Ao configurar seu perfil para monitoramento SQL, você precisará de uma das seguintes permissões no recurso Key Vault que pretende usar:
- Microsoft.Authorization/roleAssignments/write
- Microsoft.Authorization/roleAssignments/delete
Se você tiver essas permissões, uma nova política de acesso ao Cofre da Chave será criada automaticamente como parte da criação do seu perfil de Monitoramento SQL que usa o Cofre da Chave especificado.
Importante
Você precisa 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.
Criar perfil de monitoramento SQL
Abra o SQL Insights (visualização) selecionando SQL (visualização) na seção Insights do menu Azure Monitor no portal do Azure . Selecione Criar novo perfil.
O perfil armazenará as informações que você deseja coletar de seus sistemas SQL. Tem configurações específicas para:
- Base de Dados SQL do Azure
- Instância Gerida do Azure SQL
- SQL Server em execução em máquinas virtuais
Por exemplo, você pode criar um perfil chamado Produção SQL e outro chamado Preparo SQL com configurações diferentes para frequência de coleta de dados, quais dados coletar e para qual espaço de trabalho enviar os dados.
O perfil é armazenado como um recurso de regra de coleta de dados na assinatura e no grupo de recursos selecionados. Cada perfil precisa do seguinte:
- Nome. Não pode ser editado depois de criado.
- Localização. Esta é uma região do Azure.
- Espaço de trabalho do Log Analytics para armazenar os dados de monitoramento.
- Configurações de coleta para a frequência e o tipo de dados de monitoramento sql a serem coletados.
Nota
O local do perfil deve estar no mesmo local do espaço de trabalho do Log Analytics para o qual você planeja enviar os dados de monitoramento.
Selecione Criar perfil de monitoramento depois de inserir os detalhes do seu perfil de monitoramento. Pode levar até um minuto para que o perfil seja implantado. Se você não vir o novo perfil listado na caixa de combinação Perfil de monitoramento , selecione o botão Atualizar e ele deverá aparecer assim que a implantação for concluída. Depois de selecionar o novo perfil, selecione a guia Gerenciar perfil para adicionar uma máquina de monitoramento que será associada ao perfil .
Adicionar máquina de monitoramento
Selecione Adicionar máquina de monitoramento para abrir um Add monitoring virtual machine
painel de contexto para escolher a máquina virtual a partir da qual monitorar suas instâncias SQL e fornecer as cadeias de conexão.
Selecione a assinatura e o nome da máquina virtual de monitoramento. Se estiver a utilizar o Cofre da Chave para armazenar palavras-passe para os inícios de sessão de monitorização (altamente recomendado), selecione a subscrição desse Cofre da Chave em e, em seguida, selecione o Cofre da Chave que armazena segredos em Key vault subscriptions
KeyVault
. No campo, insira o URI do Connection strings
cofre e o nome secreto de cada senha a ser usada nas cadeias de conexão.
Por exemplo, se o URI do Cofre da Chave for https://mykeyvault.vault.azure.net/
, e os nomes secretos forem sqlPassword1
e sqlPassword2
, o JSON no campo conterá o Connection strings
seguinte:
{
"secrets": {
"telegrafPassword1": {
"keyvault": "https://mykeyvault.vault.azure.net/",
"name": "sqlPassword1"
},
"telegrafPassword2": {
"keyvault": "https://mykeyvault.vault.azure.net/",
"name": "sqlPassword2"
}
}
}
Agora você pode referenciar esses segredos mais adiante Connection strings
no campo. No exemplo a seguir, as duas cadeias de conexão fazem referência aos telegrafPassword1
segredos e telegrafPassword2
definidos anteriormente:
{
"sqlAzureConnections": [
"Server=mysqlserver.database.windows.net;Port=1433;Database=mydatabase;User Id=telegraf;Password=$telegrafPassword1;"
],
"sqlVmConnections": [
"Server=mysqlserver1;Port=1433;Database=master;User Id=telegraf;Password=$telegrafPassword2;"
]
}
Consulte a próxima seção para obter detalhes sobre como identificar a cadeia de conexão para diferentes implantações SQL.
Adicionar cadeias de conexão
A cadeia de conexão especifica o nome de logon que o SQL Insights (visualização) deve usar ao fazer logon no SQL para coletar dados de monitoramento. Se você estiver usando um Cofre de Chaves para armazenar a senha do usuário de monitoramento, forneça o URI do Cofre de Chaves e o nome do segredo que contém a senha.
A cadeia de conexões variará para cada tipo de recurso SQL:
Base de Dados SQL do Azure
As conexões TCP da máquina de monitoramento para o endereço IP e a porta usados pelo banco de dados devem ser permitidas por quaisquer firewalls ou NSGs (grupos de segurança de rede) que possam existir no caminho da rede. Para obter detalhes sobre endereços IP e portas, consulte Arquitetura de conectividade do Banco de Dados SQL do Azure.
Insira a cadeia de conexão no formato:
"sqlAzureConnections": [
"Server=mysqlserver1.database.windows.net;Port=1433;Database=mydatabase;User Id=$username;Password=$password;",
"Server=mysqlserver2.database.windows.net;Port=1433;Database=mydatabase;User Id=$username;Password=$password;"
]
Obtenha os detalhes da página Cadeias de conexão e o ponto de extremidade de ADO.NET apropriado para o banco de dados.
Para monitorar um secundário legível, acrescente ;ApplicationIntent=ReadOnly
à cadeia de conexão. O SQL Insights dá suporte ao monitoramento de um único secundário. Os dados coletados serão marcados para refletir primário ou secundário.
Instância Gerida do Azure SQL
As conexões TCP da máquina de monitoramento para o endereço IP e a porta usados pela instância gerenciada devem ser permitidas por quaisquer firewalls ou NSGs (grupos de segurança de rede) que possam existir no caminho da rede. Para obter detalhes sobre endereços IP e portas, consulte Tipos de conexão de Instância Gerenciada SQL do Azure.
Insira a cadeia de conexão no formato:
"sqlManagedInstanceConnections": [
"Server= mysqlserver1.<dns_zone>.database.windows.net;Port=1433;User Id=$username;Password=$password;",
"Server= mysqlserver2.<dns_zone>.database.windows.net;Port=1433;User Id=$username;Password=$password;"
]
Obtenha os detalhes da página Cadeias de conexão e o ponto de extremidade de ADO.NET apropriado para a instância gerenciada. Se estiver usando o ponto de extremidade público da instância gerenciada, substitua a porta 1433 pela 3342.
Para monitorar um secundário legível, acrescente ;ApplicationIntent=ReadOnly
à cadeia de conexão. O SQL Insights dá suporte ao monitoramento de uma única réplica secundária de alta disponibilidade (HA) para um determinado banco de dados primário. Os dados coletados serão marcados para refletir Primário ou Secundário.
SQL Server
O protocolo TCP/IP deve estar habilitado para a instância do SQL Server que você deseja monitorar. As conexões TCP da máquina de monitoramento para o endereço IP e a porta usados pela instância do SQL Server devem ser permitidas por quaisquer firewalls ou NSGs (grupos de segurança de rede) que possam existir no caminho de rede.
Se você quiser monitorar o SQL Server configurado para alta disponibilidade (usando grupos de disponibilidade ou instâncias de cluster de failover), recomendamos monitorar cada instância do SQL Server no cluster individualmente, em vez de se conectar por meio de um ouvinte de grupo de disponibilidade ou um nome de cluster de failover. Isso garante que os dados de monitoramento sejam coletados independentemente da função de instância atual (primária ou secundária).
Insira a cadeia de conexão no formato:
"sqlVmConnections": [
"Server=SQLServerInstanceIPAddress1;Port=1433;User Id=$username;Password=$password;",
"Server=SQLServerInstanceIPAddress2;Port=1433;User Id=$username;Password=$password;"
]
Use o endereço IP que a instância do SQL Server escuta.
Se sua instância do SQL Server estiver configurada para escutar em uma porta não padrão, substitua 1433 por esse número de porta na cadeia de conexão. Se você estiver usando o SQL Server na Máquina Virtual do Azure, poderá ver qual porta usar na página Segurança do recurso.
Para qualquer instância do SQL Server, você pode determinar todos os endereços IP e portas em que ela está escutando conectando-se à instância e executando a seguinte consulta T-SQL, desde que haja pelo menos uma conexão TCP com a instância:
SELECT DISTINCT local_net_address, local_tcp_port
FROM sys.dm_exec_connections
WHERE net_transport = 'TCP'
AND
protocol_type = 'TSQL';
Perfil de monitorização criado
Selecione Adicionar máquina virtual de monitoramento para configurar a máquina virtual para coletar dados de seus recursos SQL. Não volte para a guia Visão geral . Em alguns minutos, a coluna Status deve mudar para ler "Coletando", você deve ver dados para os recursos SQL que você escolheu monitorar.
Se você não vir dados, consulte Solução de problemas do SQL Insights (visualização) para identificar o problema.
Nota
Se você precisar atualizar seu perfil de monitoramento ou as cadeias de conexão em suas VMs de monitoramento, poderá fazê-lo por meio da guia Gerenciar perfil do SQL Insights (visualização). Assim que as atualizações forem salvas, as alterações serão aplicadas em aproximadamente 5 minutos.
Próximos passos
- Consulte Solução de problemas do SQL Insights (visualização) se o SQL Insights não estiver funcionando corretamente depois de ser habilitado.