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.](images/pattern-img/0ac9c3ad-2a28-415f-afc3-7fe3494b2b63/images/daea9f2f-7242-4ed2-843e-655d843dcfdf.png)
Die .NET-Anwendung schreibt Protokolldaten in das NLog-Protokollierungsframework.
NLog schreibt die Protokolldaten in Logs. CloudWatch
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. PowerShell
ist 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
Legen Sie eine Aufbewahrungsrichtlinie für die Zielprotokollgruppe fest. Dies muss außerhalb der NLog-Konfiguration erfolgen. Standardmäßig werden Protokolldaten auf unbestimmte Zeit in CloudWatch Logs gespeichert.
Halten Sie sich an die Best Practices für die Verwaltung von AWS-Zugriffsschlüsseln.
Epen
Aufgabe | Beschreibung | Erforderliche 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.
| 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. |
| Allgemeines AWS |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Installieren Sie das NuGet Paket. |
| App-Developer |
Konfigurieren Sie das Logging-Ziel. |
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 |
Aufgabe | Beschreibung | Erforderliche 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
Problem | Lö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
Arbeiten mit Log-Gruppen und Log-Streams (CloudWatch Logs-Dokumentation)
Amazon CloudWatch Logs und .NET Logging Frameworks
(AWS-Blogbeitrag)
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>