Konfigurasikan logging untuk aplikasi.NET di Amazon CloudWatch Logs dengan menggunakan NLog - AWS Prescriptive Guidance

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

Diagram arsitektur NLog penulisan data log untuk aplikasi.NET ke Amazon ClodWatch Logs.
  1. Aplikasi.NET menulis data log ke kerangka NLog logging.

  2. NLog menulis data log ke CloudWatch Log.

  3. Anda menggunakan CloudWatch alarm dan dasbor khusus untuk memantau aplikasi.NET.

Alat

Layanan AWS

Alat-alat lainnya

  • Logger. NLogadalah NLog target yang mencatat data log ke CloudWatch Log.

  • NLogadalah kerangka kerja logging open-source untuk platform.NET yang membantu Anda menulis data log ke target, seperti database, file log, atau konsol.

  • PowerShelladalah 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

Epik

TugasDeskripsiKeterampilan 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.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:GetLogEvents", "logs:PutLogEvents", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:PutRetentionPolicy" ], "Resource": [ "*" ] } ] }
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.

  1. Ikuti petunjuk untuk sistem operasi Anda di Menginstal AWS Tools untuk PowerShell.

  2. Gunakan AWS Tools untuk PowerShell cmdlet untuk menyimpan kunci akses dan kunci rahasia Anda di profil. Untuk petunjuk, lihat Mengelola Profil di AWS Tools untuk PowerShell dokumentasi.

AWS Umum
TugasDeskripsiKeterampilan yang dibutuhkan

Instal NuGet paketnya.

  1. Di Visual Studio, pilih File, lalu pilih Buka proyek atau solusi.

  2. Pilih proyek tempat Anda ingin menginstal NLog.

  3. Di Visual Studio, pilih Tools, NuGet Package Manager, Package Manager Console.

  4. Instal AWS.Logger.NLog NuGet paket dengan memasukkan perintah berikut.

    Install-Package AWS.Logger.NLog -Version 3.1.0
Pengembang aplikasi

Konfigurasikan target logging.

  1. Buka file NLog.config.

  2. Untuk targettype, masukkanAWSTarget.

  3. Untuk targetlogGroup, masukkan nama grup log yang ingin Anda gunakan. Jika grup log belum ada, grup log baru dengan nama yang disediakan akan dibuat secara otomatis.

  4. Untuk targetregion, masukkan Wilayah AWS tempat CloudWatch Log dikonfigurasi.

  5. Untuk targetprofile, masukkan nama profil yang Anda buat sebelumnya untuk disimpan untuk menyimpan kunci akses dan kunci rahasia.

  6. Simpan dan tutup file NLog.config.

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
TugasDeskripsiKeterampilan 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

IsuSolusi

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

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>