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.
Azure Log Analytics adalah platform pengelogan terpusat yang menggabungkan log dari aplikasi, sumber daya Azure, VM, kontainer, dan banyak lagi. Mengintegrasikannya dengan penyusun API Data (DAB) membantu perusahaan memenuhi persyaratan kepatuhan, tata kelola, dan pengamatan. Tidak seperti Application Insights (yang berfokus pada APM), Log Analytics menyediakan agregasi log yang lebih luas dengan dukungan Kusto Query Language (KQL).
Prasyarat
- File konfigurasi DAB yang ada.
- Langganan Azure dengan izin untuk membuat sumber daya Log Analytics.
- Ruang kerja Azure Log Analytics dengan:
- Tabel kustom (berakhiran
_CL) - Aturan Pengumpulan Data (DCR)
- Titik akhir Pengumpulan Data (DCE)
- Tabel kustom (berakhiran
- Identitas Terkelola diaktifkan pada host DAB Anda (Azure App Service, Aplikasi Kontainer, VM, dll.).
- CLI pembangun API Data. Menginstal CLI
Menyiapkan sumber daya Azure Log Analytics
Sebelum mengonfigurasi DAB, buat sumber daya Azure yang diperlukan.
Membuat ruang kerja Analitik Log
- Navigasi ke ruang kerja Azure Portal>Log Analytics.
- Pilih + Buat.
- Pilih langganan, grup sumber daya, dan wilayah Anda.
- Berikan nama ruang kerja.
- Pilih Tinjau + buat>Buat.
Membuat tabel kustom
Tabel kustom untuk API Ingesti Log harus diakhiri dengan _CL.
- Di ruang kerja Analitik Log Anda, navigasikan ke Tabel.
- Pilih + Buat>Log kustom baru (berbasis DCR).
- Masukkan nama tabel (misalnya,
DabLogs_CL). - Tentukan skema dengan kolom ini:
-
Time(tanggalwaktu) -
LogLevel(String) -
Message(String) -
Component(String) -
Identifier(String)
-
- Pilih Buat.
Membuat Titik Akhir Pengumpulan Data (DCE)
- Navigasi ke Pantau>Titik Akhir Pengumpulan Data.
- Pilih + Buat.
- Pilih langganan, grup sumber daya, dan wilayah Anda.
- Berikan nama (misalnya,
my-dce). - Pilih Tinjau + buat>Buat.
- Salin URL titik akhir Penyerapan Log (misalnya,
https://my-dce.eastus-1.ingest.monitor.azure.com).
Membuat Aturan Pengumpulan Data (DCR)
- Navigasi ke Pantau>Aturan Pengumpulan Data.
- Pilih + Buat.
- Pilih langganan, grup sumber daya, wilayah.
- Berikan nama (misalnya,
my-dcr). - Di Sumber data, pilih Log Teks Khusus.
- Konfigurasi
- Titik Akhir Pengumpulan Data: Pilih DCE Anda.
- Tujuan: Ruang kerja Analitik Log Anda.
-
Tabel: Tabel kustom Anda (
DabLogs_CL).
- Pilih Tinjau + buat>Buat.
- Salin ID Yang Tidak Dapat Diubah (dimulai dengan
dcr-).
Melakukan konfigurasi autentikasi
DAB menggunakan Azure Managed Identity untuk mengautentikasi ke Analitik Log. Tidak ada kredensial yang disimpan dalam konfigurasi Anda.
Aktifkan Identitas yang Dikelola
az webapp identity assign \
--name my-app \
--resource-group my-rg
Tetapkan izin
Berikan peran Penerbit Metrik Pemantauan ke Identitas Terkelola Anda di DCR.
# Get Managed Identity principal ID
PRINCIPAL_ID=$(az webapp identity show \
--name my-app \
--resource-group my-rg \
--query principalId -o tsv)
# Get DCR resource ID
DCR_ID=$(az monitor data-collection rule show \
--name my-dcr \
--resource-group my-rg \
--query id -o tsv)
# Assign role
az role assignment create \
--assignee $PRINCIPAL_ID \
--role "Monitoring Metrics Publisher" \
--scope $DCR_ID
Penting
Tanpa penugasan peran ini, DAB tidak dapat mengirim log ke Log Analytics bahkan dengan konfigurasi yang benar.
Konfigurasi Log Analytics
azure-log-analytics Tambahkan bagian di bawah runtime.telemetry dalam file konfigurasi Anda.
{
"runtime": {
"telemetry": {
"azure-log-analytics": {
"enabled": true,
"dab-identifier": "my-dab-instance",
"flush-interval-seconds": 10,
"auth": {
"custom-table-name": "DabLogs_CL",
"dcr-immutable-id": "dcr-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"dce-endpoint": "https://my-dce.eastus-1.ingest.monitor.azure.com"
}
}
}
}
}
Properti konfigurasi
| Harta benda | Description | Bawaan | Constraints |
|---|---|---|---|
enabled |
Mengaktifkan atau menonaktifkan integrasi Analitik Log. | false |
Boolean |
dab-identifier |
String unik untuk mengidentifikasi entri log dari instans DAB ini. | DabLogs |
String apa saja |
flush-interval-seconds |
Seberapa sering log dikirimkan ke Log Analytics (dalam hitungan detik). | 5 |
Harus > menjadi 0 |
auth.custom-table-name |
Nama tabel kustom di ruang kerja Analitik Log Anda. | (diperlukan) | Harus diakhir dengan _CL |
auth.dcr-immutable-id |
ID Aturan Pengumpulan Data Anda yang tidak dapat diubah. | (diperlukan) | Dimulai dengan dcr- |
auth.dce-endpoint |
URL Titik Akhir Pengumpulan Data. | (diperlukan) | HTTPS URL |
Command-line
Konfigurasikan Analitik Log melalui dab configure.
Aktifkan Analitik Log
dab configure \
--runtime.telemetry.azure-log-analytics.enabled true
Tetapkan pengidentifikasi DAB
dab configure \
--runtime.telemetry.azure-log-analytics.dab-identifier my-dab-instance
Menetapkan interval flush
dab configure \
--runtime.telemetry.azure-log-analytics.flush-interval-seconds 10
Atur nama tabel kustom
dab configure \
--runtime.telemetry.azure-log-analytics.auth.custom-table-name DabLogs_CL
Atur ID DCR yang tidak dapat diubah
dab configure \
--runtime.telemetry.azure-log-analytics.auth.dcr-immutable-id dcr-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Mengatur titik akhir DCE
dab configure \
--runtime.telemetry.azure-log-analytics.auth.dce-endpoint https://my-dce.eastus-1.ingest.monitor.azure.com
Jalankan DAB
Mulai DAB dengan file konfigurasi Anda:
dab start
Periksa log startup DAB untuk:
Azure Log Analytics is enabled.
Cara kerjanya
Ketika Log Analytics diaktifkan, DAB:
- Mengautentikasi ke Azure menggunakan Identitas Terkelola host.
- Mengelompokkan entri log berdasarkan
flush-interval-seconds. - Mengirim log ke Titik Akhir Pengumpulan Data (DCE).
- DCE mengarahkan log melalui Aturan Pengumpulan Data (DCR) untuk diproses.
- DCR menyerap log ke dalam tabel Analitik Log kustom Anda.
Aliran Data
DAB Application
↓
ILogger (ASP.NET Core)
↓
Log Analytics Logger Provider
↓
Managed Identity Authentication
↓
Data Collection Endpoint (DCE)
↓
Data Collection Rule (DCR)
↓
Log Analytics Workspace (Custom Table)
Apa yang akan ditangkap
| Jenis telemetri | Sumber | Examples |
|---|---|---|
| Tanda-tanda |
ILogger panggilan di DAB |
Log pengaktifan, log eksekusi kueri, peringatan |
| Errors | Penanganan situasi pengecualian | Kesalahan runtime, kesalahan konfigurasi, kesalahan database |
| Info komponen | Bagian Dalam DAB | Modul mana yang menghasilkan log |
| Instans ID | Konfigurasi |
dab-identifier nilai untuk pemfilteran |
Struktur log
Setiap entri log yang dikirim ke Analitik Log berisi bidang-bidang ini:
| Bidang | Tipe | Description | Example |
|---|---|---|---|
Time |
tanggalwaktu | Tanda waktu (ISO 8601) | 2026-01-27T14:30:00Z |
LogLevel |
string | Tingkat keparahan log |
Information
Warning
Error
|
Message |
string | Pesan log | Request completed successfully |
Component |
string | Komponen DAB yang menghasilkan log | Azure.DataApiBuilder.Service.Startup |
Identifier |
string | Nilai dari konfigurasi dab-identifier |
my-dab-instance |
Nota
Kolom tabel khusus di Log Analytics menambahkan akhiran: _s untuk string, _d untuk double, _t untuk tanggal dan waktu, dll.
Kueri log di Analisis Log
Buka ruang kerja Analitik Log Anda di portal Microsoft Azure.
Navigasi ke Log dan jalankan kueri KQL:
DabLogs_CL | where Identifier_s == "my-dab-instance" | where LogLevel_s in ("Warning", "Error") | where TimeGenerated > ago(1h) | project TimeGenerated, LogLevel_s, Message_s, Component_s | order by TimeGenerated desc
Contoh pertanyaan
Hitung log menurut tingkat:
DabLogs_CL
| where TimeGenerated > ago(24h)
| summarize Count=count() by LogLevel_s
Temukan kesalahan dalam komponen tertentu:
DabLogs_CL
| where Component_s contains "SqlQueryExecutor"
| where LogLevel_s == "Error"
| project TimeGenerated, Message_s
Pertimbangan performa dan biaya
Perilaku pengelompokan
DAB mengelompokkan log-log dan mengirimkannya secara berkala setiap flush-interval-seconds
- 5 detik (default): Keseimbangan yang baik untuk sebagian besar skenario.
- 1-2 detik: Pengelogan hampir waktu nyata (lebih banyak panggilan API, biaya lebih tinggi).
- 10-60 detik: Mengurangi panggilan API tetapi log tertunda.
Pengoptimalan biaya
Harga untuk Analitik Log didasarkan pada:
- Penyerapan data: Per GB yang diserap.
- Retensi data: Per GB per bulan setelah tingkat gratis.
Kurangi biaya:
- Tingkatkan
flush-interval-secondsuntuk membundel lebih banyak log. - Gunakan filter tingkat log untuk mengecualikan log verbose. Untuk informasi selengkapnya, lihat Menyesuaikan verbositas log.
- Atur retensi data yang sesuai di ruang kerja Analitik Log Anda.
Contoh: Filter untuk mengurangi volume
{
"runtime": {
"telemetry": {
"log-level": {
"Default": "Warning",
"Microsoft": "Error"
},
"azure-log-analytics": {
"enabled": true,
"flush-interval-seconds": 30,
"auth": {
"custom-table-name": "DabLogs_CL",
"dcr-immutable-id": "dcr-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"dce-endpoint": "https://my-dce.eastus-1.ingest.monitor.azure.com"
}
}
}
}
}
Ini hanya mengirim log Peringatan dan Kesalahan , yang secara signifikan mengurangi volume.
Retensi data
Retensi data Log Analytics dapat dikonfigurasi per ruang kerja:
| Tier | Retensi default | Retensi maksimum |
|---|---|---|
| Tingkatan gratis | 7 hari | 7 hari |
| Pay-as-you-go | 30 hari | 730 hari (2 tahun) |
Mengonfigurasi retensi: Ruang kerja Analitik Log → Penggunaan dan perkiraan biaya → Retensi Data.
Petunjuk / Saran
Untuk persyaratan kepatuhan, pertimbangkan untuk mengarsipkan log lama ke Azure Storage untuk retensi jangka panjang.
Troubleshooting
Log tidak muncul di Analitik Log
Gejala: DAB berhasil dimulai tetapi tidak ada log yang muncul di ruang kerja Analitik Log Anda.
Kemungkinan penyebabnya:
Konfigurasi yang tidak lengkap: Periksa log startup DAB untuk kesalahan seperti
Logs won't be sent to Azure Log Analytics because the Custom Table Name is not available in the config file.Verifikasi semua properti autentikasi yang diperlukan:custom-table-name, ,dcr-immutable-iddce-endpoint.Identitas Terkelola tidak ditetapkan: Verifikasi Identitas Terkelola diaktifkan dengan
az webapp identity show --name my-app --resource-group my-rg. Periksa penetapan peran denganaz role assignment list --assignee <principal-id> --scope <dcr-id>.Titik akhir DCE atau ID DCR yang salah: Verifikasi format titik akhir DCE adalah
https://<dce-name>.<region>-1.ingest.monitor.azure.com. Verifikasi ID DCR yang tidak dapat diubah dimulai dengandcr-.Tabel kustom tidak ada: Tabel kustom harus diakhir dengan
_CL. Skema tabel harus cocok dengan struktur log.
Kesalahan: Interval flush harus positif
Penyebab: flush-interval-seconds diatur ke 0 atau nilai negatif.
Solusi: Atur flush-interval-seconds ke bilangan bulat positif (minimum 1).
Log DAB menunjukkan "Azure Log Analytics dinonaktifkan"
Penyebab: enabled adalah false atau hilang dari konfigurasi.
Solusi: Atur enabled: true dalam konfigurasi Anda.
Analitik Log vs. Application Insights
| Capability | Application Insights | Log Analytics |
|---|---|---|
| Fokus | Pemantauan performa aplikasi (APM) | Agregasi log terpusat |
| Bahasa Pemrograman Kueri | KQL | KQL |
| Ruang lingkup | Aplikasi tunggal | Aplikasi, VM, kontainer, sumber daya Azure |
| Skenario penggunaan | Performa, pengecualian, pelacakan | Kepatuhan, tata kelola, korelasi lintas sumber daya |
| Authentication | Rangkaian koneksi | Identitas Terkelola (melalui DCR/DCE) |
Gunakan Application Insights saat Anda memerlukan fitur APM seperti pelacakan permintaan, pemetaan dependensi, dan pembuatan profil performa. Gunakan Analitik Log saat Anda memerlukan pengelogan terpusat di beberapa sumber daya dengan persyaratan kepatuhan perusahaan.