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 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 :
- Si vous ne l’avez pas déjà fait, configurer une intégration Datadog pour votre fournisseur de cloud
- Créer un compartiment de stockage
- Définir les autorisations
read
et/ou write
pour cette archive - Transmettre vos logs vers et depuis cette archive
- Configurer les paramètres avancés comme le chiffrement, la classe de stockage et les tags
- Valider votre configuration en recherchant d’éventuels problèmes de configuration que Datadog peut détecter pour vous
Remarque : 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.
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.
Créer un compartiment de stockage
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.
- Ne définissez pas le verrouillage des objets, 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 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.
- 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 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.
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
Créez une stratégie avec les deux 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>"
]
}
]
}
Modifiez le nom des compartiments.
Vous pouvez également spécifier les chemins vers vos archives de logs.
Associez la nouvelle stratégie au rôle de l’intégration Datadog.
a. Accédez à Roles depuis la console IAM d’AWS.
b. 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.
c. Cliquez sur Add permissions, puis sur Attach policies.
d. Saisissez le nom de la stratégie créée précédemment.
e. Cliquez sur Attach policies.
Remarque : 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.
- Autorisez l’application Datadog à écrire dans votre compte de stockage et effectuer une réintégration à partir de celui-ci.
- Sélectionnez votre compte de stockage depuis la page Storage Accounts, accédez à Access Control (IAM) et sélectionnez Add -> Add Role Assignment.
- 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.
Autorisez votre compte de service GCP Datadog à écrire vos archives dans votre compartiment.
Ajoutez le rôle Storage Object Admin sous Storage.
Transmettre vos logs vers un compartiment
Accédez à la page Archives dans l’application Datadog et sélectionnez l’option Add a new archive en bas de la page.
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.
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 du contenu 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é.
Paramètres avancés
Autorisations Datadog
Par défaut :
- Tous les utilisateurs admin Datadog peuvent créer, modifier et réorganiser des archives (voir la section Configurer plusieurs archives.
- 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 :
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.
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.
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 des logs prend en charge toutes les classes de stockage, à l’exception de Glacier et de Glacier Deep Archive (Glacier Instant Retrieval est compatible). 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 les transférer vers une autre classe de stockage.
Chiffrement côté serveur (SSE)
SSE-S3
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.
SSE-KMS
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 :
- Créez votre CMK.
- 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"
}
}
}
]
}
- 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.
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. Les logs sont importés vers les archives toutes les 15 minutes. 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’archive 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.
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 afficher les mesures à prendre pour corriger ce problème.
Si plusieurs archives sont définies, les logs sont envoyés dans la première archive en fonction du filtre. Il est donc 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.
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
Découvrez ensuite comment accéder au contenu de vos logs archivés depuis Datadog :
Documentation, liens et articles supplémentaires utiles:
*Logging without Limits est une marque déposée de Datadog, Inc.