Abilitare SQL Insights (anteprima)
Si applica a: Database SQL di Azure Istanza gestita di SQL di Azure
Importante
SQL Insights (anteprima) verrà ritirato il 31 dicembre 2024. È consigliabile passare a Database Watcher per Azure SQL (anteprima) o a un'altra soluzione di monitoraggio del database entro tale data.
Watcher del database (anteprima) è la soluzione di monitoraggio consigliata per scenari che richiedono bassa latenza di raccolta dati, monitoraggio a livello di ambiente, dati di monitoraggio completi, inclusi i dettagli a livello di query e supporto per l'analisi avanzata sui dati di monitoraggio raccolti. Al momento, Database watcher supporta Database SQL di Azure e Istanza gestita di database SQL di Azure.
Dopo il 31 dicembre 2024, SQL Insights (anteprima) non sarà supportato e non sarà disponibile nella portale di Azure. Tutti i dati di monitoraggio esistenti raccolti da SQL Insights verranno mantenuti nell'area di lavoro Log Analytics.
Questo articolo descrive come abilitare SQL Insights (anteprima) per monitorare le distribuzioni SQL. Il monitoraggio viene eseguito da una macchina virtuale di Azure che stabilisce una connessione alle distribuzioni SQL e usa delle DMV (Dynamic Management Views) per raccogliere dati di monitoraggio. È possibile controllare quali set di dati vengono raccolti e la frequenza di raccolta usando un profilo di monitoraggio.
Per abilitare SQL Insights (anteprima) creando il profilo di monitoraggio e la macchina virtuale usando un modello di Resource Manager, vedere Esempi di modelli di Resource Manager per Informazioni dettagliate su SQL (anteprima).
Creare un'area di lavoro Log Analytics
SQL Insights archivia i dati in una o più aree di lavoro Log Analytics. Prima di abilitare SQL Insights, è necessario creare un'area di lavoro o selezionare una esistente. Una singola area di lavoro può essere usata con più profili di monitoraggio, ma l'area di lavoro e i profili devono trovarsi nella stessa area di Azure. Per abilitare e accedere alle funzionalità di SQL Insights, è necessario avere il ruolo Collaboratore in analisi dei log nell’area di lavoro.
Creare l’utente di monitoraggio
È necessario un utente (account di accesso) nelle distribuzioni SQL da monitorare. Seguire le procedure seguenti per diversi tipi di distribuzioni SQL.
Le istruzioni seguenti illustrano il processo per tipo di SQL che è possibile monitorare. Per eseguire questa operazione con uno script in più risorse SQL contemporaneamente, vedere il seguente file README e uno script di esempio.
- Database SQL di Azure
- Istanza gestita di database SQL di Azure
- SQL Server in macchine virtuali di Azure
Nota
SQL Insights (anteprima) non supporta gli scenari di database SQL di Azure seguenti:
- Pool elastici: non è possibile raccogliere le metriche per i pool elastici. Non è possibile raccogliere le metriche per i database all'interno di pool elastici.
- Livelli di servizio bassi: le metriche non possono essere raccolte per i database negli oggetti assistenza Basic, S0 e S1
SQL Insights (anteprima) offre un supporto limitato per i seguenti scenari di database SQL di Azure:
- Livello serverless: le metriche possono essere raccolte per i database usando il livello di calcolo serverless. Tuttavia, il processo di raccolta delle metriche reimposta il timer di ritardo di sospensione automatica, impedendo al database di entrare in uno stato di sospensione automatica.
Connessione a un database SQL di Azure con SQL Server Management Studio, Editor di query (anteprima) nel portale di Azure o in qualsiasi altro strumento client SQL.
Eseguire lo script seguente per creare un utente con le autorizzazioni necessarie. Sostituire l’utente con un nome utente e mystrongpassword con una password complessa.
CREATE USER [user] WITH PASSWORD = N'mystrongpassword';
GO
GRANT VIEW DATABASE STATE TO [user];
GO
Verificare che l’utente sia stato creato.
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
Creare una macchina virtuale di Azure
Sarà necessario creare una o più macchine virtuali di Azure che verranno usate per raccogliere dati per monitorare SQL.
Nota
I profili di monitoraggio specificano i dati raccolti dai diversi tipi di SQL da monitorare. A ogni macchina virtuale di monitoraggio può essere associato un solo profilo di monitoraggio. Se sono necessari più profili di monitoraggio, è necessario creare una macchina virtuale per ognuno.
Requisiti delle macchine virtuali di Azure
La macchina virtuale di Azure ha i seguenti requisiti:
- Sistema operativo: Ubuntu 18.04 usando l'immagine di Azure Marketplace. Le immagini personalizzate non sono supportate. Per ottenere la manutenzione della sicurezza estesa (ESM) per questa versione di Ubuntu, è consigliabile usare l'immagine del marketplace Ubuntu Pro 18.04 LTS. Per altre informazioni, vedere Supporto per Linux e tecnologia open source in Azure.
- Dimensioni minime consigliate per le macchine virtuali di Azure: Standard_B2s (2 CPU, 4-GiB di memoria)
- Distribuito in qualsiasi area di Azure supportata dall'agente di Monitoraggio di Azure e soddisfa tutti i prerequisiti dell'agente di Monitoraggio di Azure.
Nota
Le dimensioni della macchina virtuale Standard_B2s (2 CPU, 4 GiB) supporteranno fino a 100 stringhe di connessione. Non è consigliabile allocare più di 100 connessioni a una singola macchina virtuale.
A seconda delle impostazioni di rete delle risorse SQL, potrebbe essere necessario inserire le macchine virtuali nella stessa rete virtuale delle risorse SQL in modo che possano stabilire connessioni di rete per raccogliere i dati di monitoraggio.
Configurare le impostazioni di rete
Ogni tipo di SQL offre metodi per la macchina virtuale di monitoraggio per accedere in modo sicuro a SQL. Le sezioni seguenti illustrano le opzioni in base al tipo di distribuzione SQL.
- Database SQL di Azure
- Istanza gestita di database SQL di Azure
- SQL Server in macchine virtuali di Azure
SQL Insights supporta l'accesso alle database SQL di Azure tramite l'endpoint pubblico e dalla rete virtuale.
Per l'accesso tramite l'endpoint pubblico, è necessario aggiungere una regola nella pagina Impostazioni firewall e nella sezione Impostazioni firewall IP del portale di Azure. Per specificare l'accesso da una rete virtuale, è possibile impostare le regole del firewall di rete virtuale e impostare i tag di servizio richiesti dall'agente di Monitoraggio di Azure.
Archiviare la password in Azure Key Vault
Come procedura consigliata per la sicurezza, è consigliabile archiviare le password dell'utente SQL (accesso) in un insieme di credenziali delle chiavi, anziché immetterle direttamente nel profilo di monitoraggio stringa di connessione.
Quando si configura il profilo per SQL Monitoring, è necessaria una delle autorizzazioni seguenti per la risorsa dell’insieme di credenziali delle chiavi che si intende usare:
- Microsoft.Authorization/roleAssignments/write
- Microsoft.Authorization/roleAssignments/delete
Se si dispone di queste autorizzazioni, verrà creato automaticamente un nuovo criterio di accesso dell’insieme di credenziali delle chiavi durante la creazione del profilo di SQL Monitoring che usa l'insieme di credenziali delle chiavi specificato.
Importante
È necessario assicurarsi che la configurazione di rete e sicurezza consenta alla VM di monitoraggio di accedere all’nsieme di credenziali delle chiavi. Per altre informazioni, vedere Accedere ad Azure Key Vault dietro un firewall e Configurare le impostazioni di rete di Azure Key Vault.
Creare un profilo SQL Monitoring
Aprire SQL Insights (anteprima) selezionando SQL (anteprima) nella sezione Insights del menu Monitoraggio di Azure nel portale di Azure. Selezionare Crea nuovo profilo.
Il profilo archivierà le informazioni che si desidera raccogliere dai sistemi SQL. Include impostazioni specifiche per:
- database SQL di Azure
- Istanza gestita di SQL di Azure
- SQL Server in macchine virtuali di Azure
Ad esempio, è possibile creare un profilo denominato SQL Production e un altro denominato SQL Staging con impostazioni diverse per la frequenza di raccolta di dati, i dati da raccogliere e l'area di lavoro a cui inviare i dati.
Il profilo viene archiviato come risorsa regola di raccolta dati nella sottoscrizione e nel gruppo di risorse selezionato. Ogni profilo richiede quanto segue:
- Nome. Non è possibile modificarlo dopo averlo creato.
- Posizione. Si tratta di un'area di Azure.
- Area di lavoro Log Analytics per archiviare tutti i dati dal monitoraggio.
- Impostazioni di raccolta per la frequenza e il tipo di dati di SQL Monitoring da raccogliere.
Nota
Il percorso del profilo deve trovarsi nella stessa posizione dell'area di lavoro Log Analytics a cui si prevede di inviare i dati di monitoraggio.
Selezionare Crea profilo di monitoraggio dopo aver immesso i dettagli per il profilo di monitoraggio. La distribuzione del profilo potrebbe richiedere fino a un minuto. Se non viene visualizzato il nuovo profilo elencato nella casella combinata Profilo di monitoraggio, selezionare il pulsante Aggiorna e dovrebbe essere visualizzato al termine della distribuzione. Dopo aver selezionato il nuovo profilo, selezionare la scheda Gestisci profilo per aggiungere un computer di monitoraggio che verrà associato al profilo.
Aggiungere un computer di monitoraggio
Selezionare Aggiungi computer di monitoraggio per aprire un pannello Add monitoring virtual machine
di contesto per scegliere la macchina virtuale da cui monitorare le istanze SQL e fornire le stringa di connessione.
Selezionare la sottoscrizione e il nome della macchina virtuale di monitoraggio. Se si usa l’insieme di credenziali delle chiavi per archiviare le password per gli account di accesso di monitoraggio (scelta consigliata), selezionare la sottoscrizione di tale insieme di credenziali delle chiavi in Key vault subscriptions
e quindi selezionare l'insieme di credenziali delle chiavi in cui sono archiviati i segreti in KeyVault
. Nel campo Connection strings
, immettere l'URI dell'insieme di credenziali e il nome del segreto per ogni password da usare nelle stringhe di connessione.
Ad esempio, se l'URI dell'insieme di credenziali delle chiavi è https://mykeyvault.vault.azure.net/
e i nomi dei segreti sono sqlPassword1
e sqlPassword2
, il codice JSON nel campo Connection strings
conterrà quanto segue:
{
"secrets": {
"telegrafPassword1": {
"keyvault": "https://mykeyvault.vault.azure.net/",
"name": "sqlPassword1"
},
"telegrafPassword2": {
"keyvault": "https://mykeyvault.vault.azure.net/",
"name": "sqlPassword2"
}
}
}
È ora possibile fare riferimento a questi segreti ulteriormente nel campo Connection strings
. Nell'esempio seguente le due stringhe di connessione fanno riferimento ai segreti telegrafPassword1
e telegrafPassword2
definiti in precedenza:
{
"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;"
]
}
Per informazioni dettagliate sull'identificazione dei stringa di connessione per distribuzioni SQL diverse, vedere la sezione successiva.
Aggiungere stringhe di connessione
La stringa di connessione specifica il nome di accesso che SQL Insights (anteprima) deve usare per l'accesso a SQL per raccogliere i dati di monitoraggio. Se si usa un insieme di credenziali delle chiavi per archiviare la password per l'utente di monitoraggio, specificare l'URI dell'insieme di credenziali delle chiavi e il nome del segreto che contiene la password.
La stringa di connessione varia per ogni tipo di risorsa SQL:
- Database SQL di Azure
- Istanza gestita di database SQL di Azure
- SQL Server in macchine virtuali di Azure
Le connessioni TCP dal computer di monitoraggio all'indirizzo IP e alla porta usate dal database devono essere consentite da qualsiasi firewall o gruppi di sicurezza di rete (NSG) che potrebbero esistere nel percorso di rete. Per informazioni dettagliate su indirizzi IP e porte, vedere architettura di connettività database SQL di Azure.
Immettere la stringa di connessione nel modulo:
"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;"
]
Ottenere i dettagli dalla pagina delle Stringhe di connessione e dall'endpoint ADO.NET appropriato per il database.
Per monitorare una replica secondaria leggibile, aggiungere ;ApplicationIntent=ReadOnly
alla stringa di connessione. SQL Insights supporta il monitoraggio di un singolo database secondario. I dati raccolti verranno contrassegnati per riflettere i dati primari o secondari.