Quick Start : Activation de vos instances Amazon EC2 exécutant Windows Server 2016 pour envoyer les journaux à CloudWatch Logs à l'aide de l'agent CloudWatch Logs - Amazon CloudWatch Logs

Quick Start : Activation de vos instances Amazon EC2 exécutant Windows Server 2016 pour envoyer les journaux à CloudWatch Logs à l'aide de l'agent CloudWatch Logs

Astuce

CloudWatch inclut un nouvel agent unifié qui peut collecter à la fois les journaux et les métriques des instances EC2 et des serveurs sur site. Nous vous recommandons d'utiliser le nouvel agent CloudWatch unifié. Pour plus d'informations, consultez Mise en route avec CloudWatch Logs.

Le reste de cette section explique l'utilisation de l'ancien agent CloudWatch Logs.

Activez vos instances Amazon EC2 exécutant Windows Server 2016 pour envoyer les journaux à CloudWatch Logs en utilisant l'ancien agent CloudWatch Logs

Il existe plusieurs méthodes pour activer les instances exécutant Windows Server 2016 et envoyer les journaux à CloudWatch Logs. Les étapes de cette section utilisent la fonctionnalité Run Command de Systems Manager. Pour plus d'informations sur les autres méthodes possibles, consultez Envoi de journaux, d'événements et de compteurs de performances à Amazon CloudWatch.

Téléchargement de l'exemple de fichier de configuration

Téléchargez le fichier d'exemple suivant sur votre ordinateur : AWS.EC2.Windows.CloudWatch.json.

Configuration du fichier JSON pour CloudWatch

Vous déterminez les journaux à envoyer à CloudWatch en indiquant vos choix dans un fichier de configuration. Le processus de création de ce fichier et la spécification des options peuvent prendre 30 minutes ou plus. Après avoir effectué cette tâche une fois, vous pouvez réutiliser le fichier de configuration sur toutes vos instances.

Étape 1 : Activer CloudWatch Logs

Dans la partie supérieure du fichier JSON, remplacez « false » par « true » pour IsEnabled :

"IsEnabled": true,

Étape 2 : Configurer les paramètres pour CloudWatch

Indiquez les informations d'identification, la région, le nom du groupe de journaux et l'espace de noms du flux de journaux. Cela permet à l'instance d'envoyer les données des journaux à CloudWatch Logs. Pour envoyer les mêmes données de journaux à différents emplacements, vous pouvez ajouter des sections supplémentaires avec des ID uniques (par exemple, « CloudWatchLogs2 » et « CloudWatchLogs3 ») et une région différente pour chaque ID.

Pour configurer les paramètres et envoyer les données des journaux à CloudWatch Logs

  1. Dans le fichier JSON, localisez la section CloudWatchLogs.

    { "Id": "CloudWatchLogs", "FullName": "AWS.EC2.Windows.CloudWatch.CloudWatchLogsOutput,AWS.EC2.Windows.CloudWatch", "Parameters": { "AccessKey": "", "SecretKey": "", "Region": "us-east-1", "LogGroup": "Default-Log-Group", "LogStream": "{instance_id}" } },
  2. Laissez les champs AccessKey et SecretKey vides. Vous configurez les informations d'identification à l'aide d'un rôle IAM.

  3. Pour Region, saisissez la région vers laquelle envoyer les données des journaux (par exemple, us-east-2).

  4. Pour LogGroup, saisissez le nom de votre groupe de journaux. Ce nom s'affiche sur l'écran Groupes de journaux dans la console CloudWatch.

  5. Pour LogStream, saisissez le flux de journal de destination. Ce nom s'affiche sur l'écran Groupes de journaux > Flux dans la console CloudWatch.

    Si vous utilisez {instance_id}, la valeur par défaut, le nom de flux de journal est l'ID de l'instance.

    Si vous saisissez un nom de flux de journal qui n'existe pas déjà, CloudWatch Logs le crée automatiquement. Vous pouvez définir un nom de flux de journal à l'aide d'une chaîne littérale, des variables prédéfinies {instance_id}, {hostname} et {ip_address}, ou d'une combinaison de celles-ci.

Étape 3 : Configurer les données à envoyer

Vous pouvez envoyer des données de journaux d'événements, des données de suivi des événements pour Windows (ETW) et d'autres données de journaux à CloudWatch Logs.

Pour envoyer les données de journal des événements d'application Windows à CloudWatch Logs

  1. Dans le fichier JSON, localisez la section ApplicationEventLog.

    { "Id": "ApplicationEventLog", "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogName": "Application", "Levels": "1" } },
  2. Pour Levels, spécifiez le type de messages à charger. Vous pouvez spécifier l'une des valeurs suivantes :

    • 1 - Chargez uniquement les messages d'erreur.

    • 2 - Chargez uniquement les messages d'avertissement.

    • 4 - Chargez uniquement les messages d'information.

    Vous pouvez associer des valeurs pour inclure plusieurs types de message. Par exemple, la valeur 3 charge les messages d'erreur (1) et les messages d'avertissement (2). La valeur 7 charge les messages d'erreur (1), les messages d'avertissement (2) et les messages d'information (4).

Pour envoyer les données de journal de sécurité à CloudWatch Logs

  1. Dans le fichier JSON, localisez la section SecurityEventLog.

    { "Id": "SecurityEventLog", "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogName": "Security", "Levels": "7" } },
  2. Pour Levels, saisissez 7 pour charger tous les messages.

Pour envoyer les données de journal des événements système à CloudWatch Logs

  1. Dans le fichier JSON, localisez la section SystemEventLog.

    { "Id": "SystemEventLog", "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogName": "System", "Levels": "7" } },
  2. Pour Levels, spécifiez le type de messages à charger. Vous pouvez spécifier l'une des valeurs suivantes :

    • 1 - Chargez uniquement les messages d'erreur.

    • 2 - Chargez uniquement les messages d'avertissement.

    • 4 - Chargez uniquement les messages d'information.

    Vous pouvez associer des valeurs pour inclure plusieurs types de message. Par exemple, la valeur 3 charge les messages d'erreur (1) et les messages d'avertissement (2). La valeur 7 charge les messages d'erreur (1), les messages d'avertissement (2) et les messages d'information (4).

Pour envoyer les autres types de données de journal des événements à CloudWatch Logs

  1. Dans le fichier JSON, ajoutez une nouvelle section. Chaque section doit avoir un Id unique.

    { "Id": "Id-name", "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogName": "Log-name", "Levels": "7" } },
  2. Pour Id, tapez un nom pour le journal à charger (par exemple, WindowsBackup).

  3. Pour LogName, saisissez le nom du journal à charger. Vous pouvez trouver le nom du journal comme suit.

    1. Ouvrez l'Observateur d'événements

    2. Dans le panneau de navigation, cliquez sur Journaux d'applications et de services.

    3. Naviguez jusqu'au journal, puis choisissez Actions, Propriétés.

  4. Pour Levels, spécifiez le type de messages à charger. Vous pouvez spécifier l'une des valeurs suivantes :

    • 1 - Chargez uniquement les messages d'erreur.

    • 2 - Chargez uniquement les messages d'avertissement.

    • 4 - Chargez uniquement les messages d'information.

    Vous pouvez associer des valeurs pour inclure plusieurs types de message. Par exemple, la valeur 3 charge les messages d'erreur (1) et les messages d'avertissement (2). La valeur 7 charge les messages d'erreur (1), les messages d'avertissement (2) et les messages d'information (4).

Pour envoyer les données de suivi d'événements de Windows à CloudWatch Logs

ETW (Event Tracing for Windows, suivi d'événements pour Windows) fournit un mécanisme de journalisation efficace et détaillé dans lequel les applications peuvent consigner des journaux. Chaque ETW est contrôlé par un gestionnaire de session qui peut démarrer et arrêter la session de journalisation. Chaque session a un fournisseur et un ou plusieurs utilisateurs.

  1. Dans le fichier JSON, localisez la section ETW.

    { "Id": "ETW", "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogName": "Microsoft-Windows-WinINet/Analytic", "Levels": "7" } },
  2. Pour LogName, saisissez le nom du journal à charger.

  3. Pour Levels, spécifiez le type de messages à charger. Vous pouvez spécifier l'une des valeurs suivantes :

    • 1 - Chargez uniquement les messages d'erreur.

    • 2 - Chargez uniquement les messages d'avertissement.

    • 4 - Chargez uniquement les messages d'information.

    Vous pouvez associer des valeurs pour inclure plusieurs types de message. Par exemple, la valeur 3 charge les messages d'erreur (1) et les messages d'avertissement (2). La valeur 7 charge les messages d'erreur (1), les messages d'avertissement (2) et les messages d'information (4).

Pour envoyer les journaux personnalisés (tout fichier journal texte) à CloudWatch Logs

  1. Dans le fichier JSON, localisez la section CustomLogs.

    { "Id": "CustomLogs", "FullName": "AWS.EC2.Windows.CloudWatch.CustomLog.CustomLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogDirectoryPath": "C:\\CustomLogs\\", "TimestampFormat": "MM/dd/yyyy HH:mm:ss", "Encoding": "UTF-8", "Filter": "", "CultureName": "en-US", "TimeZoneKind": "Local", "LineCount": "5" } },
  2. Pour LogDirectoryPath, saisissez le chemin d'accès où les journaux sont stockés sur votre instance.

  3. Pour TimestampFormat, saisissez le format d'horodatage que vous voulez utiliser. Pour plus d'informations sur les valeurs prises en charge, consultez la rubrique Chaînes de format de date et d'heure personnalisées sur MSDN.

    Important

    Votre fichier journal source doit avoir l'horodatage au début de chaque ligne de journal et un espace après l'horodatage.

  4. Pour Encoding, tapez l'encodage de fichier à utiliser (par exemple, UTF-8). Pour obtenir une liste des valeurs prises en charge, consultez la rubrique Classe d'encodage sur MSDN.

    Note

    Utilisez le nom d'encodage, pas le nom complet.

  5. (Facultatif) Pour Filter, tapez le préfixe des noms de journaux. Laissez ce paramètre vide de façon à surveiller tous les fichiers. Pour plus d'informations sur les valeurs prises en charge, consultez la rubrique Propriété FileSystemWatcherFilter sur MSDN.

  6. (Facultatif) Pour CultureName, saisissez les paramètres régionaux où l'horodatage est consigné. Si CultureName est vide, il prend par défaut les mêmes paramètres régionaux que ceux actuellement utilisés par votre instance de Windows. Pour plus d'informations, consultez la colonne Language tag du tableau de la rubrique Product Behavior sur MSDN.

    Note

    Les valeurs div, div-MV, hu et hu-HU ne sont pas prises en charge.

  7. (Facultatif) Pour TimeZoneKind, tapez Local ou UTC. Vous pouvez définir ce paramètre pour fournir des informations de fuseau horaire si aucune n'est comprise dans l'horodatage de vos journaux. Si ce paramètre est laissé vide et si votre horodatage n'inclut pas les informations de fuseau horaire, CloudWatch Logs utilise le fuseau horaire local par défaut. Ce paramètre est ignoré si votre horodatage contient déjà des informations de fuseau horaire.

  8. (Facultatif) Pour LineCount, saisissez le nombre de lignes dans l'en-tête pour identifier le fichier journal. Par exemple, les fichiers journaux IIS ont des en-têtes presque identiques. Vous pouvez entrer 5, qui lit les trois premières lignes de l'en-tête du fichier journal pour l'identifier. Dans les fichiers journaux IIS, la troisième ligne contient la date et l'horodatage, mais l'horodatage n'est pas toujours différent d'un fichier journal à l'autre. Pour cette raison, nous recommandons d'inclure au moins une ligne de données de journaux réelles pour affecter une empreinte unique au fichier journal.

Pour envoyer les données de journal de IIS à CloudWatch Logs

  1. Dans le fichier JSON, localisez la section IISLog.

    { "Id": "IISLogs", "FullName": "AWS.EC2.Windows.CloudWatch.CustomLog.CustomLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogDirectoryPath": "C:\\inetpub\\logs\\LogFiles\\W3SVC1", "TimestampFormat": "yyyy-MM-dd HH:mm:ss", "Encoding": "UTF-8", "Filter": "", "CultureName": "en-US", "TimeZoneKind": "UTC", "LineCount": "5" } },
  2. Pour LogDirectoryPath, saisissez le dossier où les journaux IIS sont stockés pour un site individuel (par exemple, C:\inetpub\logs\LogFiles\W3SVCn).

    Note

    Seul le format de journal W3C est pris en charge. Les formats IIS, NCSA et Personnalisé ne sont pas pris en charge.

  3. Pour TimestampFormat, saisissez le format d'horodatage que vous voulez utiliser. Pour plus d'informations sur les valeurs prises en charge, consultez la rubrique Chaînes de format de date et d'heure personnalisées sur MSDN.

  4. Pour Encoding, tapez l'encodage de fichier à utiliser (par exemple, UTF-8). Pour plus d'informations sur les valeurs prises en charge, consultez la rubrique Classe d'encodage sur MSDN.

    Note

    Utilisez le nom d'encodage, pas le nom complet.

  5. (Facultatif) Pour Filter, tapez le préfixe des noms de journaux. Laissez ce paramètre vide de façon à surveiller tous les fichiers. Pour plus d'informations sur les valeurs prises en charge, consultez la rubrique Propriété FileSystemWatcherFilter sur MSDN.

  6. (Facultatif) Pour CultureName, saisissez les paramètres régionaux où l'horodatage est consigné. Si CultureName est vide, il prend par défaut les mêmes paramètres régionaux que ceux actuellement utilisés par votre instance de Windows. Pour plus d'informations sur les valeurs prises en charge, consultez la colonne Language tag du tableau de la rubrique Product Behavior sur MSDN.

    Note

    Les valeurs div, div-MV, hu et hu-HU ne sont pas prises en charge.

  7. (Facultatif) Pour TimeZoneKind, saisissez Local ou UTC. Vous pouvez définir ce paramètre pour fournir des informations de fuseau horaire si aucune n'est comprise dans l'horodatage de vos journaux. Si ce paramètre est laissé vide et si votre horodatage n'inclut pas les informations de fuseau horaire, CloudWatch Logs utilise le fuseau horaire local par défaut. Ce paramètre est ignoré si votre horodatage contient déjà des informations de fuseau horaire.

  8. (Facultatif) Pour LineCount, saisissez le nombre de lignes dans l'en-tête pour identifier le fichier journal. Par exemple, les fichiers journaux IIS ont des en-têtes presque identiques. Vous pouvez entrer 5, qui lirait les cinq premières lignes de l'en-tête du fichier journal pour l'identifier. Dans les fichiers journaux IIS, la troisième ligne contient la date et l'horodatage, mais l'horodatage n'est pas toujours différent d'un fichier journal à l'autre. Pour cette raison, nous recommandons d'inclure au moins une seule ligne de données de journaux réelles pour affecter une empreinte unique au fichier journal.

Étape 4 : Configurer le contrôle de flux

Chaque type de données doit avoir une destination correspondante dans la section Flows. Par exemple, pour envoyer le journal personnalisé, le journal ETW et le journal système à CloudWatch Logs, ajoutez (CustomLogs,ETW,SystemEventLog),CloudWatchLogs à la section Flows.

Avertissement

L'ajout d'une étape qui n'est pas valide bloque le flux. Par exemple, si vous ajoutez une étape de métrique de disque, mais que votre instance ne comporte pas de disque, toutes les étapes du flux sont bloquées.

Vous pouvez envoyer le même fichier journal plusieurs destinations. Par exemple, pour envoyer le journal d'application à deux destinations différentes que vous avez définies dans la section CloudWatchLogs, ajoutez ApplicationEventLog,(CloudWatchLogs,CloudWatchLogs2) à la section Flows.

Pour configurer le contrôle de flux

  1. Dans le fichier AWS.EC2.Windows.CloudWatch.json, recherchez la section Flows.

    "Flows": { "Flows": [ "PerformanceCounter,CloudWatch", "(PerformanceCounter,PerformanceCounter2), CloudWatch2", "(CustomLogs, ETW, SystemEventLog),CloudWatchLogs", "CustomLogs, CloudWatchLogs2", "ApplicationEventLog,(CloudWatchLogs, CloudWatchLogs2)" ] }
  2. Pour Flows, ajoutez chaque type de données à charger (par exemple, ApplicationEventLog) et sa destination (par exemple, CloudWatchLogs).

Étape 5 : Enregistrer le contenu JSON

Vous avez maintenant terminé de modifier le fichier JSON. Enregistrez et collez le contenu du fichier dans un éditeur de texte dans une autre fenêtre. Vous aurez besoin du contenu du fichier lors d'une étape ultérieure de cette procédure.

Création d'un utilisateur et d'un rôle IAM pour Systems Manager

Un rôle IAM pour les informations d'identification de l'instance est obligatoire lorsque vous utilisez la fonctionnalité Run Command de Systems Manager. Ce rôle permet à Systems Manager d'exécuter des actions sur l'instance. Vous pouvez éventuellement créer un compte utilisateur IAM unique pour la configuration et l'exécution de Systems Manager. Pour plus d'informations, consultez Configuration des rôles de sécurité pour Systems Manager dans le Guide de l'utilisateur AWS Systems Manager. Pour plus d'informations sur l'affectation d'un rôle IAM à une instance existante, consultez Attachement d'un rôle IAM à une instance dans le Guide de l'utilisateur Amazon EC2 pour les instances Windows.

Vérification des prérequis de Systems Manager

Avant d'utiliser la fonctionnalité Run Command de Systems Manager pour configurer l'intégration à CloudWatch Logs, vérifiez que vos instances répondent aux exigences minimales. Pour plus d'informations, consultez Prérequis de Systems Manager dans le Guide de l'utilisateur AWS Systems Manager.

Vérification de l'accès Internet

Vos instances Amazon EC2 Windows Server et vos instances gérées doivent avoir un accès Internet sortant pour envoyer des données de journal et d'événements à CloudWatch. Pour plus d'informations sur la configuration de l'accès à Internet, consultez Passerelles Internet dans le Guide de l'utilisateur Amazon VPC.

Activation de CloudWatch Logs à l'aide de la fonctionnalité Run Command de Systems Manager

La fonctionnalité Exécuter la commande vous permet de gérer la configuration de vos instances à la demande. Spécifiez un document Systems Manager, fournissez des paramètres et exécutez la commande sur une ou plusieurs instances. Le SSM Agent sur l'instance traite la commande et configure l'instance comme indiqué.

Pour configurer l'intégration à CloudWatch Logs à l'aide de la fonctionnalité Run Command

  1. Ouvrez la console Amazon EC2 à l’adresse https://console.aws.amazon.com/ec2/.

  2. Ouvrez la console SSM à l'adresse https://console.aws.amazon.com/systems-manager/.

  3. Dans le panneau de navigation, choisissez Run Command (Fonctionnalité Exécuter la commande).

  4. Choisissez Run a Command.

  5. Pour Document de commande, choisissez AWS-ConfigureCloudWatch.

  6. Pour Target instances (Instances cibles), sélectionnez les instances à intégrer à CloudWatch Logs. Si vous ne voyez pas une instance dans cette liste, c'est qu'elle n'est peut-être pas configurée pour l'exécution de la commande. Pour plus d'informations, consultez Prérequis de Systems Manager dans le Guide de l'utilisateur Amazon EC2 pour les instances Windows.

  7. Pour Statut, sélectionnez Enabled.

  8. Pour Propriétés, copiez et collez le contenu JSON que vous avez créé lors des tâches précédentes.

  9. Complétez les champs facultatifs restants et choisissez Run.

Utilisez la procédure suivante pour afficher les résultats de l'exécution d'une commande dans la console Amazon EC2.

Pour afficher la sortie de commande dans la console

  1. Sélectionnez une commande.

  2. Choisissez l'onglet Output.

  3. Choisissez View Output. La page de sortie de la commande illustre les résultats de l'exécution de votre commande.