Konfigurieren Sie die Protokollierung für .NET-Anwendungen in Amazon CloudWatch Logs mithilfe von NLog - AWS Prescriptive Guidance

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Konfigurieren Sie die Protokollierung für .NET-Anwendungen in Amazon CloudWatch Logs mithilfe von NLog

Erstellt von Bibhuti Sahu (AWS) und Rob Hill (AWS) (AWS)

Umgebung: Produktion

Technologien: Verwaltung und Verwaltung DevOps; Web- und mobile Apps

Arbeitslast: Microsoft

AWS-Services: Amazon CloudWatch Logs

Übersicht

Dieses Muster beschreibt, wie das Open-Source-Logging-Framework NLog verwendet wird, um die Nutzung von.NET-Anwendungen und Ereignisse in Amazon CloudWatch Logs zu protokollieren. In der CloudWatch Konsole können Sie die Protokollnachrichten der Anwendung nahezu in Echtzeit einsehen. Sie können auch Messwerte einrichten und Alarme so konfigurieren, dass Sie benachrichtigt werden, wenn ein Metrik-Schwellenwert überschritten wird. Mithilfe von CloudWatch Application Insights können Sie automatisierte oder benutzerdefinierte Dashboards anzeigen, die potenzielle Probleme für die überwachten Anwendungen aufzeigen. CloudWatch Application Insights soll Ihnen helfen, laufende Probleme mit Ihren Anwendungen und Ihrer Infrastruktur schnell zu isolieren.

Um Protokollnachrichten in CloudWatch Logs zu schreiben, fügen Sie das AWS.Logger.NLog NuGet Paket dem .NET-Projekt hinzu. Anschließend aktualisieren Sie die NLog.config Datei, um CloudWatch Logs als Ziel zu verwenden.

Voraussetzungen und Einschränkungen

Voraussetzungen

  • Ein aktives AWS-Konto.

  • Eine.NET-Web- oder Konsolenanwendung, die:

    • Verwendet unterstützte.NET Framework- oder .NET Core-Versionen. Weitere Informationen finden Sie unter Produktversionen.

    • Verwendet NLog, um Protokolldaten an Application Insights zu senden.

  • Berechtigungen zum Erstellen einer IAM-Rolle für einen AWS-Service. Weitere Informationen finden Sie unter Berechtigungen für Servicerollen.

  • Berechtigungen zur Übergabe einer Rolle an einen AWS-Service. Weitere Informationen finden Sie unter Erteilen von Benutzerberechtigungen zur Übergabe einer Rolle an einen AWS-Service.

Produktversionen

  • .NET Framework Version 3.5 oder höher

  • .NET Core-Versionen 1.0.1, 2.0.0 oder höher

Architektur

Zieltechnologie-Stack

  • NLog

  • CloudWatch Amazon-Protokolle

Zielarchitektur

Architekturdiagramm von NLog, das Protokolldaten für eine .NET-Anwendung in Amazon ClodWatch Logs schreibt.
  1. Die .NET-Anwendung schreibt Protokolldaten in das NLog-Protokollierungsframework.

  2. NLog schreibt die Protokolldaten in Logs. CloudWatch

  3. Sie verwenden CloudWatch Alarme und benutzerdefinierte Dashboards, um die .NET-Anwendung zu überwachen.

Tools

AWS-Services

  • Amazon CloudWatch Application Insights hilft Ihnen dabei, den Zustand Ihrer Anwendungen und der zugrunde liegenden AWS-Ressourcen zu beobachten.

  • Amazon CloudWatch Logs hilft Ihnen dabei, die Protokolle all Ihrer Systeme, Anwendungen und AWS-Services zu zentralisieren, sodass Sie sie überwachen und sicher archivieren können.

  • Mit AWS Identity and Access Management (IAM) können Sie den Zugriff auf Ihre AWS-Ressourcen sicher verwalten, indem Sie kontrollieren, wer authentifiziert und autorisiert ist, diese zu verwenden.

  • Bei den AWS-Tools für PowerShell handelt es sich um eine Reihe von PowerShell Modulen, die Ihnen helfen, Operationen auf Ihren AWS-Ressourcen von der PowerShell Befehlszeile aus zu skripten.

Andere Tools

  • Logger.nlog ist ein NLog-Ziel, das Protokolldaten in Logs aufzeichnet. CloudWatch

  • NLog ist ein Open-Source-Logging-Framework für .NET-Plattformen, mit dem Sie Protokolldaten in Ziele wie Datenbanken, Protokolldateien oder Konsolen schreiben können.

  • PowerShellist ein Automatisierungs- und Konfigurationsverwaltungsprogramm von Microsoft, das unter Windows, Linux und macOS läuft.

  • Visual Studio ist eine integrierte Entwicklungsumgebung (IDE), die Compiler, Tools zur Codevervollständigung, Grafikdesigner und andere Funktionen zur Unterstützung der Softwareentwicklung umfasst.

Bewährte Methoden

Epen

AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie eine IAM-Richtlinie.

Folgen Sie den Anweisungen unter Richtlinien mit dem JSON-Editor erstellen in der IAM-Dokumentation. Geben Sie die folgende JSON-Richtlinie ein, die über die geringsten Rechte verfügt, die erforderlich sind, damit CloudWatch Logs Logs Logs lesen und schreiben kann.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:GetLogEvents", "logs:PutLogEvents", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:PutRetentionPolicy" ], "Resource": [ "*" ] } ] }
AWS-Administrator, AWS DevOps

Erstellen Sie eine IAM-Rolle.

Folgen Sie den Anweisungen unter Erstellen einer Rolle zum Delegieren von Berechtigungen an einen AWS-Service in der IAM-Dokumentation. Wählen Sie die Richtlinie aus, die Sie zuvor erstellt haben. Dies ist die Rolle, die CloudWatch Logs bei der Durchführung von Protokollierungsaktionen einnimmt.

AWS-Administrator, AWS DevOps

Richten Sie AWS-Tools für ein PowerShell.

  1. Folgen Sie den Anweisungen für Ihr Betriebssystem unter Installation der AWS-Tools für PowerShell.

  2. Verwenden Sie die AWS-Tools für PowerShell Cmdlets, um Ihren Zugriffsschlüssel und Ihren geheimen Schlüssel in einem Profil zu speichern. Anweisungen finden Sie in der PowerShell Dokumentation unter Profile verwalten in den AWS-Tools.

Allgemeines AWS
AufgabeBeschreibungErforderliche Fähigkeiten

Installieren Sie das NuGet Paket.

  1. Wählen Sie in Visual Studio Datei und dann Projekt oder Lösung öffnen aus.

  2. Wählen Sie das Projekt aus, in dem Sie NLog installieren möchten.

  3. Wählen Sie in Visual Studio Tools, NuGet Package Manager, Package Manager Console aus.

  4. Installieren Sie das AWS.Logger.NLog NuGet Paket, indem Sie den folgenden Befehl eingeben.

    Install-Package AWS.Logger.NLog -Version 3.1.0
App-Developer

Konfigurieren Sie das Logging-Ziel.

  1. Öffnen Sie die NLog.config Datei.

  2. Geben Sie für type das Ziel einAWSTarget.

  3. Geben Sie für logGroup das Ziel den Namen der Protokollgruppe ein, die Sie verwenden möchten. Wenn die Protokollgruppe noch nicht existiert, wird automatisch eine neue Protokollgruppe mit dem angegebenen Namen erstellt.

  4. Geben Sie für das Ziel die AWS-Region einregion, in der CloudWatch Logs konfiguriert ist.

  5. Geben Sie für das Ziel profile den Namen des Profils ein, das Sie zuvor zum Speichern des Zugriffsschlüssels und des geheimen Schlüssels erstellt haben.

  6. Speichern und schließen Sie die Datei NLog.config.

Eine Beispielkonfigurationsdatei finden Sie im Abschnitt Zusätzliche Informationen dieses Musters. Wenn Sie Ihre Anwendung ausführen, schreibt NLog die Protokollnachrichten und sendet sie an CloudWatch Logs.

App-Developer
AufgabeBeschreibungErforderliche Fähigkeiten

Überprüfen Sie die Protokollierung.

Folgen Sie den Anweisungen unter An CloudWatch Protokolle gesendete Protokolldaten anzeigen in der Dokumentation zu den CloudWatch Protokollen. Stellen Sie sicher, dass Protokollereignisse für die .NET-Anwendung aufgezeichnet werden. Wenn keine Protokollereignisse aufgezeichnet werden, finden Sie weitere Informationen im Abschnitt Problembehandlung in diesem Muster.

Allgemeines AWS

Überwachen Sie den.NET-Anwendungsstapel.

Konfigurieren Sie die Überwachung nach CloudWatch Bedarf für Ihren Anwendungsfall. Sie können CloudWatch Logs Insights, CloudWatch Metrics Insights und CloudWatch Application Insights verwenden, um Ihren .NET-Workload zu überwachen. Sie können auch Alarme so konfigurieren, dass Sie Benachrichtigungen erhalten können, und Sie können ein benutzerdefiniertes Dashboard zur Überwachung der Arbeitslast von einer einzigen Ansicht aus erstellen.

Allgemeines AWS

Fehlerbehebung

ProblemLösung

Protokolldaten werden nicht in CloudWatch Logs angezeigt.

Stellen Sie sicher, dass die IAM-Richtlinie mit der IAM-Rolle verknüpft ist, die CloudWatch Logs annimmt. Anweisungen finden Sie im Abschnitt Zugriff und Tools einrichten im Abschnitt Epics.

Zugehörige Ressourcen

Zusätzliche Informationen

Im Folgenden finden Sie eine NLog.config Beispieldatei.

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