Configurez la journalisation pour. NETapplications dans Amazon CloudWatch Logs en utilisant NLog - Recommandations AWS

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configurez la journalisation pour. NETapplications dans Amazon CloudWatch Logs en utilisant NLog

Créée par Bibhuti Sahu (AWS) et Rob Hill () (AWS) AWS

Environnement : Production

Technologies : gestion et gouvernance DevOps ; applications Web et mobiles

Charge de travail : Microsoft

AWSservices : Amazon CloudWatch Logs

Récapitulatif

Ce modèle décrit comment utiliser le framework de journalisation NLog open source pour la journalisation. NETutilisation des applications et événements dans Amazon CloudWatch Logs. Dans la CloudWatch console, vous pouvez consulter les messages du journal de l'application quasiment en temps réel. Vous pouvez également configurer des métriques et des alarmes pour vous avertir en cas de dépassement d'un seuil de métrique. À l'aide CloudWatch d'Application Insights, vous pouvez consulter des tableaux de bord automatisés ou personnalisés qui indiquent les problèmes potentiels liés aux applications surveillées. CloudWatch Application Insights est conçu pour vous aider à isoler rapidement les problèmes récurrents liés à vos applications et à votre infrastructure.

Pour écrire des messages de journal dans CloudWatch Logs, vous ajoutez le AWS.Logger.NLog NuGet package au. NETprojet. Ensuite, vous mettez à jour le NLog.config fichier pour utiliser CloudWatch Logs comme cible.

Conditions préalables et limitations

Prérequis

Versions du produit

  • . NETFramework version 3.5 ou ultérieure

  • . NETVersions de base 1.0.1, 2.0.0 ou ultérieures

Architecture

Pile technologique cible

  • NLog

  • Amazon CloudWatch Logs

Architecture cible

Schéma d'architecture de l'NLogécriture des données de journal pour un. NETapplication pour Amazon ClodWatch Logs.
  1. Le. NETl'application écrit les données du journal dans le framework de NLog journalisation.

  2. NLogécrit les données du journal dans CloudWatch Logs.

  3. Vous utilisez des CloudWatch alarmes et des tableaux de bord personnalisés pour surveiller le. NETdemande.

Outils

AWSservices

  • Amazon CloudWatch Application Insights vous permet d'observer l'état de santé de vos applications et des AWS ressources sous-jacentes.

  • Amazon CloudWatch Logs vous aide à centraliser les journaux de tous vos systèmes, applications et AWS services afin que vous puissiez les surveiller et les archiver en toute sécurité.

  • AWSIdentity and Access Management (IAM) vous aide à gérer en toute sécurité l'accès à vos AWS ressources en contrôlant qui est authentifié et autorisé à les utiliser.

  • AWSLes outils pour PowerShell sont un ensemble de PowerShell modules qui vous aident à scripter des opérations sur vos AWS ressources à partir de la ligne de PowerShell commande.

Autres outils

  • Bûcheron. NLogest une NLog cible qui enregistre les données du journal dans CloudWatch Logs.

  • NLogest un framework de journalisation open source pour. NETplateformes qui vous aident à écrire des données de journal sur des cibles, telles que des bases de données, des fichiers journaux ou des consoles.

  • PowerShellest un programme d'automatisation et de gestion de configuration Microsoft qui s'exécute sous Windows, Linux et macOS.

  • Visual Studio est un environnement de développement intégré (IDE) qui inclut des compilateurs, des outils de complétion de code, des concepteurs graphiques et d'autres fonctionnalités qui prennent en charge le développement de logiciels.

Bonnes pratiques

Épopées

TâcheDescriptionCompétences requises

Créez une IAM politique.

Suivez les instructions de la section Création de politiques à l'aide de l'JSONéditeur de la IAM documentation. Entrez la JSON politique suivante, qui dispose des autorisations de moindre privilège nécessaires pour permettre à Logs de lire et d'écrire des CloudWatch journaux.

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

Créez un IAM rôle.

Suivez les instructions de la section Création d'un rôle pour déléguer des autorisations à un AWS service dans la IAM documentation. Sélectionnez la politique que vous avez créée précédemment. C'est le rôle que CloudWatch Logs assume pour effectuer des actions de journalisation.

AWSadministrateur, AWS DevOps

Configurer les AWS outils pour PowerShell.

  1. Suivez les instructions correspondant à votre système d'exploitation dans la section Installation AWS des outils pour PowerShell.

  2. Utilisez les AWS outils pour PowerShell applets de commande pour stocker votre clé d'accès et votre clé secrète dans un profil. Pour obtenir des instructions, consultez la section Gestion des profils dans la section AWS Outils pour obtenir de PowerShell la documentation.

Général AWS
TâcheDescriptionCompétences requises

Installez le NuGet package.

  1. Dans Visual Studio, choisissez Fichier, puis sélectionnez Ouvrir un projet ou une solution.

  2. Choisissez le projet dans lequel vous souhaitez effectuer l'installationNLog.

  3. Dans Visual Studio, choisissez Outils, Gestionnaire de NuGet packages, Console du gestionnaire de packages.

  4. Installez le AWS.Logger.NLog NuGet package en saisissant la commande suivante.

    Install-Package AWS.Logger.NLog -Version 3.1.0
Développeur d'applications

Configurez la cible de journalisation.

  1. Ouvrez le fichier NLog.config.

  2. Pour la cibletype, entrezAWSTarget.

  3. Pour la ciblelogGroup, entrez le nom du groupe de journaux que vous souhaitez utiliser. Si le groupe de journaux n'existe pas déjà, un nouveau groupe de journaux portant le nom fourni est automatiquement créé.

  4. Pour la cibleregion, entrez la AWS région dans laquelle CloudWatch Logs est configuré.

  5. Pour la cibleprofile, entrez le nom du profil que vous avez créé précédemment pour stocker la clé d'accès et la clé secrète.

  6. Enregistrez et fermez le fichier NLog.config.

Pour un exemple de fichier de configuration, consultez la section Informations supplémentaires de ce modèle. Lorsque vous exécutez votre application, elle écrit NLog les messages du journal et les envoie à CloudWatch Logs.

Développeur d'applications
TâcheDescriptionCompétences requises

Validez la journalisation.

Suivez les instructions de la section Afficher les données de journal envoyées à CloudWatch Logs dans la documentation CloudWatch Logs. Vérifiez que les événements du journal sont enregistrés pour le. NETdemande. Si les événements du journal ne sont pas enregistrés, consultez la section Dépannage de ce modèle.

Général AWS

Surveillez le. NETpile d'applications.

Configurez la surveillance CloudWatch selon les besoins de votre cas d'utilisation. Vous pouvez utiliser CloudWatch Logs Insights, CloudWatch Metrics Insights et CloudWatch Application Insights pour surveiller votre. NETcharge de travail. Vous pouvez également configurer des alarmes afin de recevoir des alertes, et vous pouvez créer un tableau de bord personnalisé pour surveiller la charge de travail à partir d'une vue unique.

Général AWS

Résolution des problèmes

ProblèmeSolution

Les données du journal n'apparaissent pas dans CloudWatch les journaux.

Assurez-vous que la IAM politique est attachée au IAM rôle assumé par CloudWatch Logs. Pour obtenir des instructions, consultez la section Configurer l'accès et les outils dans la section Epics.

Ressources connexes

Informations supplémentaires

Voici un exemple de NLog.config fichier.

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