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.
Configurer la journalisation pour les applications .NET dans Amazon CloudWatch Logs à l'aide de 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 |
Services AWS : Amazon CloudWatch Logs |
Récapitulatif
Ce modèle décrit comment utiliser le framework de journalisation open source NLog pour enregistrer l'utilisation des applications .NET et les é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 définir des métriques et configurer 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 devez ajouter le AWS.Logger.NLog
NuGet package au projet .NET. Ensuite, vous mettez à jour le NLog.config
fichier pour utiliser CloudWatch Logs comme cible.
Conditions préalables et limitations
Prérequis
Un compte AWS actif.
Une application Web ou console .NET qui :
Utilise les versions de .NET Framework ou .NET Core prises en charge. Pour plus d'informations, consultez la section Versions du produit.
Utilise NLog pour envoyer les données du journal à Application Insights.
Autorisations permettant de créer un rôle IAM pour un service AWS. Pour plus d'informations, consultez la section Autorisations relatives aux rôles de service.
Autorisations permettant de transmettre un rôle à un service AWS. Pour plus d'informations, consultez la section Octroi d'autorisations à un utilisateur pour transférer un rôle à un service AWS.
Versions du produit
.NET Framework version 3.5 ou ultérieure
Versions .NET Core 1.0.1, 2.0.0 ou ultérieures
Architecture
Pile technologique cible
Nlog
Amazon CloudWatch Logs
Architecture cible
![Schéma d'architecture de NLog écrivant des données de journal pour une application .NET sur Amazon ClodWatch Logs.](images/pattern-img/0ac9c3ad-2a28-415f-afc3-7fe3494b2b63/images/daea9f2f-7242-4ed2-843e-655d843dcfdf.png)
L'application .NET écrit les données du journal dans le framework de journalisation NLog.
NLog écrit les données du journal dans CloudWatch Logs.
Vous utilisez des CloudWatch alarmes et des tableaux de bord personnalisés pour surveiller l'application .NET.
Outils
Services AWS
Amazon CloudWatch Application Insights vous aide à observer l'état de vos applications et des ressources AWS sous-jacentes.
Amazon CloudWatch Logs vous aide à centraliser les journaux de tous vos systèmes, applications et services AWS afin que vous puissiez les surveiller et les archiver en toute sécurité.
AWS Identity and Access Management (IAM) vous aide à gérer en toute sécurité l'accès à vos ressources AWS en contrôlant qui est authentifié et autorisé à les utiliser.
Les outils AWS pour PowerShell sont un ensemble de PowerShell modules qui vous aident à créer des scripts pour des opérations sur vos ressources AWS à partir de la ligne de PowerShell commande.
Autres outils
Logger.nlog est une cible NLog
qui enregistre les données du journal dans Logs. CloudWatch NLog
est un framework de journalisation open source pour les plateformes .NET qui vous permet d'écrire des données de journal sur des cibles, telles que des bases de données, des fichiers journaux ou des consoles. PowerShell
est 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
Définissez une politique de conservation pour le groupe de journaux cible. Cela doit être fait en dehors de la configuration NLog. Par défaut, les données du journal sont stockées dans les CloudWatch journaux indéfiniment.
Respectez les meilleures pratiques en matière de gestion des clés d'accès AWS.
Épopées
Tâche | Description | Compétences requises |
---|---|---|
Créez une politique IAM. | Suivez les instructions de la section Création de politiques à l'aide de l'éditeur JSON dans la documentation IAM. Entrez la politique JSON suivante, qui dispose des autorisations de moindre privilège nécessaires pour permettre à Logs de lire et d'écrire des CloudWatch journaux.
| Administrateur AWS, AWS DevOps |
Créez un rôle IAM. | Suivez les instructions de la section Création d'un rôle pour déléguer des autorisations à un service AWS dans la documentation IAM. 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. | Administrateur AWS, AWS DevOps |
Configurez les outils AWS pour PowerShell. |
| AWS général |
Tâche | Description | Compétences requises |
---|---|---|
Installez le NuGet package. |
| Développeur d'applications |
Configurez la cible de journalisation. |
Pour un exemple de fichier de configuration, consultez la section Informations supplémentaires de ce modèle. Lorsque vous exécutez votre application, NLog écrit les messages du journal et les envoie à CloudWatch Logs. | Développeur d'applications |
Tâche | Description | Compé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 l'application .NET. Si les événements du journal ne sont pas enregistrés, consultez la section Dépannage de ce modèle. | AWS général |
Surveillez la pile d'applications .NET. | 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 charge de travail .NET. 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. | AWS général |
Résolution des problèmes
Problème | Solution |
---|---|
Les données du journal n'apparaissent pas dans CloudWatch les journaux. | Assurez-vous que la politique IAM est attachée au rôle IAM assumé par CloudWatch Logs. Pour obtenir des instructions, consultez la section Configurer l'accès et les outils dans la section Epics. |
Ressources connexes
Utilisation de groupes de journaux et de flux de CloudWatch journaux (documentation sur les journaux)
Amazon CloudWatch Logs et frameworks de journalisation .NET
(article de blog AWS)
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>