Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Konfigurasikan logging untuk aplikasi.NET di Amazon CloudWatch Logs dengan menggunakan NLog
Bibhuti Sahu dan Rob Hill (AWS), Amazon Web Services
Ringkasan
Pola ini menjelaskan cara menggunakan framework logging NLog open-source untuk mencatat penggunaan dan peristiwa aplikasi.NET di Amazon CloudWatch Logs. Di CloudWatch konsol, Anda dapat melihat pesan log aplikasi dalam waktu dekat. Anda juga dapat mengatur metrik dan mengonfigurasi alarm untuk memberi tahu Anda jika ambang batas metrik terlampaui. Menggunakan CloudWatch Application Insights, Anda dapat melihat dasbor otomatis atau kustom yang menunjukkan potensi masalah untuk aplikasi yang dipantau. CloudWatch Application Insights dirancang untuk membantu Anda dengan cepat mengisolasi masalah yang sedang berlangsung dengan aplikasi dan infrastruktur Anda.
Untuk menulis pesan CloudWatch log ke Log, Anda menambahkan AWS.Logger.NLog NuGet paket ke proyek.NET. Kemudian, Anda memperbarui NLog.config file untuk menggunakan CloudWatch Log sebagai target.
Prasyarat dan batasan
Prasyarat
Akun AWS yang aktif.
Aplikasi web atau konsol .NET yang:
Menggunakan versi .NET Framework atau .NET Core yang didukung. Untuk informasi selengkapnya, lihat Versi produk.
Menggunakan NLog untuk mengirim data log ke Application Insights.
Izin untuk membuat peran IAM untuk layanan AWS. Untuk informasi selengkapnya, lihat Izin peran layanan.
Izin untuk meneruskan peran ke layanan AWS. Untuk informasi selengkapnya, lihat Memberikan izin pengguna untuk meneruskan peran ke layanan AWS.
Versi produk
.NET Framework versi 3.5 atau yang lebih baru
.NET Core versi 1.0.1, 2.0.0, atau yang lebih baru
Arsitektur
Tumpukan teknologi target
NLog
CloudWatch Log Amazon
Arsitektur target

Aplikasi.NET menulis data log ke kerangka NLog logging.
NLog menulis data log ke CloudWatch Log.
Anda menggunakan CloudWatch alarm dan dasbor khusus untuk memantau aplikasi.NET.
Alat
Layanan AWS
Amazon CloudWatch Application Insights membantu Anda mengamati kesehatan aplikasi dan sumber daya AWS yang mendasarinya.
Amazon CloudWatch Logs membantu Anda memusatkan log dari semua sistem, aplikasi, dan layanan AWS sehingga Anda dapat memantau dan mengarsipkannya dengan aman.
AWS Identity and Access Management (IAM) membantu Anda mengelola akses ke sumber daya AWS dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.
AWS Tools for PowerShell adalah sekumpulan PowerShell modul yang membantu Anda menjalankan skrip pada sumber daya AWS Anda dari baris PowerShell perintah.
Alat-alat lainnya
Logger. NLog
adalah NLog target yang mencatat data log ke CloudWatch Log. NLog
adalah kerangka kerja logging open-source untuk platform.NET yang membantu Anda menulis data log ke target, seperti database, file log, atau konsol. PowerShell
adalah program manajemen otomatisasi dan konfigurasi Microsoft yang berjalan di Windows, Linux, dan macOS. Visual Studio
adalah lingkungan pengembangan terintegrasi (IDE) yang mencakup kompiler, alat penyelesaian kode, desainer grafis, dan fitur lain yang mendukung pengembangan perangkat lunak.
Praktik terbaik
Tetapkan kebijakan retensi untuk grup log target. Ini harus dilakukan di luar NLog konfigurasi. Secara default, data log disimpan di CloudWatch Log tanpa batas waktu.
Epik
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Buat kebijakan IAM. | Ikuti petunjuk dalam Membuat kebijakan menggunakan editor JSON dalam dokumentasi IAM. Masukkan kebijakan JSON berikut, yang memiliki izin hak istimewa paling sedikit yang diperlukan untuk memungkinkan Log membaca dan menulis CloudWatch log.
| Administrator AWS, AWS DevOps |
Buat peran IAM. | Ikuti petunjuk dalam Membuat peran untuk mendelegasikan izin ke layanan AWS dalam dokumentasi IAM. Pilih kebijakan yang Anda buat sebelumnya. Ini adalah peran yang diasumsikan CloudWatch Log untuk melakukan tindakan logging. | Administrator AWS, AWS DevOps |
Siapkan AWS Tools untuk PowerShell. |
| AWS Umum |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Instal NuGet paketnya. |
| Pengembang aplikasi |
Konfigurasikan target logging. |
Untuk contoh file konfigurasi, lihat bagian Informasi tambahan dari pola ini. Ketika Anda menjalankan aplikasi Anda, NLog akan menulis pesan log dan mengirimkannya ke CloudWatch Log. | Pengembang aplikasi |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Validasi logging. | Ikuti petunjuk di Lihat data log yang dikirim ke CloudWatch Log dalam dokumentasi CloudWatch Log. Validasi bahwa peristiwa log sedang direkam untuk aplikasi.NET. Jika peristiwa log tidak direkam, lihat bagian Pemecahan Masalah dalam pola ini. | AWS Umum |
Pantau tumpukan aplikasi.NET. | Konfigurasikan pemantauan CloudWatch sesuai kebutuhan untuk kasus penggunaan Anda. Anda dapat menggunakan Wawasan CloudWatch Log, Wawasan CloudWatch Metrik, dan Wawasan CloudWatch Aplikasi untuk memantau beban kerja.NET Anda. Anda juga dapat mengonfigurasi alarm sehingga Anda dapat menerima peringatan, dan Anda dapat membuat dasbor khusus untuk memantau beban kerja dari satu tampilan. | AWS Umum |
Pemecahan Masalah
| Isu | Solusi |
|---|---|
Data log tidak muncul di CloudWatch Log. | Pastikan bahwa kebijakan IAM dilampirkan ke peran IAM yang diasumsikan oleh CloudWatch Log. Untuk petunjuk, lihat bagian Mengatur akses dan alat di bagian Epik. |
Sumber daya terkait
Bekerja dengan grup log dan aliran log (dokumentasi CloudWatch Log)
CloudWatch Log Amazon dan Kerangka Kerja Logging .NET
(postingan blog AWS)
Informasi tambahan
Berikut ini adalah NLog.config file sampel.
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog" /> </configSections> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" /> </startup> <nlog> <extensions> <add assembly="NLog.AWS.Logger" /> </extensions> <targets> <target name="aws" type="AWSTarget" logGroup="NLog.TestGroup" region="us-east-1" profile="demo"/> </targets> <rules> <logger name="*" minlevel="Info" writeTo="aws" /> </rules> </nlog> </configuration>