Habilitar os Insights de SQL (versão prévia)
Aplica-se a: Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure
Importante
O SQL Insights (versão preview) será desativado em 31 de dezembro de 2024. Recomendamos fazer a transição para o observador de banco de dados para SQL do Azure (versão preview) ou outra solução de monitoramento de banco de dados até essa data.
O Observador de banco de dados é a solução de monitoramento recomendada para cenários que exigem baixa latência de coleção de dados, monitoramento no nível de propriedade, dados de monitoramento abrangentes, incluindo detalhes no nível de consulta, e suporte para análise avançada em dados de monitoramento coletados. No momento, o observador de dados é compatível com o Banco de Dados SQL do Azure e a Instância Gerenciada do Azure SQL.
Após 31 de dezembro de 2024, o SQL Insights (versão preview) não receberá mais suporte e não estará disponível no portal do Azure. Você manterá todos os dados de monitoramento existentes coletados pelo SQL Insights em seu workspace do Log Analytics.
Este artigo descreve como habilitar os Insights de SQL (versão prévia) para monitorar as implantações do SQL. O monitoramento é o processo realizado 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.
Para habilitar os Insights de SQL (versão prévia) criando o perfil de monitoramento e a máquina virtual usando um modelo do Resource Manager, confira Exemplos de modelo do Resource Manager para Insights de SQL (versão prévia).
Criar espaço de trabalho do Log Analytics
Os Insights de SQL armazenam os dados em um ou mais workspaces do Log Analytics. Antes de habilitar os insights SQL, você precisa criar um workspace ou selecionar um existente. Um único espaço de trabalho pode ser usado com modo de classificação com múltiplos 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 nos insights SQL, você precisa ter a função de colaborador do Log Analytics no workspace.
Criar usuário de monitoramento
Você precisa de um usuário (logon) nas implantações SQL que deseja monitorar. Siga os procedimentos abaixo para os diferentes tipos de implantações do SQL.
As instruções a seguir 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, confira o arquivo LEIAME e o script de exemplo a seguir.
Observação
Os Insights de SQL não são compatíveis com os seguintes cenários do Banco de Dados SQL do Azure:
- Pools elásticos: não é possível coletar métricas para pools elásticos. Não é possível coletar métricas para bancos de dados em pools elásticos.
- Camadas de serviço inferiores: métricas não podem ser coletadas para bancos de dados em objetivos de serviço Básico, S0 e S1
Os Insights de SQL são parcialmente compatíveis com os seguintes cenários do Banco de Dados SQL do Azure:
- Camada sem servidor: as métricas podem ser coletadas para bancos dados usando a camada de computação sem servidor. No entanto, o processo de coleta de métricas redefinirá o timer 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, Editor de Consultas (versão prévia) no portal do Azure ou qualquer outra ferramenta do cliente SQL.
Execute o seguinte script para criar um usuário com as permissões necessárias. Substitua User 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
Criar uma Máquina Virtual do Azure
Será preciso criar uma ou mais máquinas virtuais do Azure que serão usadas para coletar dados para monitorar o SQL.
Observação
Osperfis de monitoramentoespecificam quais dados serão coletados a partir dos diferentes tipos de SQL que você 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, será necessário criar uma máquina virtual para cada um.
Requisitos de máquina virtual do Azure
A máquina virtual do Azure têm 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 essa versão do Ubuntu, recomendamos usar a imagem de marketplace do Ubuntu Pro 18.04 LTS. Para obter mais informações, confira Suporte para Linux e tecnologia de software livre no Azure.
- Tamanhos mínimos recomendados para máquina virtual do Azure: Standard_B2s (2 CPUs, 4 GiB de memória)
- Implantado em qualquer região do Azure compatível com o agente do Azure Monitor e que atenda a todos os pré-requisitos do agente do Azure Monitor.
Observação
O tamanho da máquina virtual Padrão_B2s (2 CPUs, 4GiB de Memória) dará suporte até 100 cadeias de conexão. Você não deve alocar mais de 100 conexões a uma única máquina virtual.
Dependendo das configurações de rede dos seus recursos SQL, as máquinas virtuais talvez precisem ser colocadas na mesma rede virtual conforme os recursos do SQL para que possam fazer conexões de rede para coletar os dados de monitoramento.
Definir as configurações de rede
Cada tipo de SQL oferece métodos para sua máquina virtual de monitoramento para acessar o SQL com segurança. As seções a seguir abordam as opções baseadas no tipo de implantação SQL.
Os insights SQL dá suporte ao acesso ao Banco de Dados SQL do Azure por meio de seu ponto de extremidade público, bem como da rede virtual.
Visto que o acesso por meio 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 de IP no portal do Azure. Para especificar o acesso de uma rede virtual, você pode configurarregras de firewall da rede virtuale configurar asmarcas de serviço exigidas pelo agente de Azure Monitor.
Armazenar a senha de monitoramento no Azure Key Vault
Como prática recomendada de segurança, é altamente recomendável armazenar suas senhas de SQL usuário (logon) em um Key Vault, em vez de inseri-las diretamente nas cadeias de conexão do perfil de monitoramento.
Ao configurar seu perfil para o monitoramento do SQL, você precisará de uma das seguintes permissões no recurso do cofre de chaves que pretende usar:
- Microsoft.Authorization/roleAssignments/write
- Microsoft.Authorization/roleAssignments/delete
Se você tiver essas permissões, uma política de acesso do Key Vault será criada automaticamente como parte da criação do seu perfil de SQL Monitoring que usa o Key Vault especificado.
Importante
A configuração de rede e segurança deve permitir que a VM de monitoramento acesse Key Vault. Para obter mais informações, confira Acessar o Azure Key Vault atrás de um firewall e Definir configurações de rede do Azure Key Vault.
Crie o perfil de monitoramento do SQL
Abra os Insights de SQL selecionando SQL (versão prévia) 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 dos sistemas SQL. Ele tem as configurações específicas para:
- Banco de Dados SQL do Azure
- Instância Gerenciada do Azure SQL
- SQL Server em VMs do Azure
Por exemplo, você pode criar um perfil chamado deAmbiente de Produção do SQLe outro chamado depreparo do SQLcom configurações diferentes para frequência de coleta de dados, quais dados coletar e em qual espaço de trabalho os dados devem ser enviados.
O perfil é armazenado como um recurso deregra de coleta de dadosna assinatura e no grupo de recursos que você selecionar. Para cada perfil precisa do seguinte:
- Nome. Não pode ser editado assim que criado.
- Local. Essa é uma região do Azure.
- Selecione um espaço de trabalho do Log Analytics para armazenar os dados de monitoramento.
- As configurações de coleta para a frequência e o tipo de dados de monitoramento do SQL a serem coletados.
Observação
A localização do perfil deve estar no mesmo local que o espaço de trabalho do Log Analytics para o qual você planeja enviar os dados de monitoramento.
Clique em Criar perfil de monitoramento logo que inserir os detalhes do perfil de monitoramento. Pode demorar até um minuto para que o perfil seja implantado. Se o novo perfil não estiver listado na caixa de combinação Perfil de monitoramento, clique no botão Atualizar e ele deverá aparecer assim que a implantação for concluída. Logo que selecionar o novo perfil, selecione a guiaGerenciar perfil para adicionar um computador de monitoramento que será associado ao perfil.
Adicionar computador de monitoramento
Selecione Adicionar computador de monitoramento para abrir um painel de contexto Add monitoring virtual machine
e escolher a máquina virtual a ser configurada para monitorar as instâncias SQL e fornecer as cadeias de conexão.
Selecione a assinatura e o nome do seu monitoramento da máquina virtual. Se você estiver usando o cofre de chaves para armazenar senhas para os logons de monitoramento (altamente recomendado), selecione a assinatura desse cofre de chaves em Key vault subscriptions
e, em seguida, selecione o cofre de chaves que armazena segredos em KeyVault
. No campo Connection strings
, insira o URI do cofre e o nome do segredo de cada senha a ser usada nas cadeias de conexão.
Por exemplo, se o URI do cofre de chaves for https://mykeyvault.vault.azure.net/
, e os nomes do segredo forem sqlPassword1
e sqlPassword2
, o JSON no campo Connection strings
conterá o seguinte:
{
"secrets": {
"telegrafPassword1": {
"keyvault": "https://mykeyvault.vault.azure.net/",
"name": "sqlPassword1"
},
"telegrafPassword2": {
"keyvault": "https://mykeyvault.vault.azure.net/",
"name": "sqlPassword2"
}
}
}
Agora você pode fazer referência a esses segredos mais detalhadamente no campo Connection strings
. No exemplo a seguir, as duas cadeias de conexão fazem referência aos segredos telegrafPassword1
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 de como identificar a cadeia de conexão para diferentes implantações do SQL.
Adicione as cadeias de conexão
A cadeia de conexão especifica o nome de logon que o recurso Insights de SQL (versão prévia) deve usar ao fazer logon no SQL para coletar dados de monitoramento. Se você estiver usando um Key Vault para armazenar a senha para o usuário de monitoramento, forneça o URI do Key Vault e o nome do segredo que contém a senha.
A cadeia de conexão variará para cada tipo de recurso SQL:
As conexões TCP do computador de monitoramento para o endereço IP e a porta usada pelo banco de dados devem ser permitidas por quaisquer firewalls ou NSGs (grupos de segurança de rede) que possam existir no caminho de rede. Para obter detalhes sobre endereços IP e portas, consulte Banco de Dados SQL do Azure arquitetura de conectividade.
Insira a cadeia de conexão no formulário:
"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 do 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 o primário ou secundário.