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 Rehydration.
Ce guide décrit la marche à suivre pour configurer une archive afin de transférer les logs ingérés vers un compartiment de votre solution de stockage dans le cloud :
Remarque : seuls les utilisateurs de Datadog bénéficiant de l'autorisation Logs Write Archive peuvent créer, modifier ou supprimer des configurations d’archivage de logs.
Si ce n’est pas déjà fait, configurez l'intégration AWS pour le compte AWS associé à votre compartiment S3.
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.
Si vous ne l’avez pas encore fait, configurez l'intégration GCP pour le projet qui comporte votre compartiment de stockage GCS. Vous devrez créer un compte de service GCS utilisable par Datadog afin de procéder à l’intégration.
Accédez à votre console AWS et créez un compartiment S3 vers lequel vos archives seront envoyées. Assurez-vous que votre compartiment n’est pas accessible au public.
Accédez à votre portail Azure et créez un compte de stockage vers lequel vous souhaitez envoyer vos archives. Attribuez un nom à votre compte, choisissez n’importe quel type de compte, puis sélectionnez le niveau d’accès hot.
Accédez à votre compte GCP 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 ».
Ajoutez les deux instructions d’autorisation suivantes aux stratégies IAM. Modifiez les noms de compartiment et, si vous le souhaitez, indiquez les chemins vers vos archives de logs.
Remarques :
GetObject
et ListBucket
permettent la réintégration des logs à partir des archives.PutObject
est suffisante pour l’importation d’archives.{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DatadogUploadAndRehydrateLogArchives",
"Effect": "Allow",
"Action": ["s3:PutObject", "s3:GetObject"],
"Resource": [
"arn:aws:s3:::<NOM_DU_BUCKET_1_/_CHEMIN_FACULTATIF_DU_BUCKET_1>/*",
"arn:aws:s3:::<NOM_DU_BUCKET_2_/_CHEMIN_FACULTATIF_DU_BUCKET_2>/*"
]
},
{
"Sid": "DatadogRehydrateLogArchivesListBucket",
"Effect": "Allow",
"Action": "s3:ListBucket",
"Resource": [
"arn:aws:s3:::<NOM_DU_BUCKET_1>",
"arn:aws:s3:::<NOM_DU_BUCKET_2>"
]
}
]
}
Accordez à votre compte de service GCP Datadog les autorisations nécessaires pour écrire vos archives dans votre compartiment.
Ajoutez les rôles Storage Object Creator (pour la création d’archives) et Storage Object Viewer (pour la réintégration depuis des archives) sous Storage.
Accédez à la page Archives dans Datadog et sélectionnez l’option Add a new archive en bas de la page.
Seuls les utilisateurs de Datadog bénéficiant de l'autorisation Logs Write Archive peuvent effectuer cette étape ainsi que la suivante.
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é.
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 de vos archives de logs sera envoyé.
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é.
Par défaut :
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 :
Utilisez cette étape de configuration facultative pour :
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 fonction Rehydration prend en charge toutes les classes de stockage à l’exception de Glacier et de Glacier Deep Archive. Si vous souhaitez réintégrer des logs depuis des archives stockées dans les classes de stockage Glacier ou Glacier Deep Archive, vous devez d’abord le transférer vers une autre classe de stockage.
La méthode la plus simple pour ajouter le chiffrement côté serveur à vos archives de logs S3 consiste à utiliser le chiffrement natif côté serveur d’Amazon S3, SSE-S3.
Pour l’activer, accédez à l’onglet Properties dans votre compartiment S3 et sélectionnez Default Encryption. Sélectionnez l’option AES-256
, puis cliquez sur Save.
Datadog prend également en charge le chiffrement côté serveur à l’aide d’un CMK d'AWS KMS. Pour l’activer, suivez les étapes ci-dessous :
{
"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"
}
}
}
]
}
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. Les logs sont importés vers les archives toutes les 15 minutes. Par conséquent attendez au moins 15 minutes avant de vérifier que les archives sont bien importées vers votre compartiment de stockage depuis votre compte Datadog. Si l’archive est toujours en attente passé ce délai, nous vous conseillons de vérifier vos filtres d’inclusion pour vous assurer que la requête est valide et renvoie les événements de logs dans Live Tail.
Si Datadog détecte un problème de configuration, l’archive correspondante est mise en évidence dans la page de configuration. Cliquez sur l’icône d’erreur pour voir les mesures que vous devez prendre pour corriger ce problème.
Si plusieurs archives sont définies, les logs sont envoyés dans la première archive filtrée à laquelle ils correspondent. Il est donc important d’organiser minutieusement 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.
Les archives de logs que Datadog transmet à votre compartiment de stockage sont au format JSON compressé (.json.gz
). Les archives sont stockées sous 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" ]
}
Remarque : l’ajout de tags dans les archives est une fonctionnalité que vous devez activer. Pour l’activer pour une archive, consultez la section Tags Datadog.
Découvrez ensuite comment accéder au contenu de vos logs archivés depuis Datadog :
Documentation, liens et articles supplémentaires utiles: