Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Biaya Azure Monitor dapat bervariasi secara signifikan berdasarkan volume data yang dikumpulkan di ruang kerja Analitik Log Anda. Volume ini dipengaruhi oleh serangkaian solusi menggunakan ruang kerja dan jumlah data yang dikumpulkan setiap solusi.
Artikel ini menyediakan panduan tentang menganalisis data yang Anda kumpulkan untuk membantu mengontrol biaya penyerapan data Anda. Ini membantu Anda:
- Tentukan penyebab penggunaan yang lebih tinggi dari yang diharapkan.
- Prediksi biaya saat Anda memantau lebih banyak sumber daya dan mengonfigurasi berbagai fitur Azure Monitor.
Petunjuk / Saran
Untuk strategi mengurangi biaya Azure Monitor Anda, lihat Pengoptimalan biaya dan Azure Monitor.
Penyebab penggunaan yang lebih tinggi dari yang diharapkan
Setiap ruang kerja Analitik Log dibebankan sebagai layanan terpisah dan berkontribusi pada tagihan untuk langganan Azure Anda. Jumlah penyerapan data dapat cukup besar, tergantung pada:
- Kumpulan wawasan dan layanan (misalnya, Application Insights, Container Insights, VM Insights) diaktifkan dan konfigurasinya.
- Jumlah dan jenis sumber daya yang dipantau.
- Volume data yang dikumpulkan dari setiap sumber daya yang dipantau.
Peningkatan tak terduga dalam salah satu faktor ini dapat mengakibatkan peningkatan biaya untuk retensi data. Sisa artikel ini menyediakan metode untuk mendeteksi situasi seperti itu dan kemudian menganalisis data yang dikumpulkan untuk mengidentifikasi dan mengurangi sumber peningkatan penggunaan.
Mengirim peringatan saat pengumpulan data tinggi
Untuk menghindari tagihan tak terduga, Anda harus proaktif diberi tahu setiap kali Anda mengalami penggunaan yang berlebihan. Pemberitahuan ini memungkinkan Anda untuk mengatasi potensi anomali sebelum akhir periode penagihan Anda.
Contoh berikut adalah aturan pemberitahuan pencarian log yang mengirim pemberitahuan jika volume data yang dapat ditagih yang diserap dalam 24 jam terakhir lebih besar dari 50 GB. Ubah pengaturan Logika Peringatan untuk menggunakan ambang yang berbeda berdasarkan penggunaan yang diharapkan di lingkungan Anda. Anda juga dapat meningkatkan frekuensi untuk memeriksa penggunaan beberapa kali setiap hari, tetapi opsi ini akan menghasilkan biaya yang lebih tinggi untuk aturan peringatan.
| Pengaturan | Nilai |
|---|---|
| Cakupan | |
| Cakupan target | Pilih ruang kerja Log Analytics Anda. |
| Kondisi | |
| Kueri | Usage \| where IsBillable \| summarize DataGB = sum(Quantity / 1000) |
| Pengukuran | Ukuran: DataGB Jenis agregasi: Total Granularitas agregasi: 1 hari |
| Logika Pemberitahuan | Operator: Lebih besar dari Nilai ambang: 50 Frekuensi evaluasi: 1 hari |
| Tindakan | Pilih atau tambahkan grup tindakan untuk memberi tahu Anda bila ambang terlampaui. |
| Rincian | |
| Tingkat keparahan | Peringatan |
| Nama aturan pemberitahuan | Volume data yang dapat ditagih lebih besar dari 50 GB dalam 24 jam. |
Analisis penggunaan di Azure Monitor
Mulai analisis Anda dengan alat yang sudah ada di Azure Monitor. Alat-alat ini tidak memerlukan konfigurasi dan sering kali dapat memberikan informasi yang Anda butuhkan dengan upaya minimal. Jika Anda memerlukan analisis yang lebih mendalam ke dalam data yang dikumpulkan daripada fitur Azure Monitor yang ada, gunakan salah satu kueri log berikut di Analitik Log.
Wawasan Ruang Kerja Analitik Log
Informasi Ruang Kerja Analitik Log menyediakan pemahaman yang cepat tentang data di ruang kerja Anda. Misalnya, Anda dapat menentukan:
- Tabel data yang menyerap volume data terbanyak dalam tabel utama.
- Sumber daya teratas yang menyumbangkan data.
- Tren penyerapan data.
Lihat tab Penggunaan untuk perincian penyerapan menurut solusi dan tabel. Informasi ini dapat membantu Anda dengan cepat mengidentifikasi tabel yang berkontribusi pada sebagian besar volume data Anda. Tab juga memperlihatkan tren pengumpulan data dari waktu ke waktu. Anda dapat menentukan apakah pengumpulan data terus meningkat dari waktu ke waktu atau tiba-tiba meningkat sebagai respons terhadap perubahan konfigurasi.
Pilih Kueri Tambahan untuk kueri bawaan yang membantu Anda lebih memahami pola data Anda.
Penggunaan dan estimasi biaya
Bagan Penyerapan data per solusi pada halaman Penggunaan dan perkiraan biaya untuk setiap ruang kerja menunjukkan total volume data yang dikirim dan berapa banyak yang dikirim oleh setiap solusi selama 31 hari sebelumnya. Informasi ini membantu Anda menentukan tren seperti apakah peningkatan berasal dari penggunaan data secara keseluruhan atau oleh solusi tertentu.
Mengkueri volume data dari tabel Penggunaan
Analisis jumlah data yang dapat ditagih yang dikumpulkan oleh layanan atau solusi tertentu. Kueri ini menggunakan tabel Penggunaan yang mengumpulkan data penggunaan untuk setiap tabel di ruang kerja.
Catatan
Klausa dengan TimeGenerated hanya untuk memastikan bahwa pengalaman kueri di portal Azure menelusuri kembali melampaui 24 jam bawaan. Saat Anda menggunakan tipe data Penggunaan, StartTime dan EndTime mewakili kelompok waktu yang hasilnya disajikan.
Volume data yang dapat ditagih berdasarkan jenis selama sebulan terakhir
Usage
| where TimeGenerated > ago(32d)
| where StartTime >= startofday(ago(31d)) and EndTime < startofday(now())
| where IsBillable == true
| summarize BillableDataGB = sum(Quantity) / 1000. by bin(StartTime, 1d), DataType
| render columnchart
Volume data yang dapat ditagih berdasarkan solusi dan jenis selama sebulan terakhir
Usage
| where TimeGenerated > ago(32d)
| where StartTime >= startofday(ago(31d)) and EndTime < startofday(now())
| where IsBillable == true
| summarize BillableDataGB = sum(Quantity) / 1000 by Solution, DataType
| sort by Solution asc, DataType asc
Lihat Kueri untuk tabel Penggunaan untuk contoh kueri lainnya.
Mengkueri volume data dari peristiwa secara langsung
Anda dapat menggunakan kueri log di Analitik Log jika Anda memerlukan analisis yang lebih dalam ke dalam data yang dikumpulkan. Setiap tabel di ruang kerja Analitik Log memiliki kolom standar berikut yang dapat membantu Anda menganalisis data yang dapat ditagih:
- _IsBillable mengidentifikasi rekaman yang terkena biaya pemrosesan. Gunakan kolom ini untuk memfilter data yang tidak ditagihkan.
- _BilledSize menyediakan ukuran dalam byte dari catatan.
Volume data yang dapat ditagih untuk peristiwa tertentu
Jika Anda menemukan bahwa jenis data tertentu mengumpulkan data yang berlebihan, Anda mungkin ingin menganalisis data dalam tabel tersebut untuk menentukan rekaman tertentu yang meningkat. Contoh ini memfilter ID peristiwa tertentu dalam Event tabel lalu menyediakan hitungan untuk setiap ID. Anda bisa mengubah kueri ini dengan menggunakan kolom dari tabel lain.
Event
| where TimeGenerated > startofday(ago(31d)) and TimeGenerated < startofday(now())
| where EventID == 5145 or EventID == 5156
| where _IsBillable == true
| summarize count(), Bytes=sum(_BilledSize) by EventID, bin(TimeGenerated, 1d)
Lihat Kueri untuk tabel Peristiwa untuk contoh kueri lainnya.
Volume data menurut sumber daya, grup sumber daya, atau langganan Azure
Anda dapat menganalisis jumlah data yang dapat ditagih yang dikumpulkan dari sumber daya atau sekumpulan sumber daya tertentu. Kueri ini menggunakan kolom _ResourceId dan _SubscriptionId untuk data dari sumber daya yang dihosting di Azure.
Peringatan
Gunakan kueri temukan secukupnya karena pemindaian di seluruh tipe data memerlukan banyak sumber daya untuk dieksekusi. Jika Anda tidak memerlukan hasil per langganan, grup sumber daya, atau nama sumber daya, gunakan tabel Penggunaan seperti dalam kueri sebelumnya.
Volume data yang dapat ditagih menurut ID sumber daya untuk satu hari penuh terakhir
find where TimeGenerated between(startofday(ago(1d))..startofday(now())) project _ResourceId, _BilledSize, _IsBillable
| where _IsBillable == true
| summarize BillableDataBytes = sum(_BilledSize) by _ResourceId
| sort by BillableDataBytes nulls last
Volume data yang dapat ditagih menurut grup sumber daya untuk satu hari penuh terakhir
find where TimeGenerated between(startofday(ago(1d))..startofday(now())) project _ResourceId, _BilledSize, _IsBillable
| where _IsBillable == true
| summarize BillableDataBytes = sum(_BilledSize) by _ResourceId
| extend resourceGroup = tostring(split(_ResourceId, "/")[4] )
| summarize BillableDataBytes = sum(BillableDataBytes) by resourceGroup
| sort by BillableDataBytes nulls last
Mungkin akan bermanfaat untuk memeriksa _ResourceId:
| parse tolower(_ResourceId) with "/subscriptions/" subscriptionId "/resourcegroups/"
resourceGroup "/providers/" provider "/" resourceType "/" resourceName
Volume data yang dapat ditagih berdasarkan langganan untuk hari penuh terakhir
find where TimeGenerated between(startofday(ago(1d))..startofday(now())) project _BilledSize, _IsBillable, _SubscriptionId
| where _IsBillable == true
| summarize BillableDataBytes = sum(_BilledSize) by _SubscriptionId
| sort by BillableDataBytes nulls last
Petunjuk / Saran
Untuk ruang kerja dengan volume data besar, melakukan kueri seperti yang diperlihatkan di bagian ini, yang mengkueri data mentah dalam volume besar, mungkin perlu dibatasi hingga satu hari. Untuk melacak tren dari waktu ke waktu, pertimbangkan untuk menyiapkan laporan Power BI dan menggunakan refresh bertahap untuk mengumpulkan volume data per sumber daya sekali sehari.
Volume data menurut komputer
Anda dapat menganalisis jumlah data yang dapat ditagih yang dikumpulkan dari komputer virtual atau sekumpulan komputer virtual. Tabel Penggunaan tidak memiliki granularitas untuk menampilkan volume data untuk komputer virtual tertentu, sehingga kueri ini menggunakan operator temukan untuk mencari semua tabel yang menyertakan nama komputer. Jenis Penggunaan dihilangkan karena kueri ini hanya untuk analitik tren data.
Peringatan
Gunakan kueri temukan secukupnya karena pemindaian di seluruh tipe data memerlukan banyak sumber daya untuk dieksekusi. Jika Anda tidak memerlukan hasil per langganan, grup sumber daya, atau nama sumber daya, gunakan tabel Penggunaan seperti dalam kueri sebelumnya.
Volume data yang dapat ditagih per komputer untuk hari penuh terakhir
find where TimeGenerated between(startofday(ago(1d))..startofday(now())) project _BilledSize, _IsBillable, Computer, Type
| where _IsBillable == true and Type != "Usage"
| extend computerName = tolower(tostring(split(Computer, '.')[0]))
| summarize BillableDataBytes = sum(_BilledSize) by computerName
| sort by BillableDataBytes desc nulls last
Hitungan acara yang dapat ditagih oleh komputer untuk satu hari penuh terakhir
find where TimeGenerated between(startofday(ago(1d))..startofday(now())) project _IsBillable, Computer, Type
| where _IsBillable == true and Type != "Usage"
| extend computerName = tolower(tostring(split(Computer, '.')[0]))
| summarize eventCount = count() by computerName
| sort by eventCount desc nulls last
Melakukan kueri untuk tipe data umum
Jika Anda menemukan bahwa Anda memiliki data yang dapat ditagih berlebihan untuk jenis data tertentu, Anda mungkin perlu melakukan kueri untuk menganalisis data dalam tabel tersebut. Kueri berikut ini menyediakan sampel untuk beberapa jenis data umum:
Solusi keamanan
SecurityEvent
| summarize AggregatedValue = count() by EventID
| order by AggregatedValue desc nulls last
Lihat Kueri untuk tabel SecurityEvent untuk contoh kueri lainnya.
Solusi Manajemen Log
Usage
| where Solution == "LogManagement" and iff(isnotnull(toint(IsBillable)), IsBillable == true, IsBillable == "true") == true
| summarize AggregatedValue = count() by DataType
| order by AggregatedValue desc nulls last
Lihat Kueri untuk tabel Penggunaan untuk contoh kueri lainnya.
Tipe data Perf
Perf
| summarize AggregatedValue = count() by CounterPath
Perf
| summarize AggregatedValue = count() by CounterName
Lihat Kueri untuk tabel Perf untuk contoh kueri lainnya.
Tipe data Peristiwa
Event
| summarize AggregatedValue = count() by EventID
Event
| summarize AggregatedValue = count() by EventLog, EventLevelName
Lihat Kueri untuk tabel Peristiwa untuk contoh kueri lainnya.
Tipe data Syslog
Syslog
| summarize AggregatedValue = count() by Facility, SeverityLevel
Syslog
| summarize AggregatedValue = count() by ProcessName
Lihat Kueri untuk tabel Syslog untuk contoh kueri lainnya.
Tipe data AzureDiagnostics
AzureDiagnostics
| summarize AggregatedValue = count() by ResourceProvider, ResourceId
Lihat Kueri untuk tabel AzureDiagnostics untuk contoh kueri lainnya.
Data Insights Aplikasi
Ada dua pendekatan untuk menyelidiki jumlah data yang dikumpulkan untuk Application Insights, tergantung pada apakah Anda memiliki aplikasi klasik atau berbasis ruang kerja. Gunakan properti _BilledSize yang tersedia untuk setiap peristiwa yang diproses baik untuk sumber daya berbasis ruang kerja maupun klasik. Anda juga dapat menggunakan informasi agregat dalam tabel systemEvents untuk sumber daya klasik.
Catatan
Kueri terhadap tabel Application Insights, kecuali SystemEvents, akan berfungsi untuk sumber daya Application Insights berbasis ruang kerja dan klasik.
Kompatibilitas mundur memungkinkan Anda untuk terus menggunakan nama tabel warisan. Untuk sumber daya berbasis ruang kerja, buka Log pada menu ruang kerja Log Analitik. Untuk sumber daya klasik, buka Log pada menu Application Insights .
Operasi dependensi menghasilkan volume data terbanyak dalam 30 hari terakhir (berbasis ruang kerja atau klasik)
dependencies
| where timestamp >= startofday(ago(30d))
| summarize sum(_BilledSize) by operation_Name
| render barchart
Volume data harian berdasarkan jenis untuk sumber daya Application Insights ini selama 7 hari terakhir (hanya klasik)
systemEvents
| where timestamp >= startofday(ago(7d)) and timestamp < startofday(now())
| where type == "Billing"
| extend BillingTelemetryType = tostring(dimensions["BillingTelemetryType"])
| extend BillingTelemetrySizeInBytes = todouble(measurements["BillingTelemetrySize"])
| summarize sum(BillingTelemetrySizeInBytes) by BillingTelemetryType, bin(timestamp, 1d)
Tren volume data untuk sumber daya berbasis ruang kerja
Untuk melihat tren volume data untuk sumber daya Application Insights berbasis ruang kerja, gunakan kueri yang menyertakan semua tabel Application Insights. Kueri berikut menggunakan nama tabel khusus untuk sumber daya berbasis ruang kerja.
Volume data harian menurut jenis untuk semua sumber daya Application Insights di ruang kerja selama 7 hari
union AppAvailabilityResults,
AppBrowserTimings,
AppDependencies,
AppExceptions,
AppEvents,
AppMetrics,
AppPageViews,
AppPerformanceCounters,
AppRequests,
AppSystemEvents,
AppTraces
| where TimeGenerated >= startofday(ago(7d)) and TimeGenerated < startofday(now())
| summarize sum(_BilledSize) by _ResourceId, bin(TimeGenerated, 1d)
Untuk melihat tren volume data hanya untuk satu sumber daya Application Insights, tambahkan baris berikut sebelum summarize dalam kueri sebelumnya:
| where _ResourceId contains "<myAppInsightsResourceName>"
Petunjuk / Saran
Untuk ruang kerja dengan volume data besar, melakukan kueri seperti yang sebelumnya, yang mengkueri data mentah dalam volume besar, mungkin perlu dibatasi hingga satu hari. Untuk melacak tren dari waktu ke waktu, pertimbangkan untuk menyiapkan laporan Power BI dan menggunakan refresh bertahap untuk mengumpulkan volume data per sumber daya sekali sehari.
Memahami simpul yang mengirim data
Jika Anda tidak memiliki data yang berlebihan dari sumber tertentu, Anda mungkin memiliki jumlah agen berlebihan yang mengirim data.
Jumlah simpul agen yang mengirim heartbeat setiap hari dalam sebulan terakhir
Heartbeat
| where TimeGenerated > startofday(ago(31d))
| summarize nodes = dcount(Computer) by bin(TimeGenerated, 1d)
| render timechart
Lihat Kueri untuk tabel Heartbeat untuk contoh kueri lainnya.
Peringatan
Gunakan kueri temukan secukupnya karena pemindaian di seluruh tipe data memerlukan banyak sumber daya untuk dieksekusi. Jika Anda tidak memerlukan hasil per langganan, grup sumber daya, atau nama sumber daya, gunakan tabel Penggunaan seperti dalam kueri sebelumnya.
Jumlah simpul yang mengirim data apa pun dalam 24 jam terakhir
find where TimeGenerated > ago(24h) project Computer
| extend computerName = tolower(tostring(split(Computer, '.')[0]))
| where computerName != ""
| summarize nodes = dcount(computerName)
Volume data yang dikirim oleh setiap simpul dalam 24 jam terakhir
find where TimeGenerated > ago(24h) project _BilledSize, Computer
| extend computerName = tolower(tostring(split(Computer, '.')[0]))
| where computerName != ""
| summarize TotalVolumeBytes=sum(_BilledSize) by computerName
Node yang ditagih berdasarkan tingkat harga lama per Node
Tingkat harga warisan Per Node ditagih untuk simpul dengan granularitas per jam. Ini juga tidak menghitung simpul yang hanya mengirim sekumpulan jenis data keamanan. Untuk memperoleh daftar komputer yang akan dikenakan biaya berdasarkan simpul jika ruang kerja berada di tingkat harga Per Simpul lama, cari simpul yang mengirimkan jenis data yang dikenakan biaya karena beberapa jenis data tidak dikenakan biaya. Pada kasus ini, gunakan bidang paling kiri dari nama domain yang sepenuhnya memenuhi syarat.
Kueri berikut ini mengembalikan jumlah komputer dengan data yang ditagihkan per jam. Jumlah unit di tagihan Anda menggunakan satuan bulan node, yang diwakili oleh billableNodeMonthsPerDay dalam kueri. Jika ruang kerja memiliki solusi Manajemen Pembaruan terinstal, tambahkan tipe data Update dan UpdateSummary ke daftar pada klausa where.
find where TimeGenerated >= startofday(ago(7d)) and TimeGenerated < startofday(now()) project Computer, _IsBillable, Type, TimeGenerated
| where Type !in ("SecurityAlert", "SecurityBaseline", "SecurityBaselineSummary", "SecurityDetection", "SecurityEvent", "WindowsFirewall", "MaliciousIPCommunication", "LinuxAuditLog", "SysmonEvent", "ProtectionStatus", "WindowsEvent")
| extend computerName = tolower(tostring(split(Computer, '.')[0]))
| where computerName != ""
| where _IsBillable == true
| summarize billableNodesPerHour=dcount(computerName) by bin(TimeGenerated, 1h)
| summarize billableNodesPerDay = sum(billableNodesPerHour)/24., billableNodeMonthsPerDay = sum(billableNodesPerHour)/24./31. by day=bin(TimeGenerated, 1d)
| sort by day asc
Catatan
Beberapa kompleksitas dalam algoritma penagihan aktual saat penargetan solusi digunakan tidak diwakili dalam kueri sebelumnya.
Data yang terlambat tiba
Jika Anda mengamati pemrosesan data tinggi yang dilaporkan menggunakan rekaman Usage, namun hasil penjumlahan _BilledSize langsung pada jenis data tidak menunjukkan hal yang sama, ada kemungkinan Anda memiliki data yang terlambat tiba. Situasi ini terjadi ketika data diserap dengan tanda waktu lama.
Misalnya, agen mungkin memiliki masalah konektivitas dan mengirim akumulasi data saat tersambung kembali. Mungkin host memiliki waktu yang salah. Kedua contoh ini dapat mengakibatkan ketidaksesuaian yang jelas antara data yang dimasukkan yang dilaporkan oleh jenis data Penggunaan dan kueri yang menjumlahkan _BilledSize atas data mentah untuk hari tertentu yang ditentukan oleh TimeGenerated, penanda waktu ketika peristiwa tersebut dihasilkan.
Untuk mendiagnosis masalah data yang terlambat tiba, gunakan kolom _TimeReceived dan kolom TimeGenerated . Properti _TimeReceived adalah waktu ketika rekaman diterima oleh titik penyerapan Azure Monitor di cloud Azure.
Contoh berikut adalah sebagai respons terhadap volume data yang diserap tinggi dari data W3CIISLog pada 2 Mei 2021, untuk mengidentifikasi tanda waktu pada data yang diserap ini.
where TimeGenerated > datetime(1970-01-01) pernyataan termasuk sebagai petunjuk bagi antarmuka pengguna Log Analytics untuk melihat seluruh data.
W3CIISLog
| where TimeGenerated > datetime(1970-01-01)
| where _TimeReceived >= datetime(2021-05-02) and _TimeReceived < datetime(2021-05-03)
| where _IsBillable == true
| summarize BillableDataMB = sum(_BilledSize)/1.E6 by bin(TimeGenerated, 1d)
| sort by TimeGenerated asc
Langkah berikutnya
- Lihat detail harga Azure Monitor Logs untuk informasi tentang cara perhitungan biaya data di ruang kerja Log Analytics dan berbagai opsi konfigurasi untuk mengurangi biaya Anda.
- Lihat Biaya dan penggunaan Azure Monitor untuk deskripsi berbagai jenis biaya Azure Monitor dan cara menganalisisnya di tagihan Azure Anda.
- Lihat Praktik terbaik Azure Monitor - Manajemen biaya untuk praktik terbaik dalam mengonfigurasi dan mengelola Azure Monitor guna meminimalkan biaya Anda.
- Lihat Transformasi pengumpulan data di Azure Monitor (pratinjau) untuk informasi tentang penggunaan transformasi untuk mengurangi jumlah data yang Anda kumpulkan di ruang kerja Analitik Log dengan memfilter rekaman dan kolom yang tidak diinginkan.