Déclarations de récepteurs - Amazon Kinesis Agent pour les instances Microsoft Windows

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.

Déclarations de récepteurs

Les déclarations de récepteurs spécifient la forme sous laquelle les journaux, les événements et les métriques doivent être envoyés aux divers services AWS ainsi que leur emplacement de destination. Les sections suivantes décrivent les configurations des types de récepteur intégrés qui sont disponibles dans Amazon Kinesis Agent pour Microsoft Windows. Étant donné que Kinesis Agent pour Windows est extensible, vous pouvez ajouter des types de récepteurs personnalisés. Chaque type de récepteur nécessite généralement des paires clé-valeur uniques dans les déclarations de configuration qui sont pertinentes pour ce type de récepteur.

Toutes les déclarations de récepteurs peuvent contenir les paires clé-valeur suivantes :

Id

Chaîne unique qui identifie un récepteur spécifique au sein du fichier de configuration (obligatoire).

SinkType

Nom du type de ce récepteur (obligatoire). Le type de récepteur spécifie la destination des données de journal, d'événement ou de métrique qui sont diffusées par ce récepteur.

AccessKey

Spécifie la clé d'accès AWS à utiliser pour autoriser l'accès au service AWS associé au type de récepteur. La paire clé-valeur est facultative. Pour plus d'informations, consultez Configuration de la sécurité des récepteurs.

SecretKey

Spécifie la clé secrète AWS à utiliser pour autoriser l'accès au service AWS associé au type de récepteur. La paire clé-valeur est facultative. Pour plus d'informations, consultez Configuration de la sécurité des récepteurs.

Region

Spécifie la région AWS qui contient les ressources de destination pour le streaming. La paire clé-valeur est facultative.

ProfileName

Spécifie le profil AWS à utiliser pour l'authentification. Cette paire clé-valeur est facultative, mais si elle est spécifiée, elle remplace toute clé d'accès ou clé secrète spécifiée. Pour plus d'informations, consultez Configuration de la sécurité des récepteurs.

RoleARN

Spécifie le rôle IAM à utiliser pour accéder au service AWS associé au type de récepteur. Cette option est utile lorsque Kinesis Agent pour Windows s'exécute sur une instance EC2, mais qu'un rôle différent serait plus approprié que le rôle référencé par le profil d'instance. Par exemple, il est possible d'utiliser un rôle entre comptes pour cibler les ressources qui ne sont pas dans le même compte AWS que l'instance EC2. La paire clé-valeur est facultative.

Format

Spécifie le type de sérialisation qui est appliqué aux données de journaux et d'événements avant leur diffusion. Les valeurs valides sont json et xml. Cette option est utile lorsque les analyses en aval dans le pipeline de données nécessitent des données sous un format particulier ou réagissent mieux à un type de format particulier. Cette paire clé-valeur est facultative et, si elle n'est pas spécifiée, le texte ordinaire provenant de la source est diffusé du récepteur vers le service AWS associé à ce type de récepteur.

TextDecoration

Lorsqu'aucun élément Format n'est spécifié, TextDecoration spécifie le texte supplémentaire à inclure lors de la diffusion des enregistrements de journaux ou d'événements. Pour plus d'informations, consultez Configuration des décorations de récepteurs. La paire clé-valeur est facultative.

ObjectDecoration

Lorsque l'élément Format est spécifié, ObjectDecoration spécifie les données supplémentaires à inclure dans l'enregistrement de journal ou d'événement avant la sérialisation ou la diffusion. Pour plus d'informations, consultez Configuration des décorations de récepteurs. La paire clé-valeur est facultative.

BufferInterval

Afin de réduire les appels d'API au service AWS associé au type de récepteur, Kinesis Agent pour Windows place en mémoire tampon plusieurs enregistrements de journaux, d'événements ou de métriques avant la diffusion. Cela permet d'économiser de l'argent pour les services qui sont facturés en fonction du nombre d'appels d'API. BufferInterval spécifie la durée maximale (en secondes) du placement des enregistrements en mémoire tampon avant leur diffusion vers le service AWS. Cette paire clé-valeur est facultative et, si elle est spécifiée, vous devez utiliser une chaîne pour représenter la valeur.

BufferSize

Afin de réduire les appels d'API au service AWS associé au type de récepteur, Kinesis Agent pour Windows place en mémoire tampon plusieurs enregistrements de journaux, d'événements ou de métriques avant la diffusion. Cela permet d'économiser de l'argent pour les services qui sont facturés en fonction du nombre d'appels d'API. BufferSize spécifie le nombre maximal d'enregistrements à placer en mémoire tampon avant leur diffusion vers le service AWS. Cette paire clé-valeur est facultative et, si elle est spécifiée, vous devez utiliser une chaîne pour représenter la valeur.

MaxAttempts

Spécifie le nombre maximum de tentatives de Kinesis Agent pour Windows pour tente de diffuser un ensemble de journaux, d'événements et de métriques vers un service AWS par si le streaming échoue systématiquement. La paire clé-valeur est facultative. Si cet élément est spécifié, utilisez une chaîne pour représenter la valeur. La valeur par défaut est « 3 ».

Pour obtenir des exemples de fichiers de configuration complets utilisant différents types de récepteurs, consultez Diffusion à partir du journal des événements d'application Windows vers les récepteurs.

Configuration du récepteur KinesisStream

La .KinesisStreamLe type de récepteur diffuse des enregistrements de journaux et des événements vers le service Kinesis Data Streams. En général, les données diffusées vers Kinesis Data Streams sont traitées par une ou plusieurs applications personnalisées qui s'exécutent via différents services AWS. Les données sont diffusées vers un flux nommé qui est configuré à l'aide Kinesis Data Streams. Pour plus d'informations, consultez le .Guide du développeur Amazon Kinesis Data Streams.

Voici un exemple de déclaration de récepteurs Kinesis Data Streams :

{ "Id": "TestKinesisStreamSink", "SinkType": "KinesisStream", "StreamName": "MyTestStream", "Region": "us-west-2" }

Toutes les déclarations de récepteurs KinesisStream peuvent fournir les paires clé-valeur supplémentaires suivantes :

SinkType

Doit être spécifié. La valeur doit être la chaîne littérale KinesisStream.

StreamName

Spécifie le nom du flux de données Kinesis qui reçoit les données diffusées à partir de l'KinesisStreamtype d'évier (requis). Avant de diffuser les données, configurez le flux dans AWS Management Console, l'AWS CLI ou via une application à l'aide de l'API Kinesis Data Streams.

RecordsPerSecond

Spécifie le nombre maximum d'enregistrements diffusés vers les Kinesis Data Streams par seconde. La paire clé-valeur est facultative. Si cet élément est spécifié, utilisez un entier pour représenter la valeur. La valeur par défaut est de 1 000 enregistrements.

BytesPerSecond

Spécifie le nombre maximum d'octets diffusés vers les Kinesis Data Streams par seconde. La paire clé-valeur est facultative. Si cet élément est spécifié, utilisez un entier pour représenter la valeur. La valeur par défaut est de 1 Mo.

La valeur par défaut de BufferInterval pour ce type de récepteur est d'une seconde et la valeur par défaut de BufferSize est de 500 enregistrements.

Configuration du récepteur KinesisFirehose

La .KinesisFirehoseLe type de récepteur diffuse des enregistrements de journaux et des événements vers le service Kinesis Data Firehose. Kinesis Data Firehose transmet les données diffusées à d'autres services en vue de leur stockage. En général, les données stockées sont ensuite analysées au cours des étapes ultérieures du pipeline de données. Les données sont diffusées vers un flux de diffusion nommé qui est configuré à l'aide de Kinesis Data Firehose. Pour plus d'informations, consultez le .Guide du développeur Amazon Kinesis Data Firehose.

Voici un exemple de déclaration de récepteurs Kinesis Data Firehose :

{ "Id": "TestKinesisFirehoseSink", "SinkType": "KinesisFirehose", "StreamName": "MyTestFirehoseDeliveryStream", "Region": "us-east-1", "CombineRecords": "true" }

Toutes les déclarations de récepteurs KinesisFirehose peuvent fournir les paires clé-valeur supplémentaires suivantes :

SinkType

Doit être spécifié. La valeur doit être la chaîne littérale KinesisFirehose.

StreamName

Spécifie le nom du flux de diffusion Kinesis Data Firehose qui reçoit les données diffusées à partir de l'KinesisStreamtype d'évier (requis). Avant de diffuser les données, configurez le flux de diffusion via AWS Management Console, l'interface de ligne de commande AWS ou via une application à l'aide de l'API Kinesis Data Firehose.

CombineRecords

Lorsqu'il est défini surtrue, spécifie de combiner plusieurs petits enregistrements dans un enregistrement volumineux avec une taille maximale de 5 Ko. La paire clé-valeur est facultative. Les enregistrements combinés à l'aide de cette fonction sont séparés par\n. Si vous utilisez AWS Lambda pour transformer un enregistrement Kinesis Data Firehose, votre fonction Lambda doit tenir compte du caractère séparateur.

RecordsPerSecond

Spécifie le nombre maximum d'enregistrements diffusés vers les Kinesis Data Streams par seconde. La paire clé-valeur est facultative. Si cet élément est spécifié, utilisez un entier pour représenter la valeur. La valeur par défaut est de 5 000 enregistrements.

BytesPerSecond

Spécifie le nombre maximum d'octets diffusés vers les Kinesis Data Streams par seconde. La paire clé-valeur est facultative. Si cet élément est spécifié, utilisez un entier pour représenter la valeur. La valeur par défaut est de 5 Mo.

La valeur par défaut de BufferInterval pour ce type de récepteur est d'une seconde et la valeur par défaut de BufferSize est de 500 enregistrements.

Configuration du récepteur CloudWatch Sink

La .CloudWatchType de récepteur diffuse les métriques vers le service CloudWatch. Vous pouvez afficher les métriques dans AWS Management Console. Pour plus d’informations, consultez le Guide de l'utilisateur Amazon CloudWatch.

Voici un exemple de déclaration de récepteurs CloudWatch :

{ "Id": "CloudWatchSink", "SinkType": "CloudWatch" }

Toutes les déclarations de récepteurs CloudWatch peuvent fournir les paires clé-valeur supplémentaires suivantes :

SinkType

Doit être spécifié. La valeur doit être la chaîne littérale CloudWatch.

Interval

Spécifie la fréquence (en secondes) à laquelle Kinesis Agent pour Windows communique les métriques au service CloudWatch. La paire clé-valeur est facultative. Si cet élément est spécifié, utilisez un entier pour représenter la valeur. La valeur par défaut est de 60 secondes. Spécifiez 1 seconde si vous voulez des métriques CloudWatch haute résolution.

Namespace

Spécifie l'espace de noms CloudWatch où les données de métriques sont présentées. Les espaces de noms CloudWatch regroupent un ensemble de métriques. La paire clé-valeur est facultative. La valeur par défaut est KinesisTap.

Dimensions

Spécifie les dimensions CloudWatch utilisées pour isoler les ensembles de métriques au sein d'un espace de noms. Cela peut être utile pour fournir des ensembles de données de métriques distincts pour chaque ordinateur de bureau ou serveur, par exemple. Cette paire clé-valeur est facultative et, si elle est spécifiée, la valeur doit respecter le format suivant : "clé1=valeur1clé2=valeur...". La valeur par défaut est "ComputerName={computername};InstanceId={instance_id}". Cette valeur prend en charge la substitution des variables de récepteur. Pour plus d'informations, consultez Configuration des substitutions de variables de récepteur.

MetricsFilter

Spécifie les métriques qui sont diffusées vers CloudWatch à partir de la source de métriques Kinesis Agent for Windows intégrée. Pour plus d'informations sur la source de métriques intégrée de Kinesis Agent pour Windows, notamment sur les détails de la syntaxe de la valeur de cette paire clé-valeur, consultezSource des métriques prédéfinies de Kinesis Agent pour Windows.

Configuration du récepteur CloudWatchLogs

La .CloudWatchLogsLe type de récepteur diffuse des enregistrements de journaux et des événements vers des Amazon CloudWatch Logs. Vous pouvez afficher les journaux dans AWS Management Console ou les traiter au cours des étapes supplémentaires d'un pipeline de données. Les données sont diffusées dans un flux de journaux nommé qui est configuré dans CloudWatch Logs. Les flux de journaux sont organisés en groupes de journaux nommés. Pour plus d'informations, consultez le .Guide de l'utilisateur Amazon CloudWatch Logs.

Voici un exemple de déclaration de récepteurs CloudWatch Logs :

{ "Id": "MyCloudWatchLogsSink", "SinkType": "CloudWatchLogs", "BufferInterval": "60", "BufferSize": "100", "Region": "us-west-2", "LogGroup": "MyTestLogGroup", "LogStream": "MyTestStream" }

Toutes les déclarations de récepteurs CloudWatchLogs doivent fournir les paires clé-valeur supplémentaires suivantes :

SinkType

Cet élément doit avoir pour valeur la chaîne littérale CloudWatchLogs.

LogGroup

Spécifie le nom du groupe de journaux CloudWatch Logs qui contient le flux de journaux qui reçoit les enregistrements de journaux et d'événements diffusés par l'CloudWatchLogstype d'évier. Si le groupe de journaux spécifié n'existe pas, Kinesis Agent for Windows tente de le créer.

LogStream

Spécifie le nom du flux de CloudWatch Logs qui reçoit le flux d'enregistrements de journaux et d'événements diffusés par l'CloudWatchLogstype d'évier. Cette valeur prend en charge la substitution des variables de récepteur. Pour plus d'informations, consultez Configuration des substitutions de variables de récepteur. Si le flux de journaux spécifié n'existe pas, Kinesis Agent for Windows tente de le créer.

La valeur par défaut de BufferInterval pour ce type de récepteur est d'une seconde et la valeur par défaut de BufferSize est de 500 enregistrements. La taille de tampon maximale est de 10 000 enregistrements.

LocaleFileSystemConfiguration du récepteur

Le type d'évierFileSystemenregistre les enregistrements de journaux et d'événements dans un fichier sur le système de fichiers local au lieu de les diffuser vers les services AWS.FileSystemsont utiles pour les tests et les diagnostics. Par exemple, vous pouvez utiliser ce type de collecteur pour examiner les enregistrements avant de les envoyer à AWS.

avecFileSystem, vous pouvez également utiliser des paramètres de configuration pour simuler le traitement par lots, la limitation et le retour sur erreur pour imiter le comportement des puits AWS réels.

Tous les enregistrements de toutes les sources connectées à unFileSystemsont enregistrés dans le fichier unique spécifié en tant queFilePath. SiFilePathn'est pas spécifié, les enregistrements sont enregistrés dans un fichier nomméSinkId.txtdans le%TEMP%, qui est généralementC:\Users\UserName\AppData\Local\Tempoù :SinkIdest l'identifiant unique du récepteur etUserNameest le nom d'utilisateur Windows de l'utilisateur actif.

Ce type de puits prend en charge les attributs de décoration de texte. Pour plus d'informations, consultez Configuration des décorations de récepteurs.

Un exemple d'FileSystemLa configuration de type de récepteur apparaît dans l'exemple suivant.

{ "Id": "LocalFileSink", "SinkType": "FileSystem", "FilePath": "C:\\ProgramData\\Amazon\\local_sink.txt", "Format": "json", "TextDecoration": "", "ObjectDecoration": "" }

La .FileSystemLa configuration se compose des paires clé-valeur suivantes.

SinkType

Cet élément doit avoir pour valeur la chaîne littérale FileSystem.

FilePath

Spécifie le chemin d'accès et le fichier où les enregistrements sont enregistrés. La paire clé-valeur est facultative. S'il n'est pas spécifié, la valeur par défaut estTempPath\\SinkId.txtoù :TempPathest le dossier stocké dans la stratégie%TEMP%Variable etSinkIdest l'identifiant unique du récepteur.

Format

Spécifie le format de l'événement àjsonouxml. Cette paire de valeur de clé est facultative et ne respecte pas la casse. S'il est omis, les événements sont écrits dans le fichier en texte brut.

TextDecoration

S'applique uniquement aux événements écrits en texte brut. La paire clé-valeur est facultative.

ObjectDecoration

S'applique uniquement aux événements oùFormata la valeurjson. La paire clé-valeur est facultative.

Utilisation avancée — Limitation des enregistrements et simulation des défaillances

FileSystempeut imiter le comportement des puits AWS en simulant la limitation des enregistrements. Vous pouvez utiliser les paires clé-valeur suivantes pour spécifier des attributs de limitation d'enregistrements et de simulation d'échec.

En acquérant un verrou sur le fichier de destination et en empêchant les écritures sur celui-ci, vous pouvez utiliserFileSystempour simuler et examiner le comportement des puits AWS en cas de défaillance du réseau.

L'exemple suivant illustre unFileSystemavec des attributs de simulation.

{ "Id": "LocalFileSink", "SinkType": "FileSystem", "FilePath": "C:\\ProgramData\\Amazon\\local_sink.txt", "TextDecoration": "", "RequestsPerSecond": "100", "BufferSize": "10", "MaxBatchSize": "1024" }
RequestsPerSecond

Facultatif et spécifié en tant que type de chaîne. S'il n'est pas spécifié, la valeur par défaut est"5". Contrôle le taux de demandes que le sovier traite, c'est-à-dire les écritures dans un fichier, et non le nombre d'enregistrements. Kinesis Agent pour Windows effectue des requêtes par lots aux points de terminaison AWS, de sorte qu'une demande peut contenir plusieurs enregistrements.

BufferSize

Facultatif et spécifié en tant que type de chaîne. Spécifie le nombre maximal d'enregistrements d'événements que le sovier effectue par lots avant d'enregistrer dans le fichier.

MaxBatchSize

Facultatif et spécifié en tant que type de chaîne. Spécifie la quantité maximale de données d'enregistrement d'événement, en octets, que le sovier effectue par lots avant d'enregistrer dans le fichier.

La limite de taux d'enregistrement maximal est fonction deBufferSize, qui détermine le nombre maximum d'enregistrements par demande, etRequestsPerSecond. Vous pouvez calculer la limite de taux d'enregistrement par seconde à l'aide de la formule suivante.

Taux d'enregistrement=BufferSize*RequestsPerSecond

Compte tenu des valeurs de configuration dans l'exemple ci-dessus, il y a un taux d'enregistrement maximal de 1000 enregistrements par seconde.

Configuration de la sécurité des récepteurs

Configuration de l'authentification

Pour que Kinesis Agent pour Windows diffuse des journaux, des événements et des métriques vers les services AWS, l'accès doit être authentifié. Il existe plusieurs manières de fournir une authentification pour Kinesis Agent for Windows. La façon dont vous procédez dépend de la situation dans laquelle l'Agent Kinesis pour Windows s'exécute et des exigences de sécurité spécifiques pour une organisation donnée.

  • Si Kinesis Agent pour Windows s'exécute sur un hôte Amazon EC2, la façon la plus simple et la plus sécurisée de fournir une authentification consiste à créer un rôle IAM ayant suffisamment de droits d'accès aux opérations requises pour les services AWS requis, ainsi qu'un profil d'instance EC2 faisant référence à ce rôle. Pour plus d'informations sur la création de profils d'instance, consultez Utilisation de profils d'instance. Pour plus d'informations sur les stratégies à attacher au rôle IAM, consultezConfiguration de l'autorisation.

    Après avoir créé le profil d'instance, vous pouvez l'associer à des instances EC2 qui utilisent Kinesis Agent pour Windows. Si les instances disposent déjà d'un profil d'instance associé, vous pouvez attacher les stratégies appropriées au rôle associé à ce profil d'instance.

  • Si Kinesis Agent pour Windows s'exécute sur un hôte EC2 dans un compte, mais que les ressources qui sont la cible du récepteur résident dans un autre compte, vous pouvez créer un rôle IAM pour l'accès entre comptes. Pour de plus amples informations, veuillez consulterDidacticiel : Delegate Access Across AWS Accounts Using IAM Roles. Après avoir créé le rôle entre comptes, spécifiez son Amazon Resource Name (ARN) sous la forme de la valeur de l'RoleARNPaire clé-valeur dans la déclaration. Kinesis Agent pour Windows tente ensuite d'assumer le rôle entre comptes spécifié lors de l'accès aux ressources AWS qui sont associées au type de récepteur.

  • Si Kinesis Agent pour Windows s'exécute en dehors d'Amazon EC2 (par exemple, sur site), il existe plusieurs options :

    • S'il est acceptable d'enregistrer le serveur ou l'ordinateur de bureau sur site en tant qu'instance gérée par Amazon EC2 Systems Manager, utilisez la procédure suivante pour configurer l'authentification :

      1. Utilisez le processus décrit dans Configuration d'AWS Systems Manager dans des environnements hybrides pour créer un rôle de service, créer une activation pour une instance gérée et installer l'agent SSM.

      2. Attachez les stratégies appropriées au rôle de service pour permettre à Kinesis Agent pour Windows d'accéder aux ressources nécessaires pour la diffusion des données à partir des récepteurs configurés. Pour plus d'informations sur les stratégies à attacher au rôle IAM, consultezConfiguration de l'autorisation.

      3. Utilisez le processus décrit dansConfigurationProfileRefreshingAWSCredentialProviderPour actualiser les informations d'identification AWSpour actualiser les informations d'identification AWS.

      Il s'agit de l'approche recommandée pour les instances autres qu'EC2, car les informations d'identification sont gérées en toute sécurité par SSM et AWS.

    • S'il est acceptable d'exécuter le service AWSKinesisTap pour Kinesis Agent pour Windows sous un utilisateur spécifique au lieu du compte système par défaut, utilisez la procédure suivante :

      1. Créez un utilisateur IAM dans le compte AWS où les services AWS seront utilisés. Capturez la clé d'accès et la clé secrète de cet utilisateur pendant le processus de création. Vous aurez besoin de ces informations pour les étapes ultérieures de cette procédure.

      2. Attachez à l'utilisateur IAM des stratégies qui autorisent l'accès aux opérations requises pour les services requis. Pour plus d'informations sur les stratégies à attacher à l'utilisateur IAM, consultezConfiguration de l'autorisation.

      3. Modifiez le service AWSKinesisTap sur chaque ordinateur de bureau ou serveur afin qu'il s'exécute sous un utilisateur spécifique et non sous le compte système par défaut.

      4. Créez un profil dans le magasin SDK à l'aide de la clé d'accès et de la clé secrète enregistrées précédemment. Pour plus d'informations, consultez Configuration des informations d'identification AWS.

      5. Mettez à jour le fichier AWSKinesisTap.exe.config du répertoire %PROGRAMFILES%\Amazon\AWSKinesisTap en spécifiant le nom du profil créé à l'étape précédente. Pour plus d'informations, consultez Configuration des informations d'identification AWS.

      Il s'agit de la méthode recommandée pour les hôtes autres qu'EC2 qui ne peuvent pas être des instances gérées, car les informations d'identification sont chiffrées pour l'hôte et l'utilisateur spécifiques.

    • S'il est nécessaire d'exécuter le service AWSKinesisTap pour Kinesis Agent pour Windows sous le compte système par défaut, vous devez utiliser un fichier d'informations d'identification partagé. En effet, le compte système n'a pas de profil utilisateur Windows pour activer le magasin SDK. Les fichiers d'informations d'identification ne sont pas chiffrés ; nous déconseillons donc cette approche. Pour plus d'informations sur l'utilisation des fichiers de configuration partagés, consultezConfiguration des informations d'identification AWSdans leKit AWS SDK pour .NET. Si vous utilisez cette approche, nous vous recommandons d'utiliser le chiffrement NTFS et l'accès restreint au fichier de configuration partagé. Les clés doivent faire l'objet d'une rotation par une plateforme de gestion et le fichier de configuration partagé doit être mis à jour lors de la rotation des clés.

Bien qu'il soit possible de fournir directement les clés d'accès et les clés secrètes dans les déclarations de récepteur, cette approche est déconseillée, car les déclarations ne sont pas chiffrées.

Configuration de l'autorisation

Attachez les stratégies appropriées qui suivent à l'utilisateur ou au rôle IAM que utilisera Kinesis Agent pour Windows pour diffuser les données vers les services AWS :

Kinesis Data Streams

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "kinesis:PutRecord", "kinesis:PutRecords" ], "Resource": "arn:aws:kinesis:*:*:stream/*" } ] }

Pour limiter l'autorisation à un nom de région, de compte ou de flux spécifique, remplacez les astérisques appropriés dans l'ARN par des valeurs spécifiques. Pour plus d'informations, consultez « Amazon Resource Names (ARN) pour Kinesis Data Streams » dans Contrôle de l'accès aux ressources Amazon Kinesis Data Streams avec IAM.

Kinesis Data Firehose

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor1", "Effect": "Allow", "Action": [ "firehose:PutRecord", "firehose:PutRecordBatch" ], "Resource": "arn:aws:firehose:*:*:deliverystream/*" } ] }

Pour limiter l'autorisation à un nom de région, de compte ou de flux de diffusion spécifique, remplacez les astérisques appropriés dans l'ARN par des valeurs spécifiques. Pour de plus amples informations, veuillez consulterContrôle de l'accès avec Amazon Kinesis Data Firehosedans leGuide du développeur Amazon Kinesis Data Firehose.

CloudWatch

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor2", "Effect": "Allow", "Action": "cloudwatch:PutMetricData", "Resource": "*" } ] }

Pour de plus amples informations, veuillez consulterPrésentation de la gestion des autorisations d'accès à vos ressources CloudWatchdans leGuide de l'utilisateur Amazon CloudWatch Logs.

CloudWatch Logs avec un groupe de journaux et un flux de journaux existants

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor3", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:log-group:*" }, { "Sid": "VisualEditor4", "Effect": "Allow", "Action": "logs:PutLogEvents", "Resource": "arn:aws:logs:*:*:log-group:*:*:*" } ] }

Pour limiter l'accès à une région, un compte, un groupe de journaux ou un flux de journaux spécifique, remplacez les astérisques appropriés dans l'ARN par les valeurs appropriées. Pour de plus amples informations, veuillez consulterPrésentation de la gestion des autorisations d'accès à vos ressources de CloudWatch Logsdans leGuide de l'utilisateur Amazon CloudWatch Logs.

CloudWatch Logs avec des autorisations supplémentaires permettant à Kinesis Agent for Windows de créer des groupes de journaux et des flux de journaux

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor5", "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:log-group:*" }, { "Sid": "VisualEditor6", "Effect": "Allow", "Action": "logs:PutLogEvents", "Resource": "arn:aws:logs:*:*:log-group:*:*:*" }, { "Sid": "VisualEditor7", "Effect": "Allow", "Action": "logs:CreateLogGroup", "Resource": "*" } ] }

Pour limiter l'accès à une région, un compte, un groupe de journaux ou un flux de journaux spécifique, remplacez les astérisques appropriés dans l'ARN par les valeurs appropriées. Pour de plus amples informations, veuillez consulterPrésentation de la gestion des autorisations d'accès à vos ressources de CloudWatch Logsdans leGuide de l'utilisateur Amazon CloudWatch Logs.

Autorisations requises pour l'extension des variables EC2 Tag

L'utilisation de l'extension des variables avec le préfixe de variable ec2tag nécessite l'autorisation ec2:Describe*.

{ "Version": "2012-10-17", "Statement": [{ "Sid": "VisualEditor8", "Effect": "Allow", "Action": "ec2:Describe*", "Resource": "*" } ] }
Note

Vous pouvez combiner plusieurs instructions dans une seule stratégie, du moment que l'élément Sid de chaque instruction est unique au sein de cette stratégie. Pour plus d'informations sur la création de stratégies, consultezCréation de stratégies IAMdans leGuide de l'utilisateur IAM.

ConfigurationProfileRefreshingAWSCredentialProviderPour actualiser les informations d'identification AWS

Si vous utilisez AWS Systems Manager pour les environnements hybrides pour gérer les informations d'identification AWS, Systems Manager fait pivoter les informations d'identification de session dansc:\Windows\System32\config\systemprofile\.aws\credentials. Pour plus d'informations sur Systems Manager pour les environnements hybrides, consultezConfiguration d'AWS Systems Manager pour les environnements hybridesdans leGuide de l'utilisateur AWS Systems Manager.

Étant donné que le kit SDK .net AWS ne récupère pas automatiquement de nouvelles informations d'identification, nous fournissons leProfileRefreshingAWSCredentialProviderpour actualiser les informations d'identification.

Vous pouvez utiliser la stratégieCredentialRefde n'importe quelle configuration de synchronisation AWS pour référencer unCredentialsoù la stratégieCredentialTypeest défini surProfileRefreshingAWSCredentialProviderComme illustré dans l'exemple suivant.

{ "Sinks": [{ "Id": "myCloudWatchLogsSink", "SinkType": "CloudWatchLogs", "CredentialRef": "ssmcred", "Region": "us-west-2", "LogGroup": "myLogGroup", "LogStream": "myLogStream" }], "Credentials": [{ "Id": "ssmcred", "CredentialType": "ProfileRefreshingAWSCredentialProvider", "Profile": "default", "FilePath": "%USERPROFILE%//.aws//credentials", "RefreshingInterval": 300 }] }

Une définition d'informations d'identification se compose des attributs suivants sous forme de paires clé-valeur.

Id

Définit la chaîne que les définitions de puits peuvent spécifier en utilisantCredentialRefpour référencer cette configuration d'informations d'identification.

CredentialType

Définissez sur la chaîne littéraleProfileRefreshingAWSCredentialProvider.

Profile

Facultatif. La valeur par défaut est default.

FilePath

Facultatif. Indique le chemin d'accès au fichier d'informations d'identification AWS. Si ce paramètre n'est pas spécifié, %USERPROFILE%/.aws/credentials est la valeur par défaut.

RefreshingInterval

Facultatif. Fréquence à laquelle les informations d'identification sont actualisées, en secondes. Si ce paramètre n'est pas spécifié, 300 est la valeur par défaut.

Configuration des décorations de récepteurs

Les déclarations de récepteurs peuvent éventuellement inclure des paires clé-valeur qui spécifient des données supplémentaires à diffuser vers différents services AWS pour améliorer les enregistrements recueillis à partir de la source.

TextDecoration

Utilisez cette paire clé-valeur si aucun élément Format n'est spécifié dans la déclaration. La valeur est une chaîne de format spécial dans laquelle se produit une substitution de variables. Par exemple, supposons qu'un élément TextDecoration de "{ComputerName}:::{timestamp:yyyy-MM-dd HH:mm:ss}:::{_record}" soit fourni pour un récepteur. Lorsqu'une source émet un enregistrement de journal contenant le texte The system has resumed from sleep. et que cette source est connectée au récepteur via un pipeline, le texte MyComputer1:::2017-10-26 06:14:22:::The system has resumed from sleep. est diffusé vers le service AWS associé au type de récepteur. La variable {_record} fait référence à l'enregistrement de texte d'origine fourni par la source.

ObjectDecoration

Utilisez cette paire clé-valeur lorsque Format est spécifié dans la déclaration de récepteurs pour ajouter des données supplémentaires avant la sérialisation des enregistrements. Par exemple, supposons qu'un élément ObjectDecoration de "ComputerName={ComputerName};DT={timestamp:yyyy-MM-dd HH:mm:ss}" soit fourni pour un récepteur qui spécifie l'élément JSON Format. Le JSON résultant diffusé vers le service AWS associé au type de récepteur inclut les paires clé-valeur suivantes, en plus des données d'origine provenant de la source :

{ ComputerName: "MyComputer2", DT: "2017-10-17 21:09:04" }

Pour obtenir un exemple d'utilisation de ObjectDecoration, consultez la section Didacticiel : Diffuser les fichiers journaux JSON vers Amazon S3 à l'aide de Kinesis Agent pour Windows.

ObjectDecorationEx

Spécifie une expression qui permet une extraction et une mise en forme plus flexibles des données par rapport àObjectDecoration. Ce champ peut être utilisé lorsque le format de l'évier estjson. La syntaxe d'expression est illustrée dans ce qui suit.

"ObjectDecorationEx": "attribute1={expression1};attribute2={expression2};attribute3={expression3}(;...)"

Par exemple,ObjectDecorationExAttribut :

"ObjectDecorationEx": "host={env:ComputerName};message={upper(_record)};time={format(_timestamp, 'yyyyMMdd')}"

Transforme l'enregistrement littéral :

System log message

Dans un objet JSON comme suit, avec les valeurs renvoyées par les expressions :

{ "host": "EC2AMAZ-1234", "message": "SYSTEM LOG MESSAGE", "time": "20210201" }

Pour plus d'informations sur la formulation des expressions, consultezConseils pour écrire des expressions. La plupart desObjectDecorationdoit fonctionner en utilisant la nouvelle syntaxe à l'exception des variables d'horodatage. A{timestamp:yyyyMMdd}Champ dansObjectDecorationest exprimé sous forme de{format(_timestamp,'yyyyMMdd')}inObjectDecorationEx.

TextDecorationEx

Spécifie une expression qui permet une extraction et une mise en forme plus flexibles des données par rapport àTextDecoration, comme illustré dans l'exemple suivant.

"TextDecorationEx": "Message '{lower(_record)}' at {format(_timestamp, 'yyyy-MM-dd')}"

Vous pouvez utiliserTextDecorationExpour composer des objets JSON. Utilisez '@ {'pour échapper à l'accolade ouverte, comme illustré dans l'exemple suivant.

"TextDecorationEx": "@{ \"var\": \"{upper($myvar1)}\" }"

Si le type de la source connectée au récepteur est DirectorySource, le récepteur peut utiliser trois variables supplémentaires :

_FilePath

Chemin complet du fichier journal.

_FileName

Nom et extension de nom du fichier.

_Position

Entier qui représente l'emplacement de l'enregistrement dans le fichier journal.

Ces variables sont utiles lorsque vous utilisez une source qui recueille les enregistrements de journaux de plusieurs fichiers connectés à un récepteur qui diffuse tous les enregistrements vers un seul flux. L'injection des valeurs de ces variables dans les enregistrements diffusés permet aux analyses en aval du pipeline de données de classer les enregistrements par fichier et par emplacement au sein de chaque fichier.

Conseils pour écrire des expressions

Une expression peut avoir l'une des expressions suivantes :

  • Une expression variable.

  • Une expression constante, par exemple,'hello',1,1.21,null,true,false.

  • Expression d'appel qui appelle une fonction, comme illustré dans l'exemple suivant.

    regexp_extract('Info: MID 118667291 ICID 197973259 RID 0 To: <jd@acme.com>', 'To: (\\\\S+)', 1)

Caractères spéciaux

Deux barres obliques inverses sont nécessaires pour échapper aux caractères spéciaux.

Nesting

Les invocations de fonctions peuvent être imbriquées, comme illustré dans l'exemple suivant.

format(date(2018, 11, 28), 'MMddyyyy')

Variables

Il existe trois types de variables : locale, méta et globale.

  • Variables localesCommencez par un$tels que$message. Ils sont utilisés pour résoudre la propriété de l'objet d'événement, une entrée si l'événement est un dictionnaire, ou un attribut si l'événement est un objet JSON. Si la variable locale contient de l'espace ou des caractères spéciaux, utilisez une variable locale entre guillemets telle que$'date created'.

  • Variables MétadonnéesCommencez par un trait de soulignement (_) et sont utilisés pour résoudre les métadonnées de l'événement. Tous les types d'événements prennent en charge les méta variables suivantes.

    _timestamp

    Horodatage de l'événement.

    _record

    Représentation de texte brut de l'événement.

    Les événements de journal prennent en charge les méta variables supplémentaires suivantes.

    _filepath

    _filename

    _position

    _linenumber

  • Variables globalesrésoudre en variables d'environnement, métadonnées d'instance EC2 ou EC2Tag. Pour des performances améliorées, nous vous recommandons d'utiliser le préfixe pour limiter la portée de la recherche, comme{env:ComputerName},{ec2:InstanceId}, et{ec2tag:Name}.

Fonctions intégrées

Kinesis Agent pour Windows prend en charge les fonctions prédéfinies ci-dessous. Si l'un des arguments estNULLet la fonction n'est pas conçue pour gérerNULL, unNULLest retourné.

//string functions int length(string input) string lower(string input) string lpad(string input, int size, string padstring) string ltrim(string input) string rpad(string input, int size, string padstring) string rtrim(string input) string substr(string input, int start) string substr(string input, int start, int length) string trim(string input) string upper(string str) //regular expression functions string regexp_extract(string input, string pattern) string regexp_extract(string input, string pattern, int group) //date functions DateTime date(int year, int month, int day) DateTime date(int year, int month, int day, int hour, int minute, int second) DateTime date(int year, int month, int day, int hour, int minute, int second, int millisecond) //conversion functions int? parse_int(string input) decimal? parse_decimal(string input) DateTime? parse_date(string input, string format) string format(object o, string format) //coalesce functions object coalesce(object obj1, object obj2) object coalesce(object obj1, object obj2, object obj3) object coalesce(object obj1, object obj2, object obj3, object obj4) object coalesce(object obj1, object obj2, object obj3, object obj4, object obj5) object coalesce(object obj1, object obj2, object obj3, object obj4, object obj5, object obj6)

Configuration des substitutions de variables de récepteur

Les déclarations de récepteurs KinesisStream, KinesisFirehose et CloudWatchLogs nécessitent une paire clé-valeur LogStream ou StreamName. La valeur de ces paires clé-valeur peut contenir des références de variables qui sont automatiquement résolues par l'Agent Kinesis pour Windows. PourCloudWatchLogs, leLogGrouppaire clé-valeur est également requise et peut contenir des références de variables qui sont automatiquement résolues par l'Agent Kinesis pour Windows. Les variables sont spécifiées en utilisant le modèle {prefix:variablename}, où prefix: est facultatif. Les préfixes pris en charge sont les suivants :

  • env— La référence de variable est résolue par la valeur de la variable d'environnement portant le même nom.

  • ec2— La référence de variable est résolue par les métadonnées d'instance EC2 portant le même nom.

  • ec2tag— La référence de variable est résolue par la valeur de la balise d'instance EC2 portant le même nom. L'autorisation ec2:Describe* est nécessaire pour accéder aux balises d'instance. Pour plus d'informations, consultez Autorisations requises pour l'extension des variables EC2 Tag.

Si le préfixe n'est pas spécifié et s'il y a une variable d'environnement portant le même nom que variablename, la référence de variable est résolue par la valeur de la variable d'environnement. Sinon, si variablename a pour valeur instance_id ou hostname, la référence de variable est résolue par la valeur des métadonnées EC2 portant le même nom. Dans le cas contraire, la référence de variable n'est pas résolue.

Voici des exemples de paires clé-valeur valides utilisant des références de variable :

"LogStream": "LogStream_{instance_id}" "LogStream": "LogStream_{hostname}" "LogStream": "LogStream_{ec2:local-hostname}" "LogStream": "LogStream_{computername}" "LogStream": "LogStream_{env:computername}"

Les déclarations de récepteurs CloudWatchLogs prennent en charge une variable d'horodatage de format spécial qui autorise l'horodatage de l'enregistrement de journal ou d'événement d'origine à partir de la source pour modifier le nom du flux de journaux. Le format est {timestamp:timeformat}. Consultez l'exemple suivant:

"LogStream": "LogStream_{timestamp:yyyyMMdd}"

Si l'enregistrement de journal ou d'événement a été généré le 5 juin 2017, la valeur de la paire clé-valeur LogStream de l'exemple précédent sera résolue par "LogStream_20170605".

Si cela est autorisé, le type de récepteur CloudWatchLogs peut créer automatiquement de nouveaux flux de journaux lorsque cela est nécessaire en fonction des noms générés. Vous ne pouvez pas le faire pour d'autres types de récepteurs, car ils nécessitent une configuration supplémentaire au-delà du nom du flux.

Il existe des substitutions de variables spéciales qui se produisent dans les éléments TextDecoration et ObjectDecoration. Pour plus d'informations, consultez Configuration des décorations de récepteurs.

Configuration de la mise en file d'attente des récepteurs

Les déclarations de récepteurs CloudWatchLogs, KinesisStream et KinesisFirehose peuvent éventuellement autoriser la mise en file d'attente des enregistrements qui n'ont pas pu être diffusés vers le service AWS associé à ces types de récepteurs en raison de problèmes de connectivité transitoires. Pour activer la mise en file d'attente et l'automatisation des nouvelles tentatives de diffusion en streaming lorsque la connectivité est restaurée, utilisez les paires clé-valeur suivantes dans les déclarations de récepteurs :

QueueType

Spécifie le type de mécanisme de mise en file d'attente à utiliser. La seule valeur prise en charge est file, ce qui indique que les enregistrements doivent être mis en file d'attente dans un fichier. Cette paire clé-valeur est obligatoire pour activer la fonctionnalité de mise en file d'attente de Kinesis Agent for Windows. Si cet élément n'est pas spécifié, le comportement par défaut est le placement en file d'attente en mémoire uniquement et l'échec de la diffusion lorsque les limites de la mise en file d'attente en mémoire sont atteintes.

QueuePath

Spécifie le chemin d'accès au dossier contenant les fichiers des enregistrements placés en file d'attente. La paire clé-valeur est facultative. La valeur par défaut est %PROGRAMDATA%\KinesisTap\Queue\SinkId, où SinkId représente l'identifiant que vous avez affecté comme valeur de l'élément Id pour la déclaration de récepteurs.

QueueMaxBatches

Limite la quantité totale d'espace pouvant être consommée par Kinesis Agent pour Windows lors de la mise en file d'attente des enregistrements pour la diffusion en streaming. La quantité d'espace est limitée à la valeur de cette paire clé-valeur multipliée par le nombre maximal d'octets par lot. Le nombre maximal d'octets par lot des types de récepteurs CloudWatchLogs, KinesisStream et KinesisFirehose est respectivement 5 Mo, 4 Mo et 1 Mo. Lorsque cette limite est atteinte, les défaillances de diffusion en streaming ne sont pas mises en file d'attente et sont signalées comme des défaillances irrécupérables. La paire clé-valeur est facultative. La valeur par défaut est de 10 000 lots.

Configuration d'un proxy pour les récepteurs

Pour configurer un proxy pour tous les types de récepteur Kinesis Agent pour Windows qui accèdent aux services AWS, modifiez le fichier de configuration Kinesis Agent for Windows situé à l'adresse%Program Files%\Amazon\KinesisTap\AWSKinesisTap.exe.config. Pour obtenir des instructions, consultezproxySection dansRéférence aux fichiers de configuration pour le AWS SDK for .NETdans leManuel du développeur du kit SDK AWS pour .NET.

Configuration de la résolution de variables dans d'autres attributs de collecteur

L'exemple suivant illustre une configuration de récepteur qui utilise l'RegionVariable d'environnement pour la valeur de la stratégieRegionpaire clé/valeur d'attribut. PourRoleARN, il spécifie la clé de balise EC2MyRoleARN, qui évalue la valeur associée à cette clé.

"Id": "myCloudWatchLogsSink", "SinkType": "CloudWatchLogs", "LogGroup": "EC2Logs", "LogStream": "logs-{instance_id}" "Region": "{env:Region}" "RoleARN": "{ec2tag:MyRoleARN}"

Configuration des points de terminaison régionaux AWS STS lors de l'utilisation de la propriété RoleARN dans les puits AWS

Cette fonctionnalité ne s'applique que si vous utilisez KinesiStap sur Amazon EC2 et que vous utilisez l'RoleARNdes puits AWS pour assumer un rôle IAM externe pour s'authentifier auprès des services AWS de destination.

En définissantUseSTSRegionalEndpointssurtrue, vous pouvez spécifier qu'un agent utilise le point de terminaison régional (par exemple,https://sts.us-east-1.amazonaws.com) au lieu du point de terminaison global (par exemple,https://sts.amazonaws.com). L'utilisation d'un point de terminaison STS régional réduit la latence aller-retour pour l'opération et limite l'impact des défaillances dans le service de point de terminaison global.

Configuration du point de terminaison VPC pour les puits AWS

Vous pouvez spécifier un point de terminaison VPC dans la configuration du récepteur pourCloudWatchLogs,CloudWatch,KinesisStreams, etKinesisFirehosetypes d'évier. Un point de terminaison de VPC permet une connexion privée entre votre VPC et les services AWS pris en charge ou les services de point de terminaison VPC gérés par AWS PrivateLink sans nécessiter une passerelle Internet, un périphérique NAT et une connexion VPN ou une connexion AWS Direct Connect. Les instances de votre VPC ne requièrent pas d'adresses IP publiques pour communiquer avec les ressources du service. Le trafic entre votre VPC et les autres services ne quitte pas le réseau Amazon. Pour de plus amples informations, veuillez consulterPoints de terminaison d'un VPCdans leGuide de l'utilisateur Amazon VPC.

Vous spécifiez le point de terminaison VPC à l'aide de laServiceURLcomme illustré dans l'exemple suivant d'unCloudWatchLogsconfiguration de l'évier. Définissez la valeur deServiceURLà la valeur affichée sur leDétails du point de terminaison du VPCÀ l'aide de la console Amazon VPC.

{ "Id": "myCloudWatchLogsSink", "SinkType": "CloudWatchLogs", "LogGroup": "EC2Logs", "LogStream": "logs-{instance_id}", "ServiceURL":"https://vpce-ab1c234de56-ab7cdefg.logs.us-east-1.vpce.amazonaws.com" }

Configuration d'un autre moyen de proxy

Cette fonctionnalité vous permet de configurer un serveur proxy dans une configuration de collecteur à l'aide de la prise en charge du proxy intégrée au kit SDK AWS au lieu de .NET. Auparavant, la seule façon de configurer l'agent pour qu'il utilise un proxy était d'utiliser une fonctionnalité native de .NET, qui acheminait automatiquement toutes les requêtes HTTP/S via le proxy défini dans le fichier proxy.

Si vous utilisez actuellement l'agent avec un serveur proxy, vous n'avez pas besoin de changer pour utiliser cette méthode.

Vous pouvez utiliser la stratégieProxyHostandProxyPortPour configurer un proxy alternatif, comme illustré dans l'exemple suivant.

{ "Id": "myCloudWatchLogsSink", "SinkType": "CloudWatchLogs", "LogGroup": "EC2Logs", "LogStream": "logs-{instance_id}", "Region": "us-west-2", "ProxyHost": "myproxy.mydnsdomain.com", "ProxyPort": "8080" }