Acheminer des logs dans un format réintégrable à Datadog vers Amazon S3

La destination Archives Datadog des pipelines d'observabilité est en version bêta.

Présentation

La destination Archives Datadog des pipelines d’observabilité convertit les logs dans un format réintégrable à Datadog avant leur acheminement vers les archives de logs. Ces logs ne sont pas ingérés dans Datadog mais sont acheminés directement vers l’archive. Vous pouvez ensuite réintégrer cette dernière dans Datadog lorsque vous avez besoin d’analyser et d’étudier les logs. datadog_archives est disponible à partir de la version 1.5 du worker de pipelines d’observabilité.

Configurer une archive de logs

Créer un compartiment Amazon S3

Consultez la tarification AWS pour connaître les frais de transfert de données entre régions et déterminer l’impact éventuel sur vos frais de stockage dans le cloud.

  1. Accédez aux compartiments Amazon S3.
  2. Cliquez sur Create bucket.
  3. Saisissez un nom décrivant votre compartiment.
  4. Assurez-vous que votre compartiment n’est pas accessible au public.
  5. Si besoin, ajoutez des tags.
  6. Cliquez sur Create bucket.

Configurer une stratégie IAM permettant aux workers d’écrire dans le compartiment S3

  1. Accédez à la console IAM.
  2. Sélectionnez Policies dans le menu latéral gauche.
  3. Cliquez sur Create policy.
  4. Cliquez sur JSON dans la section Specify permissions.
  5. Copiez la stratégie ci-dessous et collez-la dans le Policy editor. Remplacez <NOM_DE_MON_COMPARTIMENT> et <NOM_DE_MON_COMPARTIMENT_1_/_CHEMIN_FACULTATIF_DE_MON_COMPARTIMENT_1> par les informations du compartiment S3 créé précédemment.
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "DatadogUploadAndRehydrateLogArchives",
                "Effect": "Allow",
                "Action": ["s3:PutObject", "s3:GetObject"],
                "Resource": "arn:aws:s3:::<NOM_DE_MON_COMPARTIMENT_1_/_CHEMIN_FACULTATIF_DE_MON_COMPARTIMENT_1>/*"
            },
            {
                "Sid": "DatadogRehydrateLogArchivesListBucket",
                "Effect": "Allow",
                "Action": "s3:ListBucket",
                "Resource": "arn:aws:s3:::<NOM_DE_MON_COMPARTIMENT>"
            }
        ]
    }
  6. Cliquez sur Next.
  7. Saisissez un nom décrivant la stratégie.
  8. Si besoin, ajoutez des tags.
  9. Cliquez sur Create policy.

Créer un utilisateur IAM

Créez un utilisateur IAM et associez-lui la stratégie IAM créée précédemment.

  1. Accédez à la console IAM.
  2. Sélectionnez Users dans le menu latéral gauche.
  3. Cliquez sur Create user.
  4. Saisissez un nom d’utilisateur.
  5. Cliquez sur Next.
  6. Sélectionnez Attach policies directly.
  7. Choisissez la stratégie IAM créée précédemment à associer au nouvel utilisateur IAM.
  8. Cliquez sur Next.
  9. Si besoin, ajoutez des tags.
  10. Cliquez sur Create user.

Créez des identifiants d’accès pour le nouvel utilisateur IAM. Enregistrez-les sous AWS_ACCESS_KEY et AWS_SECRET_ACCESS_KEY.

Créer un compte de service

Créez un compte de service pour utiliser la stratégie créée ci-dessus. Dans la configuration Helm, remplacez ${DD_ARCHIVES_SERVICE_ACCOUNT} par le nom du compte de service.

Créer un utilisateur IAM

Créez un utilisateur IAM et associez-lui la stratégie IAM créée précédemment.

  1. Accédez à la console IAM.
  2. Sélectionnez Users dans le menu latéral gauche.
  3. Cliquez sur Create user.
  4. Saisissez un nom d’utilisateur.
  5. Cliquez sur Next.
  6. Sélectionnez Attach policies directly.
  7. Choisissez la stratégie IAM créée précédemment à associer au nouvel utilisateur IAM.
  8. Cliquez sur Next.
  9. Si besoin, ajoutez des tags.
  10. Cliquez sur Create user.

Créez des identifiants d’accès pour le nouvel utilisateur IAM. Enregistrez-les sous AWS_ACCESS_KEY et AWS_SECRET_ACCESS_KEY.

Créer un utilisateur IAM

Créez un utilisateur IAM et associez-lui la stratégie IAM créée précédemment.

  1. Accédez à la console IAM.
  2. Sélectionnez Users dans le menu latéral gauche.
  3. Cliquez sur Create user.
  4. Saisissez un nom d’utilisateur.
  5. Cliquez sur Next.
  6. Sélectionnez Attach policies directly.
  7. Choisissez la stratégie IAM créée précédemment à associer au nouvel utilisateur IAM.
  8. Cliquez sur Next.
  9. Si besoin, ajoutez des tags.
  10. Cliquez sur Create user.

Créez des identifiants d’accès pour le nouvel utilisateur IAM. Enregistrez-les sous AWS_ACCESS_KEY et AWS_SECRET_ACCESS_KEY.

Associer la stratégie au profil d’instance IAM

Associez la stratégie au profil d’instance IAM créé avec Terraform, qui est indiqué dans la sortie iam-role-name.

Connecter le compartiment S3 aux archives de logs Datadog

  1. Accédez à la page Log Forwarding de Datadog.
  2. Cliquez sur Add a new archive.
  3. Saisissez un nom décrivant l’archive.
  4. Ajoutez une requête excluant tous les logs traités par les pipelines de logs afin qu’ils ne soient pas intégrés à cette archive. Par exemple, ajoutez la requête observability_pipelines_read_only_archive, en supposant que ce tag n’ait pas été ajouté aux logs traités par le pipeline.
  5. Sélectionnez AWS S3.
  6. Sélectionnez le compte AWS dans lequel se trouve votre compartiment.
  7. Saisissez le nom du compartiment S3.
  8. Si besoin, saisissez un chemin.
  9. Vérifiez la déclaration de confirmation.
  10. Si besoin, ajoutez des tags et définissez la taille d’analyse maximale pour la réintégration. Consultez la rubrique Paramètres avancés pour en savoir plus.
  11. Cliquez sur Save.

Consultez la documentation relative aux archives de logs pour en savoir plus.

Configurer la destination Archives Datadog

Vous pouvez configurer la destination datadog_archives à l’aide du fichier de configuration ou à l’aide de l’interface utilisateur de création de pipeline.

Si des logs qui ne proviennent pas de l'Agent Datadog sont ingérés par le worker et acheminés vers la destination Archives Datadog, ils ne seront pas tagués avec les attributs réservés. Cela signifie que vous perdrez la télémétrie Datadog et les avantages du tagging de service unifié. Supposons, par exemple, que vos logs Syslog soient envoyés à la destination datadog_archives et qu'ils présentent le tag de statut severity au lieu de l'attribut réservé status et le tag de host hostname au lieu de l'attribut réservé hostname. Lors de leur réintégration dans Datadog, l'attribut status de tous ces logs sera défini sur info et aucun d'eux ne possédera de tag de hostname.

Fichier de configuration

Pour les déploiements manuels, le fichier d’exemple de configuration de pipelines pour Datadog inclut un récepteur pour l’envoi des logs à Amazon S3 dans un format réintégrable à Datadog.

Dans le fichier d’exemple de configuration de pipelines, remplacez AWS_ACCESS_KEY_ID et AWS_SECRET_ACCESS_KEY par les identifiants AWS créés précédemment.

Dans le fichier d’exemple de configuration de pipelines, remplacez AWS_ACCESS_KEY_ID et AWS_SECRET_ACCESS_KEY par les identifiants AWS créés précédemment.

Dans le fichier d’exemple de configuration de pipelines, remplacez AWS_ACCESS_KEY_ID et AWS_SECRET_ACCESS_KEY par les identifiants AWS créés précédemment.

Dans le fichier d’exemple de configuration de pipelines, remplacez AWS_ACCESS_KEY_ID et AWS_SECRET_ACCESS_KEY par les identifiants AWS créés précédemment.

Remplacez les paramètres ${DD_ARCHIVES_BUCKET} et ${DD_ARCHIVES_REGION} en fonction de la configuration de votre compartiment S3.

Interface utilisateur de création de pipeline

  1. Accédez à votre pipeline.
  2. (Facultatif) Ajoutez une transformation de remappage pour taguer tous les logs envoyés à la destination datadog_archives.
    a. Cliquez sur Edit puis sur Add More dans le carré Add Transforms.
    b. Cliquez sur le carré Remap.
    c. Saisissez un nom décrivant le composant.
    d. Dans le champ Inputs, sélectionnez la source à connecter à cette destination.
    e. Ajoutez .sender = "observability_pipelines_worker" dans la section Source.
    f. Cliquez sur Save.
    g. Revenez à votre pipeline.
  3. Cliquez sur Edit.
  4. Cliquez sur Add More dans le carré Add Destination.
  5. Cliquez sur le carré Datadog Archives.
  6. Saisissez un nom décrivant le composant.
  7. Sélectionnez les sources ou les transformations à connecter à cette destination.
  1. Dans le champ Bucket, saisissez le nom du compartiment S3 créé précédemment.
  2. Saisissez aws_s3 dans le champ Service.
  3. Activez AWS S3 pour activer ces options de configuration spécifiques.
  4. Dans le champ Storage Class, sélectionnez la classe de stockage dans le menu déroulant.
  5. Définissez les autres options de configuration en fonction de vos besoins.
  6. Cliquez sur Save.
  1. Dans le champ Bucket, saisissez le nom du compartiment S3 créé précédemment.
  2. Saisissez azure_blob dans le champ Service.
  3. Activez Azure Blob pour activer ces options de configuration spécifiques.
  4. Saisissez la chaîne de connexion au compte Stockage Blob Azure.
  5. Définissez les autres options de configuration en fonction de vos besoins.
  6. Cliquez sur Save.
  1. Dans le champ Bucket, saisissez le nom du compartiment S3 créé précédemment.
  2. Saisissez gcp_cloud_storage dans le champ Service.
  3. Activez GCP Cloud Storage pour activer ces options de configuration spécifiques.
  4. Définissez les options de configuration en fonction de vos besoins.
  5. Cliquez sur Save.

Si vous utilisez la configuration à distance, déployez la modification dans votre pipeline par le biais de l’interface utilisateur. Dans le cas d’une configuration manuelle, téléchargez la configuration mise à jour et redémarrez le worker.

Consultez la documentation de référence relative aux archives Datadog pour en savoir plus sur l’ensemble des options de configuration.

Réintégrer votre archive

Consultez la rubrique Réintégration à partir des archives pour savoir comment réintégrer votre archive dans Datadog afin de pouvoir commencer à analyser et étudier ces logs.

Pour aller plus loin