Skip to main content
🔐 N’envoyez pas d’informations personnelles identifiables (PII) à AppSignal. Filtrez les PII (par exemple, noms, e-mails) des journaux et utilisez un identifiant, un hash ou un identifiant pseudonymisé à la place.

Pour les entités couvertes par la HIPAA, plus d’informations sur la signature d’un Business Associate Agreement (BAA) sont disponibles dans notre documentation Business Add-Ons.
Suivez les étapes ci-dessous pour envoyer les logs CloudWatch à AppSignal via Amazon Data Firehose (anciennement Kinesis Data Firehose) :
  1. Créer une source de log
  2. Configurer un bucket S3 pour les livraisons échouées
  3. Configurer un rôle IAM pour Data Firehose
  4. Créer un flux de livraison Firehose
  5. Configurer un rôle IAM pour CloudWatch
  6. Créer un abonnement de log CloudWatch
Avant de commencer, préparez les informations suivantes :
  • La clé API de votre source de log. Si vous n’avez pas encore de source de log, créez d’abord une nouvelle source de log.
  • ID de compte AWS
  • Région AWS
  • Nom du bucket S3 pour le stockage des livraisons échouées
  • Nom du flux Data Firehose
  • Nom du rôle IAM pour le bucket S3
  • Nom du rôle IAM pour l’abonnement CloudWatch

Créer une source de log

Créez une source de log avant de continuer. Voir Configuration du logging pour les instructions.

Configurer un bucket S3 pour les livraisons échouées

Amazon Data Firehose nécessite un bucket S3 pour stocker les enregistrements dont la livraison échoue. Créez un bucket S3 via la console AWS ou la CLI avant de continuer, vous ne pouvez pas créer de flux de livraison Firehose sans bucket.

Configurer un rôle IAM pour Data Firehose

Créez un rôle IAM qui permet à Data Firehose d’écrire dans le bucket S3 et, en option, dans CloudWatch Logs pour la journalisation des erreurs de livraison. Utilisez la politique d’approbation suivante :
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "firehose.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
Attribuez la politique d’autorisations suivante au rôle en tant que politique inline.
Consultez Adding IAM identity permissions pour les instructions sur la création de politiques inline pour les rôles IAM.
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:AbortMultipartUpload",
        "s3:GetBucketLocation",
        "s3:GetObject",
        "s3:ListBucket",
        "s3:ListBucketMultipartUploads",
        "s3:PutObject"
      ],
      "Resource": [
        "arn:aws:s3:::<FIREHOSE_S3_BUCKET>",
        "arn:aws:s3:::<FIREHOSE_S3_BUCKET>/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": ["logs:PutLogEvents"],
      "Resource": [
        "arn:aws:logs:<AWS_REGION>:<AWS_ACCOUNT_ID>:log-group:<FIREHOSE_LOG_GROUP>:*"
      ]
    }
  ]
}
Remplacez les valeurs de remplacement par les vôtres :
  • <AWS_ACCOUNT_ID> — votre ID de compte AWS.
  • <AWS_REGION> — la région dans laquelle votre flux Firehose s’exécutera.
  • <FIREHOSE_S3_BUCKET> — le bucket S3 que vous avez créé à l’étape précédente.
  • <FIREHOSE_LOG_GROUP> — le log group que Firehose utilise pour ses propres logs d’erreurs de livraison (distinct du log group que vous voulez diffuser vers AppSignal). AWS utilise la convention /aws/kinesisfirehose/<FIREHOSE_STREAM_NAME>, alors décidez du nom de votre flux Firehose dès maintenant — vous le réutiliserez à l’étape suivante. Si vous ne prévoyez pas d’activer la journalisation des erreurs sur le flux Firehose, vous pouvez omettre entièrement l’instruction logs:PutLogEvents.
Consultez Controlling access with Amazon Data Firehose pour plus d’informations sur les autorisations dont Data Firehose a besoin.

Créer un flux de livraison Firehose

  1. Ouvrez la console Amazon Data Firehose et sélectionnez Create Firehose stream.
  2. Sélectionnez Direct PUT comme source.
  3. Sélectionnez HTTP Endpoint comme destination.
  4. Sous « Transform records », laissez la transformation de données désactivée.
  5. Entrez l’URL suivante comme HTTP endpoint URL :
https://appsignal-endpoint.net/logs/aws-kinesis
  1. Entrez la clé API de votre source de log AppSignal obtenue lors de la création d’une source de log comme Access key. Il s’agit d’une clé AppSignal, et non d’une clé d’accès AWS.
  2. Sous « Content encoding », activez GZIP.
  3. Sous « Backup settings », sélectionnez le bucket S3 que vous avez créé à l’étape précédente.
  4. Sous « Advanced settings > Service access », sélectionnez Choose existing IAM role et choisissez le rôle IAM que vous avez créé à l’étape précédente.
  5. (Facultatif) Sous « Advanced settings > Amazon CloudWatch error logging », activez la journalisation des erreurs pour utiliser l’autorisation logs:PutLogEvents que vous avez accordée à l’étape précédente.
  6. Utilisez le même nom de flux Firehose que vous avez référencé lors de la configuration du rôle IAM, puis sélectionnez Create Firehose stream.
Pour vérifier la connexion, vous pouvez utiliser le bouton Test with demo data dans la console Firehose. Les charges utiles JSON de cotations boursières qu’il envoie apparaissent dans AppSignal sous Logging sous forme de lignes de log individuelles — une vérification de bout en bout utile avant de raccorder de vrais log groups. Vous pouvez également observer DeliveryToHttpEndpoint.Success augmenter dans l’onglet Monitoring du flux Firehose.

Configurer un rôle IAM pour CloudWatch

Créez un rôle IAM qui permet à CloudWatch d’envoyer les logs au flux de livraison Firehose. Utilisez la politique d’approbation suivante :
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": { "Service": "logs.<AWS_REGION>.amazonaws.com" },
      "Action": "sts:AssumeRole"
    }
  ]
}
Attribuez la politique d’autorisations suivante au rôle en tant que politique inline.
Consultez Adding IAM identity permissions pour les instructions sur la création de politiques inline pour les rôles IAM.
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["firehose:*"],
      "Resource": [
        "arn:aws:firehose:<AWS_REGION>:<AWS_ACCOUNT_ID>:deliverystream/<FIREHOSE_DELIVERY_STREAM>"
      ]
    }
  ]
}
Remplacez <AWS_REGION>, <AWS_ACCOUNT_ID> et <FIREHOSE_DELIVERY_STREAM> par vos propres valeurs.

Créer un abonnement de log CloudWatch

  1. Dans la console CloudWatch, accédez au log group dont vous souhaitez diffuser les logs.
  2. Ouvrez l’onglet Subscription filters.
  3. Sélectionnez Create Amazon Data Firehose subscription filter.
  4. Choisissez le flux de livraison Firehose de l’étape 4 et le rôle IAM de l’étape 5.
  5. Entrez un Subscription filter name et sélectionnez Start streaming.
Après avoir enregistré l’abonnement, les logs apparaissent dans AppSignal sous la source de log que vous avez configurée ci-dessus. Si vous voyez une erreur lors de l’enregistrement de l’abonnement, vérifiez que le rôle IAM de l’étape 5 utilise la bonne région, le bon ID de compte et le bon nom de flux de livraison. Si les logs n’apparaissent pas dans AppSignal :
  • Ouvrez l’onglet Monitoring de votre flux Firehose et vérifiez DeliveryToHttpEndpoint.Success. La valeur devrait rester proche de 1 ; une baisse ou une valeur nulle indique qu’AppSignal rejette les enregistrements.
  • Vérifiez le bucket S3 des échecs de l’étape 2. Les enregistrements échoués y arrivent, et chaque objet contient la raison du rejet.
  • Si les enregistrements échouent avec une erreur d’autorisation, vérifiez que l’Access key du flux Firehose correspond à la clé API de votre source de log AppSignal.
Si vous êtes toujours bloqué, contactez-nous pour obtenir de l’aide.