Mengaktifkan pembuatan logging diagnostik untuk aplikasi di Azure App Service

Gambaran Umum

Azure menyediakan diagnostik bawaan untuk membantu penelusuran kesalahan aplikasi App Service. Dalam artikel ini, Anda mempelajari cara mengaktifkan pembuatan log diagnostik dan menambahkan instrumentasi ke aplikasi Anda, serta cara mengakses informasi yang di-log oleh Azure.

Artikel ini menggunakan Portal Azure dan Azure CLI untuk bekerja dengan log diagnostik. Untuk informasi tentang bekerja dengan log diagnostik menggunakan Visual Studio, lihat Pemecahan Masalah Azure di Visual Studio.

Catatan

Selain instruksi pengelogan dalam artikel ini, ada kemampuan pengelogan baru yang terintegrasi dengan Azure Monitoring. Anda akan menemukan lebih banyak tentang kemampuan ini di bagian Kirim log ke Azure Monitor.

Jenis Platform Lokasi Deskripsi
Pengelogan aplikasi Windows, Linux Sistem file App Service dan/atau blob Azure Storage Mencatat pesan yang dihasilkan oleh kode aplikasi Anda. Pesan dapat dihasilkan oleh kerangka kerja web yang Anda pilih, atau dari kode aplikasi Anda secara langsung menggunakan pola pengelogan standar bahasa Anda. Setiap pesan diberi salah satu kategori berikut: Kritis, Kesalahan, Peringatan, Info, Debug, dan Lacak. Anda dapat memilih seberapa rumit pengelogan yang Anda inginkan dengan mengatur tingkat keparahan saat Anda mengaktifkan pengelogan aplikasi.
Pengelogan server web Windows Sistem file App Service dan/atau blob Azure Storage Data permintaan HTTP mentah dalam Format file log W3C diperpanjang. Setiap pesan log menyertakan data seperti metode HTTP, URI sumber daya, IP klien, port klien, agen pengguna, kode respons, dan sebagainya.
Pesan Kesalahan Mendetail Windows Sistem file App Service Salinan halaman kesalahan .htm yang akan dikirim ke browser klien. Untuk alasan keamanan, halaman kesalahan terperinci tidak boleh dikirim ke klien dalam produksi, tetapi App Service dapat menyimpan halaman kesalahan setiap kali terjadi kesalahan aplikasi yang memiliki kode HTTP 400 atau lebih besar. Halaman ini mungkin berisi informasi yang dapat membantu menentukan mengapa server mengembalikan kode kesalahan.
Pelacakan permintaan gagal Windows Sistem file App Service Informasi terperinci tentang permintaan yang gagal, termasuk jejak komponen IIS yang digunakan untuk memproses permintaan dan waktu yang dihabiskan di setiap komponen. Ini berguna jika Anda ingin meningkatkan performa situs atau mengisolasi kesalahan HTTP tertentu. Satu folder dibuat untuk setiap permintaan yang gagal, yang berisi file log XML, dan lembar gaya XSL untuk melihat file log.
Pengelogan penyebaran Windows, Linux Sistem file App Service Log untuk saat Anda memublikasikan konten ke aplikasi. Pengelogan penyebaran terjadi secara otomatis dan tidak ada pengaturan yang dapat dikonfigurasi untuk pengelogan penyebaran. Ini membantu Anda menentukan mengapa penyebaran gagal. Misalnya, jika menggunakan skrip penyebaran kustom, Anda dapat menggunakan pengelogan penyebaran untuk menentukan mengapa skrip gagal.

Catatan

App Service menyediakan alat diagnostik interaktif khusus untuk membantu Anda memecahkan masalah aplikasi. Untuk mengetahui informasi selengkapnya, lihat Ringkasan diagnostik Azure App Service.

Selain itu, Anda dapat menggunakan layanan Azure lainnya untuk meningkatkan kemampuan pengelogan dan pemantauan aplikasi Anda, seperti Azure Monitor.

Mengaktifkan pengelogan aplikasi (Windows)

Untuk mengaktifkan pengelogan aplikasi untuk aplikasi Windows di Portal Azure, navigasikan ke aplikasi Anda dan pilih log App Service.

Pilih Aktifkan untuk Pengelogan Aplikasi (Filesystem) atau Pengelogan Aplikasi (Blob) , atau keduanya.

Opsi Filesystem adalah untuk tujuan penelusuran kesalahan sementara, dan mematikan dirinya sendiri dalam 12 jam. Opsi Blob adalah untuk pengelogan jangka panjang, dan membutuhkan kontainer penyimpanan blob untuk menulis log. Opsi Blob juga menyertakan informasi tambahan dalam pesan log, seperti ID instans komputer virtual asal dari pesan log (InstanceId), ID utas (Tid), dan stempel waktu yang lebih terperinci (EventTickCount).

Catatan

Jika akun Azure Storage Anda dijamin oleh aturan firewall, lihat Pertimbangan jaringan.

Catatan

Saat ini hanya log aplikasi .NET yang dapat ditulis ke penyimpanan blob. Log aplikasi Java, PHP, Node.js, Python hanya dapat disimpan di sistem file App Service (tanpa modifikasi kode untuk menulis log ke penyimpanan eksternal).

Selain itu, jika Anda meregenerasi kunci akses akun penyimpanan, Anda harus mengatur ulang konfigurasi pengelogan masing-masing untuk menggunakan tombol akses yang diperbarui. Untuk melakukan ini:

  1. Di tab Konfigurasi. atur fitur pengelogan masing-masing ke Nonaktif. Simpan pengaturan Anda.
  2. Aktifkan pengelogan ke blob akun penyimpanan lagi. Simpan pengaturan Anda.

Pilih Tingkat, atau tingkat detail untuk log. Tabel berikut ini memperlihatkan kategori log yang disertakan di setiap tingkatan:

Tingkat Kategori yang disertakan
Nonaktif Tidak ada
Kesalahan Kesalahan, Kritis
Peringatan Peringatan, Kesalahan, Kritis
Informasi Info, Peringatan, Kesalahan, Kritis
Verbose Jejak, Debug, Info, Peringatan, Kesalahan, Kritis (semua kategori)

Setelah selesai, pilih Simpan.

Catatan

Jika Anda menulis log ke blob, kebijakan penyimpanan tidak lagi berlaku jika Anda menghapus aplikasi tetapi menyimpan log di blob. Untuk informasi selengkapnya, lihat Biaya yang mungkin bertambah setelah penghapusan sumber daya.

Aktifkan pengelogan aplikasi (Linux/Container)

Untuk mengaktifkan pengelogan aplikasi untuk aplikasi Linux atau kontainer kustom di portal Azure, navigasikan ke aplikasi Anda dan pilih Log App Service.

Di Pengelogan aplikasi, pilih Sistem File.

Dalam Kuota (MB) , tentukan kuota disk untuk log aplikasi. Dalam Periode Retensi (Hari) , atur jumlah hari log harus disimpan.

Setelah selesai, pilih Simpan.

Aktifkan pengelogan server web

Untuk mengaktifkan pengelogan server web untuk aplikasi Windows di Portal Azure, navigasikan ke aplikasi Anda dan pilih log App Service.

Untuk pengelogan server web, pilih Penyimpanan untuk menyimpan log pada penyimpanan blob, atau Sistem File untuk menyimpan log di sistem file App Service.

Catatan

Jika akun Azure Storage Anda dijamin oleh aturan firewall, lihat Pertimbangan jaringan.

Dalam Periode Retensi (Hari) , atur jumlah hari log harus disimpan.

Catatan

Selain itu, jika Anda meregenerasi kunci akses akun penyimpanan, Anda harus mengatur ulang konfigurasi pengelogan masing-masing untuk menggunakan kunci yang diperbarui. Untuk melakukan ini:

  1. Di tab Konfigurasi. atur fitur pengelogan masing-masing ke Nonaktif. Simpan pengaturan Anda.
  2. Aktifkan pengelogan ke blob akun penyimpanan lagi. Simpan pengaturan Anda.

Setelah selesai, pilih Simpan.

Catatan

Jika Anda menulis log ke blob, kebijakan penyimpanan tidak lagi berlaku jika Anda menghapus aplikasi tetapi menyimpan log di blob. Untuk informasi selengkapnya, lihat Biaya yang mungkin bertambah setelah penghapusan sumber daya.

Kesalahan mendetail log

Untuk menyimpan halaman kesalahan atau pelacakan permintaan gagal untuk aplikasi Windows di Portal Azure, navigasikan ke aplikasi Anda dan pilih log App Service.

Di bawah Pengelogan Kesalahan Mendetail atau Pelacakan Permintaan Gagal, pilih Aktifkan, lalu pilih Simpan.

Kedua jenis log disimpan dalam sistem file App Service. Hingga 50 kesalahan (file/folder) disimpan. Ketika jumlah file HTML melebihi 50, kesalahan paling lama akan dihapus secara otomatis.

Fitur Penelusuran Permintaan Gagal secara default menangkap log permintaan yang gagal dengan kode status HTTP antara 400 dan 600. Untuk menentukan aturan kustom, Anda dapat mengambil alih bagian <traceFailedRequests> di file web.config.

Menambahkan pesan log dalam kode

Dalam kode aplikasi, Anda menggunakan fasilitas pengelogan biasa untuk mengirim pesan log ke log aplikasi. Contohnya:

Log aliran

Sebelum Anda mengalirkan log secara real time, aktifkan jenis log yang Anda inginkan. Setiap informasi yang ditulis ke file yang berakhiran .txt, .log, atau .htm yang disimpan dalam direktori /LogFiles (d:/home/logfiles) dialirkan oleh App Service.

Catatan

Beberapa jenis buffer pengelogan menulis ke file log, yang dapat mengakibatkan peristiwa yang tidak berurutan dalam aliran. Misalnya, entri log aplikasi yang terjadi saat pengguna mengunjungi halaman mungkin ditampilkan di aliran sebelum entri log HTTP yang sesuai untuk permintaan halaman.

Di Portal Azure

Untuk mengalirkan log di Portal Azure, navigasikan ke aplikasi Anda dan pilih Aliran log.

Di Cloud Shell

Untuk mengalirkan log langsung di Cloud Shell, gunakan perintah berikut:

Penting

Perintah ini mungkin tidak berfungsi dengan aplikasi web yang dihosting dalam paket layanan aplikasi Linux.

az webapp log tail --name appname --resource-group myResourceGroup

Untuk memfilter tipe log tertentu, seperti HTTP, gunakan parameter --Provider. Contohnya:

az webapp log tail --name appname --resource-group myResourceGroup --provider http

Di terminal lokal

Untuk mengalirkan log di konsol lokal, pasang Azure CLI dan masuk ke akun Anda. Setelah masuk, instruksi untuk Cloud Shell

Mengakses file log

Jika Anda mengonfigurasi opsi blob Azure Storage untuk jenis log, Anda memerlukan alat klien yang berfungsi dengan Azure Storage. Untuk informasi lebih lanjut, lihat Alat Klien Azure Storage.

Untuk log yang disimpan dalam sistem file App Service, cara termudah adalah mengunduh file ZIP di browser di:

  • Linux/kontainer kustom: https://<app-name>.scm.azurewebsites.net/api/logs/docker/zip
  • Aplikasi Windows: https://<app-name>.scm.azurewebsites.net/api/dump

Untuk Linux/kontainer kustom, file ZIP berisi log output konsol untuk host docker dan kontainer docker. Untuk aplikasi peluasan skala, file ZIP berisi satu set log untuk setiap instans. Dalam sistem file App Service, file log ini adalah konten direktori /home/LogFiles.

Untuk aplikasi Windows, file ZIP berisi konten direktori D:\Home\LogFiles dalam sistem file App Service. Ini memiliki struktur berikut:

Jenis log Direktori Deskripsi
Log aplikasi /LogFiles/Application/ Berisi satu atau beberapa file teks. Format pesan log tergantung pada penyedia pengelogan yang Anda gunakan.
Pelacakan Permintaan Gagal /LogFiles/W3SVC#########/ Berisi file XML, dan file XSL. Anda bisa menampilkan file XML yang diformat di browser.
Log Kesalahan Terperinc /LogFiles/DetailedErrors/ Berisi file kesalahan HTM. Anda dapat melihat file HTM di browser.
Cara lain untuk melihat pelacakan permintaan gagal adalah dengan menavigasi ke halaman aplikasi Anda di portal. Dari menu sebelah kiri, pilih Diagnosa dan selesaikan masalah, lalu cari Log Pencarian Permintaan Gagal, lalu klik ikon untuk menelusuri dan melihat pelacakan yang Anda inginkan.
Log server web /LogFiles/http/RawLogs/ Berisi file teks yang diformat menggunakan format file log diperluas W3C. Informasi ini dapat dibaca menggunakan editor teks atau utilitas seperti Parser Log.
App Service tidak mendukung bidang s-computername, s-ip, atau cs-version.
Log penyebaran /LogFiles/Git/ dan /deployments/ Berisi log yang dihasilkan oleh proses penyebaran internal, serta log untuk penyebaran Git.

Mengirim log ke Azure Monitor

Dengan integrasi Azure Monitor baru, Anda dapat membuat Pengaturan Diagnostik untuk mengirim log ke Akun Penyimpanan, Pusat Aktivitas, dan Analitik Log.

Pengaturan Diagnostik

Jenis log yang didukung

Tabel berikut ini memperlihatkan jenis dan deskripsi log yang didukung:

Jenis log Windows Kontainer Windows Linux Kontainer Linux Deskripsi
AppServiceConsoleLogs Java SE & Tomcat Ya Ya Ya Output standar dan kesalahan standar
AppServiceHTTPLogs Ya Ya Ya Ya Log server web
AppServiceEnvironmentPlatformLogs Ya T/A Ya Ya App Service Environment: penskalaan, perubahan konfigurasi, dan log status
AppServiceAuditLogs Ya Ya Ya Ya Aktivitas masuk melalui FTP dan Kudu
AppServiceFileAuditLogs Ya Ya TBA TBA Perubahan file yang dilakukan pada konten situs; hanya tersedia untuk tingkat Premium ke atas
AppServiceAppLogs ASP.NET, .NET Core, & Tomcat 1 ASP.NET & Tomcat 1 .NET Core, Java, SE & Tomcat Blessed Images 2 Java SE & Tomcat Blessed Images 2 Log aplikasi
AppServiceIPSecAuditLogs Ya Ya Ya Ya Permintaan dari Aturan IP
AppServicePlatformLogs TBA Ya Ya Ya Log operasi kontainer
AppServiceAntivirusScanAuditLogs 3 Ya Ya Ya Ya Log pemindaian anti-virus menggunakan Pertahanan Microsoft untuk Cloud; hanya tersedia untuk tingkat Premium

1 Untuk aplikasi Tomcat, tambahkan TOMCAT_USE_STARTUP_BAT ke pengaturan aplikasi dan atur ke false atau 0. Harus menggunakan versi Tomcat terbaru dan menggunakan java.util.logging.

2 Untuk aplikasi Java SE, tambahkan WEBSITE_AZMON_PREVIEW_ENABLED ke pengaturan aplikasi dan atur ke true atau 1.

3 Jenis log AppServiceAntivirusScanAuditLogs saat ini masih dalam Pratinjau

Pertimbangan jaringan

Jika Anda mengamankan akun Azure Storage dengan hanya mengizinkan jaringan yang dipilih, akun dapat menerima log dari App Service hanya jika kedua hal berikut ini benar:

Langkah berikutnya