

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.

# Journalisation Amazon MSK
<a name="msk-logging"></a>

Vous pouvez envoyer les journaux des courtiers Apache Kafka vers un ou plusieurs des types de destination suivants : Amazon CloudWatch Logs, Amazon S3, Amazon Data Firehose. Vous pouvez également enregistrer les appels d'API Amazon MSK avec AWS CloudTrail.

**Note**  
Les journaux des courtiers sont disponibles sur les courtiers MSK Standard et Express.

## Journaux d'agent
<a name="broker-logs"></a>

Les journaux d'agent vous permettent de dépanner vos applications Apache Kafka et d'analyser leurs communications avec votre cluster MSK. Vous pouvez configurer votre cluster MSK nouveau ou existant pour fournir des journaux de broker de niveau Info à un ou plusieurs des types de ressources de destination suivants : un groupe de CloudWatch journaux, un compartiment S3, un flux de diffusion Firehose. Grâce à Firehose, vous pouvez ensuite transmettre les données du journal de votre flux de diffusion au OpenSearch Service.

Vous devez créer une ressource de destination avant de configurer votre cluster pour qu'il y envoie les journaux d'agent. Amazon MSK ne crée pas ces ressources de destination pour vous si elles n'existent pas déjà. Pour plus d'informations sur ces trois types de ressources de destination et sur la façon de les créer, consultez la documentation suivante :
+ [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html)
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/Welcome.html)
+ [Amazon Data Firehose](https://docs.aws.amazon.com/firehose/latest/dev/what-is-this-service.html)

### Autorisations requises
<a name="broker-logs-perms"></a>

Pour configurer une destination pour les journaux d'agent Amazon MSK, l'identité IAM que vous utilisez pour les actions Amazon MSK doit disposer des autorisations décrites dans la politique [AWS politique gérée : Amazon MSKFull Access](security-iam-awsmanpol-AmazonMSKFullAccess.md). 

Pour diffuser des journaux d'agent vers un compartiment S3, vous avez également besoin de l'autorisation `s3:PutBucketPolicy`. Pour plus d'informations sur les politiques de compartiment S3, consultez [Comment ajouter une politique de compartiment S3 ?](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/add-bucket-policy.html) dans le Guide de l'utilisateur Amazon S3. Pour plus d'informations sur les politiques IAM en général, consultez [Gestion des accès](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html) dans le Guide de l'utilisateur IAM. 

### Stratégie de clé KMS obligatoire à utiliser avec les compartiments SSE-KMS
<a name="sse-kms-buckets"></a>

Si vous avez activé le chiffrement côté serveur pour votre compartiment S3 à l'aide de clés AWS KMS gérées (SSE-KMS) avec une clé gérée par le client, ajoutez ce qui suit à la politique de clé pour votre clé KMS afin qu'Amazon MSK puisse écrire des fichiers de courtier dans le compartiment.

```
{
  "Sid": "Allow Amazon MSK to use the key.",
  "Effect": "Allow",
  "Principal": {
    "Service": [
      "delivery.logs.amazonaws.com"
    ]
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
```

### Configurez les journaux des courtiers à l'aide du AWS Management Console
<a name="broker-logs-console"></a>

Si vous créez un cluster, recherchez l'en-tête de **Broker log delivery (Transmission du journal d’agent)** dans la section **Monitoring (Surveillance)** . Vous pouvez spécifier les destinations vers lesquelles vous souhaitez qu'Amazon MSK diffuse vos journaux d'agent. 

Pour un cluster existant, choisissez ce dernier dans votre liste de clusters, puis sélectionnez l'onglet **Propriétés**. Faites défiler jusqu'à la section **Diffusion de journaux**, puis choisissez son bouton **Modifier**. Vous pouvez spécifier les destinations vers lesquelles vous souhaitez qu'Amazon MSK diffuse vos journaux d'agent.

### Configurez les journaux des courtiers à l'aide du AWS CLI
<a name="broker-logs-cli"></a>

Lorsque vous utilisez les commande `update-monitoring` ou `create-cluster`, vous pouvez éventuellement spécifier le paramètre `logging-info` et lui transmettre une structure JSON comme dans l'exemple suivant. Dans ce JSON, les trois types de destination sont facultatifs.

**Note**  
Vous devez définir le `LogDeliveryEnabled` tag sur « `true` sur les streams Firehose » pour configurer la livraison des logs. Le rôle lié au service qui AWS crée pour les CloudWatch journaux utilise cette balise pour autoriser tous les flux de diffusion Firehose. Si vous supprimez cette balise, le rôle lié au service ne sera pas en mesure de fournir des journaux au stream Firehose. *Pour voir un exemple de politique IAM indiquant les autorisations incluses dans le rôle lié à un service, consultez la section [Rôles IAM utilisés pour les autorisations de ressources dans le guide de l'utilisateur](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-infrastructure-V2-Firehose.html) Amazon. CloudWatch *

```
{
  "BrokerLogs": {
    "S3": {
      "Bucket": "amzn-s3-demo-bucket",
      "Prefix": "ExamplePrefix",
      "Enabled": true
    },
    "Firehose": {
      "DeliveryStream": "ExampleDeliveryStreamName",
      "Enabled": true
    },
    "CloudWatchLogs": {
      "Enabled": true,
      "LogGroup": "ExampleLogGroupName"
    }
  }
}
```

### Configurer les journaux des courtiers à l'aide de l'API
<a name="broker-logs-api"></a>

Vous pouvez spécifier la `loggingInfo` structure facultative dans le JSON que vous transmettez aux [UpdateMonitoring](https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-monitoring.html#UpdateMonitoring)opérations [CreateCluster](https://docs.aws.amazon.com/msk/1.0/apireference/clusters.html#CreateCluster)or.

**Note**  
Par défaut, lorsque la journalisation des agents est activée, Amazon MSK journalise les journaux de niveau `INFO` vers les destinations spécifiées. Toutefois, pour les courtiers standard, les utilisateurs d'Apache Kafka 2.4.X et versions ultérieures peuvent définir dynamiquement le niveau de journal du courtier sur n'importe quel niveau de journal [log4j](https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Level.html). Pour plus d'informations sur la définition dynamique du niveau de journalisation de l'agent, consultez [KIP-412 : Extension de l'API Admin pour prendre en charge les niveaux de journalisation dynamiques des applications](https://cwiki.apache.org/confluence/display/KAFKA/KIP-412%3A+Extend+Admin+API+to+support+dynamic+application+log+levels). Si vous définissez dynamiquement le niveau de journalisation sur `DEBUG` ou`TRACE`, nous vous recommandons d'utiliser Amazon S3 ou Firehose comme destination du journal. Si vous utilisez CloudWatch les journaux comme destination des journaux et que vous activez `DEBUG` ou `TRACE` nivelez la journalisation de manière dynamique, Amazon MSK peut fournir en permanence un échantillon de journaux. Cela peut avoir un impact significatif sur les performances de l'agent et ne doit être utilisé que lorsque le niveau de journalisation `INFO` n'est pas suffisamment détaillé pour déterminer la cause première d'un problème.

# Enregistrez les appels d'API avec AWS CloudTrail
<a name="logging-API-using-cloudtrail"></a>



**Note**  
AWS CloudTrail les journaux ne sont disponibles pour Amazon MSK que lorsque vous les utilisez[Contrôle d'accès IAM](iam-access-control.md).

Amazon MSK est intégré à AWS CloudTrail un service qui fournit un enregistrement des actions entreprises par un utilisateur, un rôle ou un AWS service dans Amazon MSK. CloudTrail capture les appels d'API sous forme d'événements. Ces captures incluent les appels de la console Amazon MSK et les appels de code vers les opérations d'API Amazon MSK. Il capture également les actions Apache Kafka telles que la création et la modification de rubriques et de groupes.

Si vous créez un suivi, vous pouvez activer la diffusion continue d' CloudTrail événements vers un compartiment Amazon S3, y compris des événements pour Amazon MSK. Si vous ne configurez pas de suivi, vous pouvez toujours consulter les événements les plus récents dans la CloudTrail console dans **Historique des événements**. À l'aide des informations collectées par CloudTrail, vous pouvez déterminer la demande envoyée à Amazon MSK ou l'action Apache Kafka, l'adresse IP à partir de laquelle la demande a été faite, l'auteur de la demande, la date à laquelle elle a été faite, ainsi que des informations supplémentaires. 

Pour en savoir plus CloudTrail, notamment comment le configurer et l'activer, consultez le [guide de AWS CloudTrail l'utilisateur](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/).

## Informations Amazon MSK dans CloudTrail
<a name="msk-info-in-cloudtrail"></a>

CloudTrail est activé sur votre compte Amazon Web Services lorsque vous créez le compte. Lorsqu'une activité événementielle prise en charge se produit dans un cluster MSK, cette activité est enregistrée dans un CloudTrail événement avec d'autres événements de AWS service dans **l'historique** des événements. Vous pouvez afficher, rechercher et télécharger les événements récents dans votre compte Amazon Web Services. Pour plus d’informations, consultez [Affichage des événements avec l’historique des événements CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html). 

Pour un enregistrement continu des événements dans votre compte Amazon Web Services, y compris les événements pour Amazon MSK, créez un journal d'activité. Un *suivi* permet CloudTrail de fournir des fichiers journaux à un compartiment Amazon S3. Par défaut, lorsque vous créez un journal de suivi dans la console, il s’applique à toutes les régions . Le journal de suivi consigne les événements de toutes les régions dans la partition AWS , et il livre les fichiers journaux dans le compartiment Amazon S3 de votre choix. En outre, vous pouvez configurer d'autres services Amazon pour analyser plus en détail les données d'événements collectées dans les CloudTrail journaux et agir en conséquence. Pour plus d’informations, consultez les ressources suivantes : 
+ [Vue d’ensemble de la création d’un journal d’activité](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)
+ [CloudTrail Services et intégrations pris en charge](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-aws-service-specific-topics.html#cloudtrail-aws-service-specific-topics-integrations)
+ [Configuration des notifications Amazon SNS pour CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/getting_notifications_top_level.html)
+ [Réception de fichiers CloudTrail journaux de plusieurs régions](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/receive-cloudtrail-log-files-from-multiple-regions.html) et [réception de fichiers CloudTrail journaux de plusieurs comptes](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-receive-logs-from-multiple-accounts.html)

Amazon MSK enregistre toutes les [opérations Amazon MSK sous forme d'](https://docs.aws.amazon.com/MSK/2.0/APIReference/operations.html)événements dans des fichiers CloudTrail journaux. En outre, il journalise les actions Apache Kafka suivantes.
+ cluster Kafka : DescribeClusterDynamicConfiguration 
+ cluster Kafka : AlterClusterDynamicConfiguration 
+ cluster Kafka : CreateTopic 
+ cluster Kafka : DescribeTopicDynamicConfiguration 
+ cluster Kafka : AlterTopic 
+ cluster Kafka : AlterTopicDynamicConfiguration 
+ cluster Kafka : DeleteTopic

Chaque événement ou entrée de journal contient des informations sur la personne ayant initié la demande. Les informations relatives à l’identité permettent de déterminer les éléments suivants : 
+ Si la demande a été faite avec les informations d'identification de l'utilisateur root ou de l'utilisateur Gestion des identités et des accès AWS (IAM).
+ Si la demande a été effectuée avec les informations d’identification de sécurité temporaires d’un rôle ou d’un utilisateur fédéré.
+ Si la demande a été faite par un autre AWS service.

Pour plus d’informations, consultez la section [Élément userIdentity CloudTrail ](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html).

## Exemple : entrées du fichier journal Amazon MSK
<a name="understanding-msk-entries"></a>

Un suivi est une configuration qui permet de transmettre des événements sous forme de fichiers journaux à un compartiment Amazon S3 que vous spécifiez. CloudTrail les fichiers journaux contiennent une ou plusieurs entrées de journal. Un événement représente une demande unique provenant de n'importe quelle source et inclut des informations sur l'action demandée, la date et l'heure de l'action, les paramètres de la demande, etc. CloudTrail les fichiers journaux ne constituent pas une trace ordonnée des appels d'API publics et des actions Apache Kafka. Ils n'apparaissent donc pas dans un ordre spécifique.

L'exemple suivant montre des entrées de CloudTrail journal illustrant les actions `DescribeCluster` et `DeleteCluster` Amazon MSK.

```
{
  "Records": [
    {
      "eventVersion": "1.05",
      "userIdentity": {
        "type": "IAMUser",
        "principalId": "ABCDEF0123456789ABCDE",
        "arn": "arn:aws:iam::012345678901:user/Joe",
        "accountId": "012345678901",
        "accessKeyId": "AIDACKCEVSQ6C2EXAMPLE",
        "userName": "Joe"
      },
      "eventTime": "2018-12-12T02:29:24Z",
      "eventSource": "kafka.amazonaws.com",
      "eventName": "DescribeCluster",
      "awsRegion": "us-east-1",
      "sourceIPAddress": "192.0.2.0",
      "userAgent": "aws-cli/1.14.67 Python/3.6.0 Windows/10 botocore/1.9.20",
      "requestParameters": {
        "clusterArn": "arn%3Aaws%3Akafka%3Aus-east-1%3A012345678901%3Acluster%2Fexamplecluster%2F01234567-abcd-0123-abcd-abcd0123efa-2"
      },
      "responseElements": null,
      "requestID": "bd83f636-fdb5-abcd-0123-157e2fbf2bde",
      "eventID": "60052aba-0123-4511-bcde-3e18dbd42aa4",
      "readOnly": true,
      "eventType": "AwsApiCall",
      "recipientAccountId": "012345678901"
    },
    {
      "eventVersion": "1.05",
      "userIdentity": {
        "type": "IAMUser",
        "principalId": "ABCDEF0123456789ABCDE",
        "arn": "arn:aws:iam::012345678901:user/Joe",
        "accountId": "012345678901",
        "accessKeyId": "AIDACKCEVSQ6C2EXAMPLE",
        "userName": "Joe"
      },
      "eventTime": "2018-12-12T02:29:40Z",
      "eventSource": "kafka.amazonaws.com",
      "eventName": "DeleteCluster",
      "awsRegion": "us-east-1",
      "sourceIPAddress": "192.0.2.0",
      "userAgent": "aws-cli/1.14.67 Python/3.6.0 Windows/10 botocore/1.9.20",
      "requestParameters": {
        "clusterArn": "arn%3Aaws%3Akafka%3Aus-east-1%3A012345678901%3Acluster%2Fexamplecluster%2F01234567-abcd-0123-abcd-abcd0123efa-2"
      },
      "responseElements": {
        "clusterArn": "arn:aws:kafka:us-east-1:012345678901:cluster/examplecluster/01234567-abcd-0123-abcd-abcd0123efa-2",
        "state": "DELETING"
      },
      "requestID": "c6bfb3f7-abcd-0123-afa5-293519897703",
      "eventID": "8a7f1fcf-0123-abcd-9bdb-1ebf0663a75c",
      "readOnly": false,
      "eventType": "AwsApiCall",
      "recipientAccountId": "012345678901"
    }
  ]
}
```

L'exemple suivant montre une entrée de CloudTrail journal illustrant l'`kafka-cluster:CreateTopic`action.

```
{
  "eventVersion": "1.08",
  "userIdentity": {
    "type": "IAMUser",
    "principalId": "ABCDEFGH1IJKLMN2P34Q5",
    "arn": "arn:aws:iam::111122223333:user/Admin",
    "accountId": "111122223333",
    "accessKeyId": "CDEFAB1C2UUUUU3AB4TT",
    "userName": "Admin"
  },
  "eventTime": "2021-03-01T12:51:19Z",
  "eventSource": "kafka-cluster.amazonaws.com",
  "eventName": "CreateTopic",
  "awsRegion": "us-east-1",
  "sourceIPAddress": "198.51.100.0/24",
  "userAgent": "aws-msk-iam-auth/unknown-version/aws-internal/3 aws-sdk-java/1.11.970 Linux/4.14.214-160.339.amzn2.x86_64 OpenJDK_64-Bit_Server_VM/25.272-b10 java/1.8.0_272 scala/2.12.8 vendor/Red_Hat,_Inc.",
  "requestParameters": {
    "kafkaAPI": "CreateTopics",
    "resourceARN": "arn:aws:kafka:us-east-1:111122223333:topic/IamAuthCluster/3ebafd8e-dae9-440d-85db-4ef52679674d-1/Topic9"
  },
  "responseElements": null,
  "requestID": "e7c5e49f-6aac-4c9a-a1d1-c2c46599f5e4",
  "eventID": "be1f93fd-4f14-4634-ab02-b5a79cb833d2",
  "readOnly": false,
  "eventType": "AwsApiCall",
  "managementEvent": true,
  "eventCategory": "Management",
  "recipientAccountId": "111122223333"
}
```