Memantau Azure SQL Database menggunakan Azure SQL Analytics (pratinjau)
BERLAKU UNTUK: Azure SQL Database, Azure SQL Managed Instance
Perhatian
Azure SQL Analytics (pratinjau) adalah integrasi dengan Azure Monitor, tempat banyak solusi pemantauan tidak lagi dalam pengembangan aktif. Untuk opsi pemantauan lainnya, lihat Pemantauan dan penyetelan performa di Azure SQL Database dan Azure SQL Managed Instance.
Azure SQL Analytics adalah solusi pemantauan cloud tingkat lanjut untuk memantau performa semua database Azure SQL Anda dalam skala besar dan di beberapa langganan dalam satu tampilan. Azure SQL Analytics mengumpulkan dan memvisualisasikan metrik performa utama dengan kecerdasan bawaan untuk pemecahan masalah performa.
Dengan menggunakan metrik yang dikumpulkan ini, Anda dapat membuat aturan dan pemberitahuan khusus. Azure SQL Analytics membantu Anda mengidentifikasi masalah di setiap lapisan tumpukan aplikasi Anda. Azure SQL Analytics menggunakan metrik Azure Diagnostics bersama dengan tampilan Azure Monitor untuk menyajikan data tentang semua database Azure SQL Anda dalam satu ruang kerja Analitik Log. Azure Monitor membantu Anda mengumpulkan, menghubungkan, dan memvisualisasikan data terstruktur dan tidak terstruktur.
Azure SQL Analytics adalah solusi pemantauan khusus cloud yang mendukung streaming telemetri diagnostik untuk semua database Azure SQL Anda. Karena Azure SQL Analytics tidak menggunakan agen untuk tersambung ke Azure Monitor, itu tidak mendukung pemantauan SQL Server yang dihosting di tempat atau di komputer virtual.
Sumber yang Tersambung | Didukung | Deskripsi |
---|---|---|
Pengaturan diagnostik | Ya | Metrik Azure dan data log dikirim ke Log Azure Monitor langsung oleh Azure. |
Akun penyimpanan Azure | Tidak | Azure Monitor tidak membaca data dari akun penyimpanan. |
Agen Windows | Tidak | Agen Windows langsung tidak digunakan oleh Azure SQL Analytics. |
Agen Linux | Tidak | Agen Linux langsung tidak digunakan oleh Azure SQL Analytics. |
Grup manajemen Manajer Operasi Pusat Sistem | Tidak | Sambungan langsung dari agen Manajer Operasi ke Azure Monitor tidak digunakan oleh Azure SQL Analytics. |
Tabel di bawah ini menguraikan opsi yang didukung untuk dua versi dasbor Azure SQL Analytics, satu untuk Azure SQL Database, dan yang lainnya untuk database Azure SQL Managed Instance.
Opsi Azure SQL Analytics | Deskripsi | Dukungan Azure SQL Database | Dukungan Azure SQL Managed Instance |
---|---|---|---|
Sumber daya menurut jenis | Perspektif yang menghitung semua sumber daya yang dipantau. | Ya | Ya |
Wawasan | Menyediakan penelusuran hierarkis ke dalam Wawasan Cerdas ke dalam performa. | Ya | Ya |
Kesalahan | Menyediakan penelusuran hierarkis ke dalam kesalahan SQL yang terjadi pada database. | Ya | Ya |
Waktu habis | Menyediakan penelusuran hierarkis ke dalam waktu tunggu SQL yang terjadi pada database. | Ya | Tidak |
Pemblokiran | Menyediakan penelusuran hierarkis ke dalam pemblokiran SQL yang terjadi pada database. | Ya | Tidak |
Database tunggu | Menyediakan penelusuran hierarkis ke dalam statistik tunggu SQL di tingkat database. Menyertakan ringkasan total waktu tunggu dan waktu tunggu per jenis tunggu. | Ya | Tidak |
Durasi kueri | Menyediakan penelusuran hierarkis ke dalam statistik eksekusi kueri seperti durasi kueri, penggunaan CPU, penggunaan Data IO, penggunaan Log IO. | Ya | Ya |
Kueri tunggu | Menyediakan penelusuran hierarkis ke dalam statistik tunggu kueri menurut kategori tunggu. | Ya | Ya |
Gunakan proses yang dijelaskan dalam Menambahkan solusi Azure Monitor dari Galeri Solusi untuk menambahkan Azure SQL Analytics (Pratinjau) ke ruang kerja Log Analytics Anda.
Setelah Anda membuat solusi Azure SQL Analytics di ruang kerja, Anda perlu mengonfigurasi setiap sumber daya yang ingin Anda pantau untuk mengalirkan telemetri diagnostiknya ke Azure SQL Analytics. Ikuti petunjuk terperinci di halaman ini:
- Aktifkan Azure Diagnostics untuk database Anda untuk mengalirkan telemetri diagnostik ke Azure SQL Analytics.
Halaman di atas juga memberikan petunjuk tentang mengaktifkan dukungan untuk memantau beberapa langganan Azure dari satu ruang kerja Azure SQL Analytics sebagai panel kaca tunggal.
Navigasi ke penyebaran Analitik SQL Anda dari halaman Solusi warisan ruang kerja Analitik Log.
Azure SQL Analytics menyediakan dua tampilan terpisah -- satu untuk memantau Database SQL, dan tampilan lainnya untuk memantau SQL Managed Instance.
Dasbor mencakup ringkasan semua database yang dipantau melalui perspektif yang berbeda. Agar perspektif yang berbeda berfungsi, Anda harus mengaktifkan metrik atau log yang tepat pada sumber daya SQL Anda untuk dialirkan ke ruang kerja Log Analytics.
Jika beberapa metrik atau log tidak dialirkan ke Azure Monitor, petak di Azure SQL Analytics tidak diisi dengan informasi pemantauan.
Setelah petak Azure SQL Analytics untuk database dipilih, dasbor pemantauan ditampilkan.
Memilih salah satu petak, membuka laporan penelusuran ke dalam perspektif tertentu. Setelah perspektif dipilih, laporan perincian akan terbuka.
Setiap perspektif dalam tampilan ini memberikan ringkasan di tingkat langganan, server, kumpulan elastis, dan database. Selain itu, setiap perspektif menunjukkan perspektif khusus untuk laporan di sebelah kanan. Memilih langganan, server, kumpulan, atau database dari daftar melanjutkan penelusuran.
Setelah petak Azure SQL Analytics untuk database dipilih, dasbor pemantauan ditampilkan.
Memilih salah satu petak, membuka laporan penelusuran ke dalam perspektif tertentu. Setelah perspektif dipilih, laporan perincian akan terbuka.
Memilih tampilan SQL Managed Instance, menampilkan detail tentang pemanfaatan instans, database instans, dan telemetri pada kueri yang dijalankan di seluruh instans terkelola.
Azure SQL Database Wawasan Cerdas memungkinkan Anda mengetahui apa yang terjadi dengan performa semua database Azure SQL. Semua Wawasan Cerdas yang dikumpulkan dapat divisualisasikan dan diakses melalui perspektif Wawasan.
Kumpulan elastis dan database memiliki laporan spesifiknya sendiri, yang menunjukkan semua data yang dikumpulkan untuk sumber daya dalam waktu yang ditentukan.
Melalui durasi kueri dan perspektif menunggu kueri, Anda dapat menghubungkan performa kueri apa pun melalui laporan kueri. Laporan ini membandingkan kinerja kueri di berbagai database dan memudahkan untuk menentukan database yang menjalankan kueri yang dipilih dengan baik dibandingkan yang lambat.
Untuk menggunakan Azure SQL Analytics, pengguna harus diberikan izin minimal peran Pembaca di Azure. Namun, peran ini, tidak mengizinkan pengguna untuk melihat teks kueri, atau melakukan tindakan penyetelan otomatis. Peran yang lebih permisif di Azure yang memungkinkan penggunaan Azure SQL Analytics sepenuhnya adalah Pemilik, Kontributor, Kontributor SQL DB, atau Kontributor SQL Server. Anda juga mungkin ingin mempertimbangkan untuk membuat peran kustom di portal dengan izin khusus yang diperlukan hanya untuk menggunakan Azure SQL Analytics, dan tanpa akses untuk mengelola sumber daya lainnya.
Catatan
Sebaiknya Anda menggunakan modul Azure Az PowerShell untuk berinteraksi dengan Azure. Lihat Menginstal Azure PowerShell untuk memulai. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.
Menyadari bahwa beberapa organisasi memberlakukan kontrol izin yang ketat di Azure, temukan skrip PowerShell berikut yang memungkinkan pembuatan peran kustom "Operator Pemantauan SQL Analytics" di portal Azure dengan izin baca dan tulis minimum yang diperlukan untuk menggunakan Azure SQL Analytics secara maksimal.
Ganti "{SubscriptionId}" di skrip di bawah ini dengan ID langganan Azure Anda, dan jalankan skrip yang masuk sebagai peran Pemilik atau Kontributor di 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
Setelah peran baru dibuat, tetapkan peran ini ke setiap pengguna yang Anda perlukan untuk memberikan izin khusus untuk menggunakan Azure SQL Analytics.
Analisis data di Azure SQL Analytics didasarkan pada bahasa Log Analytics untuk kueri dan pelaporan khusus Anda. Temukan deskripsi data yang tersedia yang dikumpulkan dari sumber database untuk kueri kustom di metrik dan log yang tersedia.
Pemberitahuan otomatis di Azure SQL Analytics didasarkan pada penulisan kueri Analisis Log yang memicu pemberitahuan saat kondisi terpenuhi. Temukan di bawah ini beberapa contoh kueri Log Analytics yang dapat digunakan untuk menyiapkan peringatan di Azure SQL Analytics.
Anda dapat dengan mudah membuat pemberitahuan dengan data yang berasal dari sumber daya Azure SQL Database. Berikut adalah beberapa kueri log berguna yang dapat Anda gunakan dengan pemberitahuan log:
AzureMetrics
| where ResourceProvider=="MICROSOFT.SQL"
| where ResourceId contains "/DATABASES/"
| where MetricName=="cpu_percent"
| summarize AggregatedValue = max(Maximum) by bin(TimeGenerated, 5m)
| render timechart
Catatan
- Prasyarat untuk menyiapkan pemberitahuan ini adalah database yang dipantau mengalirkan metrik dasar ke ruang kerja Analitik Log yang digunakan oleh Azure SQL Analytics.
- Mengganti nilai MetricName
cpu_percent
dengandtu_consumption_percent
untuk mendapatkan hasil DTU yang tinggi.
AzureMetrics
| where ResourceProvider=="MICROSOFT.SQL"
| where ResourceId contains "/ELASTICPOOLS/"
| where MetricName=="cpu_percent"
| summarize AggregatedValue = max(Maximum) by bin(TimeGenerated, 5m)
| render timechart
Catatan
- Prasyarat untuk menyiapkan pemberitahuan ini adalah database yang dipantau mengalirkan metrik Dasar ke ruang kerja Analisis Log yang digunakan oleh Azure SQL Analytics.
- Mengganti nilai MetricName
cpu_percent
dengandtu_consumption_percent
untuk mendapatkan hasil DTU yang tinggi.
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
Catatan
- Prasyarat untuk menyiapkan pemberitahuan ini adalah database yang dipantau mengalirkan metrik dasar ke ruang kerja Analitik Log yang digunakan oleh Azure SQL Analytics.
- Kueri ini memerlukan aturan pemberitahuan untuk disetel untuk menonaktifkan pemberitahuan bila ada hasil (> 0 hasil) dari kueri, yang menunjukkan bahwa kondisi ada pada beberapa database. Output adalah daftar sumber daya database yang berada di atas
storage_threshold
dalam yangtime_range
ditentukan. - Output adalah daftar sumber daya database yang berada di atas
storage_threshold
dalam yangtime_range
ditentukan.
Penting
Jika database berperforma baik, dan tidak ada Wawasan Cerdas yang dihasilkan, kueri ini akan gagal dengan pesan kesalahan: Gagal menyelesaikan ekspresi skalar bernama rootCauseAnalysis_s
. Perilaku ini diharapkan untuk semua kasus di mana tidak ada wawasan cerdas untuk database.
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
Catatan
- Persyaratan awal untuk menyiapkan pemberitahuan ini adalah database yang dipantau mengalirkan log diagnostik SQLInsights ke ruang kerja Analitik Log yang digunakan oleh Azure SQL Analytics.
- Kueri ini memerlukan aturan pemberitahuan untuk diatur agar berjalan dengan frekuensi yang sama seperti
alert_run_interval
untuk menghindari hasil duplikat. Aturan harus disiapkan untuk mengaktifkan pemberitahuan ketika ada hasil (> 0 hasil) dari kueri. - Sesuaikan
alert_run_interval
untuk menentukan rentang waktu untuk memeriksa apakah kondisi telah terjadi pada database yang dikonfigurasi untuk mengalirkan log SQLInsights ke Azure SQL Analytics. - Sesuaikan insight_string untuk menangkap output dari teks analisis akar penyebab Wawasan. Ini adalah teks yang sama yang ditampilkan di UI Azure SQL Analytics yang dapat Anda gunakan dari wawasan yang ada. Atau, Anda dapat menggunakan kueri di bawah ini untuk melihat teks dari semua Wawasan yang dihasilkan pada langganan Anda. Gunakan output kueri untuk mengumpulkan untai berbeda untuk menyiapkan pemberitahuan di Wawasan.
AzureDiagnostics
| where Category == "SQLInsights" and status_s == "Active"
| distinct rootCauseAnalysis_s
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
Catatan
- Prasyarat untuk menyiapkan pemberitahuan ini adalah bahwa instans terkelola yang dipantau memiliki streaming log ResourceUsageStats yang diaktifkan ke ruang kerja Analitik Log yang digunakan oleh Azure SQL Analytics.
- Kueri ini memerlukan aturan pemberitahuan untuk disetel untuk menonaktifkan pemberitahuan bila ada hasil (> 0 hasil) dari kueri, yang menunjukkan bahwa kondisi ada pada instans terkelola. Output adalah konsumsi persentase penyimpanan pada instans terkelola.
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
Catatan
- Prasyarat untuk menyiapkan pemberitahuan ini adalah bahwa instans terkelola yang dipantau memiliki streaming log ResourceUsageStats yang diaktifkan ke ruang kerja Analitik Log yang digunakan oleh Azure SQL Analytics.
- Kueri ini memerlukan aturan pemberitahuan untuk disetel untuk menonaktifkan pemberitahuan bila ada hasil (> 0 hasil) dari kueri, yang menunjukkan bahwa kondisi ada pada instans terkelola. Output adalah konsumsi persentase pemanfaatan CPU rata-rata dalam periode yang ditentukan pada instans terkelola.
Meskipun Azure SQL Analytics (pratinjau) gratis untuk digunakan, penggunaan telemetri diagnostik di atas unit penyerapan data gratis yang dialokasikan setiap bulan berlaku, lihat Harga Analitik Log. Unit penyerapan data gratis yang disediakan memungkinkan pemantauan gratis beberapa database setiap bulan. Basis data yang lebih aktif dengan beban kerja yang lebih berat menyerap lebih banyak data dibandingkan database yang tidak digunakan. Anda dapat dengan mudah memantau konsumsi penyerapan data di Azure SQL Analytics dengan memilih Ruang Kerja OMS pada menu navigasi Azure SQL Analytics, lalu memilih Penggunaan dan Perkiraan Biaya.
- Gunakan kueri log di Azure Monitor untuk melihat data Azure SQL yang terperinci.
- Buat dasbor Anda sendiri yang menampilkan data Azure SQL.
- Buat pemberitahuan saat peristiwa Azure SQL tertentu terjadi.
- Memantau Azure SQL Database dengan Azure Monitor
- Memantau Azure SQL Managed Instance dengan Azure Monitor