Présentation

Configurez votre compte Datadog de manière à transférer tous les logs ingérés, qu’ils soient indexés ou non, vers votre système de stockage dans le cloud. Conservez vos logs dans une solution d’archivage à long terme afin d’assurer leur conformité et leur auditabilité en cas d’incident grâce à la fonction de réintégration.

Onglet Archives de la page Log Forwarding

Accédez à la page Log Forwarding pour configurer une archive afin de transférer les logs ingérés vers un compartiment de votre solution de stockage dans le cloud.

  1. Si vous ne l’avez pas déjà fait, configurez une intégration Datadog pour votre fournisseur de cloud.
  2. Créez un compartiment de stockage.
  3. Définissez les autorisations read et/ou write pour cette archive.
  4. Transmettez vos logs vers et depuis cette archive.
  5. Configurez des paramètres avancés comme le chiffrement, la classe de stockage et les tags.
  6. Validez votre configuration en recherchant d’éventuels problèmes de configuration détectés par Datadog.

Configurer une archive

Configurer une intégration

La délégation des rôles AWS n'est pas prise en charge par le site gouvernemental Datadog. En effet, il nécessite l'utilisation de clés d'accès.

Si ce n’est pas déjà fait, configurez l’intégration AWS pour le compte AWS associé à votre compartiment S3.

  • En général, il est nécessaire de créer un rôle pouvant être utilisé par Datadog pour l’intégration à AWS S3.
  • Pour les comptes AWS GovCloud ou China uniquement, utilisez les clés d’accès comme alternative à la délégation de rôles.

Si vous ne l’avez pas encore fait, configurez l’intégration Azure pour l’abonnement associé à votre compte de stockage. Vous devrez créer une inscription d’application utilisable par Datadog afin de procéder à l’intégration.

Remarque : il n’est pas possible d’archiver des logs vers Azure ChinaCloud, GermanyCloud et GovCloud.

Si vous ne l’avez pas encore fait, configurez l’intégration Google Cloud pour le projet qui comporte votre compartiment de stockage GCS. Vous devrez créer un compte de service Google Cloud utilisable par Datadog afin de procéder à l’intégration.

Créer un compartiment de stockage

L'envoi de logs vers une archive s'effectue en dehors de l'environnement GovCloud Datadog, et échappe donc au contrôle de Datadog. Datadog ne saurait en aucun cas être tenu responsable des logs quittant l'environnement GovCloud Datadog. Cela inclut, sans toutefois s'y limiter, toutes les obligations ou exigences incombant à l'utilisateur au sujet du programme FedRAMP, des niveaux d'impact du Département de la Défense des États-Unis, de la Réglementation américaine sur le trafic d'armes au niveau international (ITAR), de la conformité relative aux exportations, de la résidence des données ou de toute autre réglementation applicable auxdits logs. (

Accédez à votre console AWS et créez un compartiment S3 vers lequel vos archives seront envoyées.

Remarques :

  • Assurez-vous que votre compartiment n’est pas accessible au public.
  • Pour les sites US1, US3 et US5, consultez les tarifs AWS pour découvrir les frais applicables aux transferts de données d’une région à une autre ainsi que l’incidence de tels transferts sur les coûts de votre stockage dans le cloud. Envisagez de créer votre compartiment de stockage dans la région us-east-1 afin de mieux gérer ces frais.
  • Accédez à votre portail Azure et créez un compte de stockage vers lequel vous souhaitez envoyer vos archives. Attribuez un nom à votre compte, sélectionnez les performances standard ou le type de compte payant Block blobs, puis sélectionnez le niveau d’accès hot ou cool.
  • Créez un service de conteneur dans ce compte de stockage. Prenez note du nom du conteneur, car vous devrez l’indiquer dans la page d’archive Datadog.

Remarque : ne définissez pas de stratégie d’immuabilité, car il arrive dans de rares cas (généralement après une expiration) que les dernières données doivent être réécrites.

Accédez à votre compte Google Cloud et créez un compartiment GCS vers lequel vos archives seront envoyées. Sous Choose how to control access to objects, sélectionnez Set object-level and bucket-level permissions.

Remarque : n’ajoutez pas de règle de conservation, car il arrive dans de rares cas (généralement après une expiration) que les dernières données doivent être réécrites.

Définir les autorisations

Seuls les utilisateurs Datadog bénéficiant de l’autorisation logs_write_archive peuvent créer, modifier ou supprimer des configurations d’archivage de logs.

  1. Créez une stratégie avec les instructions d’autorisation suivantes :

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "DatadogUploadAndRehydrateLogArchives",
          "Effect": "Allow",
          "Action": ["s3:PutObject", "s3:GetObject"],
          "Resource": [
            "arn:aws:s3:::<MY_BUCKET_NAME_1_/_MY_OPTIONAL_BUCKET_PATH_1>/*",
            "arn:aws:s3:::<MY_BUCKET_NAME_2_/_MY_OPTIONAL_BUCKET_PATH_2>/*"
          ]
        },
        {
          "Sid": "DatadogRehydrateLogArchivesListBucket",
          "Effect": "Allow",
          "Action": "s3:ListBucket",
          "Resource": [
            "arn:aws:s3:::<MY_BUCKET_NAME_1>",
            "arn:aws:s3:::<MY_BUCKET_NAME_2>"
          ]
        }
      ]
    }
    
    • Les autorisations GetObject et ListBucket permettent la réintégration des logs à partir des archives.
    • L’autorisation PutObject est suffisante pour l’importation d’archives.
    • Vérifiez que la valeur de ressource sous les actions s3:PutObject et s3:GetObject se termine par /*, car ces autorisations sont appliquées aux objets des compartiments.
  2. Modifiez le nom des compartiments.

  3. Vous pouvez également spécifier les chemins vers vos archives de logs.

  4. Associez la nouvelle stratégie au rôle de l’intégration Datadog.

    • Accédez à Roles depuis la console IAM d’AWS.
    • Repérez le rôle utilisé par l’intégration Datadog. Il est intitulé DatadogIntegrationRole par défaut, mais il est possible que votre organisation l’ait renommé. Cliquez sur le nom du rôle pour ouvrir une page de synthèse.
    • Cliquez sur Add permissions, puis sur Attach policies.
    • Saisissez le nom de la stratégie créée précédemment.
    • Cliquez sur Attach policies.
  1. Autorisez l’application Datadog à écrire dans votre compte de stockage et effectuer une réintégration à partir de celui-ci.
  2. Sélectionnez votre compte de stockage depuis la page Storage Accounts, accédez à Access Control (IAM) et sélectionnez Add -> Add Role Assignment.
  3. Ajoutez le rôle Storage Blob Data Contributor, sélectionnez l’application Datadog que vous avez créée pour l’intégration Azure, puis enregistrez.
Ajouter le rôle Storage Blob Data Contributor à votre application Datadog.
  1. Autorisez votre compte de service Google Cloud Datadog à écrire vos archives dans votre compartiment.

  2. Sélectionnez le service principal de votre compte de service Google Cloud Datadog à partir de la page d’administration Google Cloud IAM, puis sélectionnez Edit principal.

  3. Cliquez sur ADD ANOTHER ROLE, sélectionnez le rôle Storage Object Admin, puis enregistrez.

    Ajouter le rôle Storage Object Admin à votre compte de service Google Cloud Datadog

Transmettre vos logs vers un compartiment

Accédez à la page Log Forwarding, puis sélectionnez Add a new archive depuis l’onglet Archives.

Remarques :

  • Seuls les utilisateurs de Datadog bénéficiant de l’autorisation logs_write_archive peuvent effectuer cette étape ainsi que la suivante.
  • Pour archiver des logs dans Stockage Blob Azure, une inscription d’application est requise. Consultez les instructions disponibles à la section relative à l’intégration Azure et définissez le site en haut à droite de la page sur US. Les inscriptions d’application créées exclusivement à des fins d’archivage nécessitent le rôle Storage Blob Data Contributor. Si votre compartiment de stockage est inclus dans un abonnement surveillé via une ressource Datadog, un avertissement s’affiche pour vous prévenir que l’inscription d’application est superflue. Vous pouvez ignorer cet avertissement.
  • Si seules certaines adresses IP peuvent accéder au réseau au sein de votre compartiment, ajoutez les IP de webhook de la liste de plages d’IP à la liste d’autorisation.

Sélectionnez le compte AWS et le rôle appropriés pour votre compartiment S3.

Indiquez le nom de votre compartiment. Facultatif : ajoutez un répertoire comme préfixe vers lequel l’ensemble de vos archives de logs sera envoyé.

Définir les données de votre compartiment S3 dans Datadog

Sélectionnez le type d’archive Azure Storage, ainsi que le locataire et le client Azure pour l’application Datadog disposant du rôle Storage Blob Data Contributor sur votre compte de stockage.

Indiquez le nom de votre compte de stockage et un nom de conteneur pour votre archive. Facultatif : ajoutez un répertoire comme préfixe vers lequel l’ensemble du contenu de vos archives de logs sera envoyé.

Définir les données de votre compte de stockage Azure dans Datadog

Sélectionnez le type d’archive GCS, puis le compte de service GCS doté des autorisations d’écriture dans votre compte de stockage.

Indiquez le nom de votre compartiment. Facultatif : ajoutez un répertoire comme préfixe vers lequel l’ensemble de vos archives de logs sera envoyé.

Définir les données de votre compte de stockage Azure dans Datadog

Paramètres avancés

Autorisations Datadog

Par défaut :

  • Tous les utilisateurs Admin Datadog peuvent créer, modifier et réorganiser des archives. Consultez la rubrique Configurer plusieurs archives pour en savoir plus.
  • Tous les utilisateurs Admin et Standard Datadog peuvent réintégrer des logs à partir des archives.
  • Tous les utilisateurs, y compris les utilisateurs Read Only Datadog, peuvent accéder aux logs réintégrés.

Appliquez cette étape de configuration facultative pour attribuer des rôles sur cette archive et restreindre les utilisateurs qui peuvent effectuer les opérations suivantes :

Restreindre l'accès aux archives et aux logs réintégrés

Tags Datadog

Cette étape de configuration facultative vise à :

  • Inclure tous les tags de log dans vos archives (activé par défaut sur toutes les nouvelles archives). Remarque : ce paramètre augmente la taille des archives générées.
  • Ajouter des tags à vos logs réintégrés, conformément à vos requêtes de restriction. Voir l’autorisation logs_read_data.
Configurer les tags d'archive

Définir la taille maximale des analyses

Cette étape de configuration facultative vous permet de définir le volume maximal de données de log (en Go) à analyser pour la réintégration de vos archives de logs.

Lorsqu’une taille d’analyse maximale est définie, tous les utilisateurs doivent estimer la taille de l’analyse avant de pouvoir initier un processus de réintégration. Si la taille estimée de l’analyse dépasse la limite d’une archive, les utilisateurs doivent restreindre l’intervalle de réintégration, ce qui a pour effet de réduire la taille de l’analyse et d’initier la réintégration.

Définir la taille maximale d'analyse pour une archive

Règles de pare-feu

Les règles de pare-feu ne sont pas prises en charge.

Classe de stockage

Vous pouvez définir une configuration de cycle de vie sur votre compartiment S3 pour transférer automatiquement vos archives de logs vers les classes de stockage optimales.

La fonctionnalité de réintégration de logs prend uniquement en charge les classes de stockage suivantes :

  • S3 Standard
  • S3 Standard-IA
  • S3 One Zone-IA
  • S3 Glacier Instant Retrieval

Si vous souhaitez réintégrer des logs à partir d’archives dans une autre classe de stockage, vous devez au préalable les déplacer vers l’une des classes de stockage prises en charge, comme indiqué ci-dessus.

Les fonctionnalités d’archivage et de réintégration de logs prennent uniquement en charge les niveaux d’accès suivants :

  • Hot
  • Cool

Si vous souhaitez réintégrer des logs à partir d’archives dans un niveau d’accès, vous devez au préalable les déplacer vers l’un des niveaux d’accès pris en charge, comme indiqué ci-dessus.

Chiffrement côté serveur (SSE)

SSE-S3

Par défaut, les compartiments Amazon S3 sont chiffrés côté serveur avec des clés de gestion Amazon S3 (SSE-S3).

Pour vérifier si votre compartiment S3 est chiffré de cette manière, procédez comme suit :

  1. Accédez à votre compartiment S3.
  2. Cliquez sur l’onglet Properties.
  3. Depuis la section Default Encryption, vérifiez que l’option Encryption key type est définie sur Amazon S3 managed keys (SSE-S3).
SSE-KMS

Datadog prend également en charge le chiffrement côté serveur à l’aide d’une clé CMK AWS KMS. Pour l’activer, suivez les étapes ci-dessous :

  1. Créez votre CMK.
  2. Associez une stratégie CMK à votre CMK avec le contenu suivant, en remplaçant le numéro de compte AWS et le nom de rôle IAM Datadog de façon appropriée :
{
    "Id": "key-consolepolicy-3",
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Enable IAM User Permissions",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::<NUMÉRO_COMPTE_AWS>:root"
            },
            "Action": "kms:*",
            "Resource": "*"
        },
        {
            "Sid": "Allow use of the key",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::<NUMÉRO_COMPTE_AWS>:role/<NOM_RÔLE_IAM_DATADOG>"
            },
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*",
                "kms:DescribeKey"
            ],
            "Resource": "*"
        },
        {
            "Sid": "Allow attachment of persistent resources",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::<NUMÉRO_COMPTE_AWS>:role/<NOM_RÔLE_IAM_DATADOG>"
            },
            "Action": [
                "kms:CreateGrant",
                "kms:ListGrants",
                "kms:RevokeGrant"
            ],
            "Resource": "*",
            "Condition": {
                "Bool": {
                    "kms:GrantIsForAWSResource": "true"
                }
            }
        }
    ]
}
  1. Accédez à l’onglet Properties dans votre compartiment S3 et sélectionnez Default Encryption. Choisissez l’option “AWS-KMS”, sélectionnez l’ARN de votre CMK et cliquez sur Save.

Si vous souhaitez apporter des modifications à des clés KSM existantes, contactez l’assistance Datadog afin d’obtenir de l’aide.

Validation

Dès que vos paramètres d’archivage ont été correctement configurés sur votre compte Datadog, vos pipelines de traitement commencent à enrichir tous les logs ingérés par Datadog. Ceux-ci sont ensuite transmis à votre archive.

Une fois vos paramètres d’archivage créés ou modifiés, il est parfois nécessaire d’attendre quelques minutes avant la prochaine tentative d’importation des archives. La fréquence d’importation des archives peut varier. Par conséquent, attendez 15 minutes avant de vérifier que les archives sont bien importées vers votre compartiment de stockage depuis votre compte Datadog.

Si l’archivage est toujours en attente passé ce délai, vérifiez vos filtres d’inclusion pour vous assurer que la requête est valide et qu’elle renvoie les événements de log dans la vue Live Tail. Lorsque Datadog ne parvient à importer des logs vers une archive externe, en raison d’un changement involontaire des paramètres ou autorisations, l’archive de logs correspondante est mise en avant sur la page de configuration.

Vérifier que vos archives sont correctement configurées

Passez votre curseur sur l’archive pour afficher les détails de l’erreur, ainsi que les opérations à effectuer pour résoudre le problème. Un événement est également généré dans l’Events Explorer. Vous pouvez créer un monitor pour ces événements, afin de détecter et de corriger rapidement ces échecs.

Configurer plusieurs archives

Si vous avez défini plusieurs archives, les logs intègrent la première archive, en fonction du filtre appliqué.

Les logs sont envoyés dans la première archive filtrée à laquelle ils correspondent.

Il est important de définir minutieusement l’ordre de vos archives. Par exemple, si vous créez une première archive filtrée sur le tag env:prod et une deuxième archive sans filtre (l’équivalent de *), tous vos logs de production seront envoyés dans le premier chemin/compartiment de stockage et tout le reste ira dans l’autre.

Format des archives

Les archives de logs que Datadog transmet à votre compartiment de stockage sont au format JSON compressé (.json.gz). Les archives sont stockées avec le préfixe que vous avez indiqué (ou dans / si aucun préfixe n’a été défini), selon une structure de répertoire qui indique à quelle date et à quelle heure les fichiers d’archives ont été générés. La structure est la suivante :

/mon/compartiment/préfixe/dt=20180515/hour=14/archive_143201.1234.7dq1a9mnSya3bFotoErfxl.json.gz
/mon/compartiment/préfixe/dt=<AAAAMMJJ>/hour=<HH>/archive_<HHmmss.SSSS>.<ID_DATADOG>.json.gz

Cette structure de répertoire vous permet d’interroger plus facilement vos archives de logs en fonction de leur date.

À l’intérieur du fichier JSON compressé, le contenu de chaque événement est formaté comme suit :

{
    "_id": "123456789abcdefg",
    "date": "2018-05-15T14:31:16.003Z",
    "host": "i-12345abced6789efg",
    "source": "source_name",
    "service": "service_name",
    "status": "status_level",
    "message": "2018-05-15T14:31:16.003Z INFO rid='acb-123' status=403 method=PUT",
    "attributes": { "rid": "abc-123", "http": { "status_code": 403, "method": "PUT" } },
    "tags": [ "env:prod", "team:acme" ]
}

Pour aller plus loin


*Logging without Limits est une marque déposée de Datadog, Inc.