Configura tu cuenta de Datadog para reenviar todos los logs ingestados (ya sea que esté indexado o no) a un sistema de almacenamiento en la nube de tu propiedad. Conserva tus logs en un archivo optimizado para el almacenamiento durante más tiempo y cumple los requisitos de conformidad, al tiempo que mantienes la auditabilidad para investigaciones ad hoc, con Recuperación.
Ve a la página Log Forwarding (Reenvío de log) para configurar un archivo para el reenvío de logs ingeridos a tu propio bucket de almacenamiento alojado en la nube.
- Si aún no lo has hecho, configura una [integración] de Datadog (#set-up-an-integration) para tu proveedor de nube.
- Crea un bucket de almacenamiento.
- Establece permisos en
read
o write
en ese archivo. - Enruta tus logs hacia y desde ese archivo.
- Establece la configuración avanzada como cifrado, clase de almacenamiento y etiquetas (tags).
- Valida tu configuración y busca posibles errores de configuración que Datadog podría detectar por ti.
Consulta cómo archivar tus logs con Pipelines de observabilidad si deseas dirigir tus logs a un archivo optimizado para el almacenamiento directamente desde tu entorno.
Configurar un archivo
Establecer una integración
La delegación de roles de AWS no es compatible con el sitio Datadog for Government. Deben utilizarse claves de acceso.
Si aún no está configurada, configura la integración de AWS para la cuenta de AWS que contiene tu bucket de S3.
- En el caso general, se trata de crear un rol que Datadog pueda utilizar para integrarse con AWS S3.
- Específicamente para las cuentas AWS GovCloud o China, utiliza claves de acceso como alternativa a la delegación de roles.
Crear un bucket de almacenamiento
El envío de logs a un archivo queda fuera del entorno GovCloud de Datadog, que está fuera del control de Datadog. Datadog no será responsable de ningún log que haya salido del entorno GovCloud de Datadog, incluidas, entre otras, las obligaciones o requisitos que el usuario pueda tener en relación con FedRAMP, DoD Impact Levels, ITAR, cumplimiento de las normas de exportación, residencia de datos o normativas similares aplicables a dicho log.
Entra en tu consola de AWS y crea un bucket de S3 al que enviar tus archivos.
Notas:
- No pongas tu bucket a disposición del público.
- Para los sitios US1, US3 y US5, consulta Precios de AWS para conocer las tarifas de transferencia de datos entre regiones y cómo pueden verse afectados los costes de almacenamiento en la nube. Considera la posibilidad de crear tu bucket de almacenamiento en
us-east-1
para gestionar tus tarifas de transferencia de datos entre regiones.
- Ve a tu Portal de Azure y crea una cuenta de almacenamiento a la que enviar tus archivos. Asigna un nombre a tu cuenta de almacenamiento, selecciona el tipo de cuenta de rendimiento estándar o Block blobs premium y selecciona el nivel de acceso hot (activo) o cool (inactivo).
- Crea un servicio de contenedor en esa cuenta de almacenamiento. Toma nota del nombre del contenedor ya que necesitarás añadirlo en la Página de archivo de Datadog.
Nota: No establezcas políticas de inmutabilidad porque los últimos datos deben ser reescritos en algunos casos poco frecuentes (típicamente un tiempo de inactividad).
Accede a tu cuenta de Google Cloud y crea un bucket de GCS al que enviar tus archivos. En Choose how to control access to objects (Elige cómo controlar el acceso a los objetos), selecciona Set object-level and bucket-level permissions (Configurar permisos a nivel de objeto y a nivel de bucket).
Nota: No añadas una política de retención porque los últimos datos deben ser reescritos en algunos casos poco frecuentes (típicamente un tiempo de inactividad).
Establecer permisos
Solo los usuarios de Datadog con el permisologs_write_archive
pueden crear, modificar o eliminar configuraciones de archivo de log.
Crear una política con las siguientes sentencias de permiso:
{
"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>"
]
}
]
}
- Los permisos
GetObject
y ListBucket
permiten recuperar a partir de archivos. - El permiso
PutObject
es suficiente para cargar archivos. - Asegúrate de que el valor del recurso en las acciones
s3:PutObject
y s3:GetObject
termina con /*
porque estos permisos se aplican a objetos dentro de los buckets.
Edita los nombres de los buckets.
Opcionalmente, especifica las rutas que contienen tus archivos de log.
Adjunta la nueva política al rol de integración de Datadog.
- Ve a Roles en la consola de AWS IAM.
- Localiza el rol utilizado por la integración de Datadog. Por defecto se llama DatadogIntegrationRole, pero el nombre puede variar si tu organización le ha cambiado el nombre. Haz clic en el nombre del rol para abrir la página de resumen del rol.
- Haz clic en Add permissions (Añadir permisos), y luego en Attach policies (Adjuntar políticas).
- Introduce el nombre de la política creada anteriormente.
- Haz clic en Attach policies (Adjuntar políticas).
- Concede a la aplicación de Datadog el permiso para escribir y recuperar desde tu cuenta de almacenamiento.
- Selecciona tu cuenta de almacenamiento en la página Cuentas de almacenamiento, ve a Access Control (IAM) (Control de acceso (IAM)) y seleccionaAdd -> Add Role Assignment (Añadir -> Añadir asignación del rol).
- Introduce el rol denominado Storage Blob Data Contributor, selecciona la aplicación de Datadog que creaste para integrarse con Azure y selecciona guardar.
Concede a tu cuenta de servicio de Datadog Google Cloud permisos para escribir tus archivos en tu bucket.
Selecciona la entidad principal de la cuenta de servicio de Datadog Google Cloud en la página de administración de Google Cloud IAM y selecciona Edit principal (Editar entidad principal).
Haz clic en ADD ANOTHER ROLE (AÑADIR OTRO ROL), selecciona el rol Storage Object Admin y selecciona guardar.
Dirige tus logs a un bucket
Ve a la página de Reenvío de log y selecciona Add a new archive (Añadir un nuevo archivo) en la pestaña Archives (Archivos).
Notas:
- Solo los usuarios de Datadog con el permiso
logs_write_archive
pueden completar este paso y el siguiente. - Para archivar logs en Azure Blob Storage es necesario registrarse en la aplicación. Consulta las instrucciones en la página de integración de Azure, y establece el “sitio” en la parte derecha de la página de documentación en “US”. Los Registros de aplicación creados con fines de archivado solo necesitan el rol “Storage Blob Data Contributor”. Si tu bucket de almacenamiento se encuentra en una suscripción que está siendo supervisada a través de un recurso de Datadog, se mostrará una advertencia acerca de que el Registro de aplicación es redundante. Puedes ignorar esta advertencia.
- Si tu bucket restringe el acceso de red a las IP especificadas, añade las IP de los webhooks de IP ranges list a la lista de permitidos.
Selecciona la combinación de cuenta y rol de AWS adecuada para tu bucket de S3.
Introduce el nombre de tu bucket. Opcional: introduce un directorio de prefijo para todo el contenido de tus archivos de log.
Selecciona el tipo de archivo Azure Storage, y el inquilino y cliente de Azure para la aplicación de Datadog que tiene el rol Storage Blob Data Contributor en tu cuenta de almacenamiento.
Introduce el nombre de tu cuenta de almacenamiento y el nombre de contenedor para tu archivo. Opcional: introduce un directorio de prefijo para todo el contenido de tus archivos de log.
Selecciona el tipo de archivo GCS y la cuenta de servicio de GCS que tenga permisos para escribir en tu bucket de almacenamiento.
Introduce el nombre de tu bucket. Opcional: introduce un directorio de prefijo para todo el contenido de tus archivos de log.
Configuración avanzada
Permisos de Datadog
Por defecto:
- Todos los usuarios Admin de Datadog pueden crear, editar y reordenar. Consulta Configurar archivos múltiples para obtener más información.
- Todos los usuarios de Datadog Admin y Standard pueden recuperar desde archivos.
- Todos los usuarios, incluidos los Read Only (solo lectura) de Datadog, pueden acceder a logs recuperados.
Utiliza este paso de configuración opcional para asignar roles en ese archivo y restringir quién puede:
Etiquetas de Datadog
Utiliza este paso de configuración opcional para:
- Incluir todas las etiquetas de log en tus archivos (activado por defecto en todos los archivos nuevos). Nota: Esto aumenta el tamaño de los archivos resultantes.
- Añadir etiquetas en los logs recuperados de acuerdo con tu política de Consultas de restricción. Consulta el permiso
logs_read_data
.
Definir el tamaño máximo de escaneado
Utiliza este paso de configuración opcional para definir el volumen máximo de datos de log (en GB) que se pueden escanear para la recuperación en tus archivos de log.
Para los archivos con un tamaño máximo de escaneado definido, todos los usuarios deben estimar el tamaño del escaneado antes de que se les permita iniciar una recuperación. Si el tamaño de escaneado estimado es superior al permitido para ese archivo, los usuarios deben reducir el intervalo en el que solicitan la recuperación. La reducción del intervalo reducirá el tamaño del escaneado y permitirá al usuario iniciar una recuperación.
Reglas del cortafuegos
No se admiten reglas de cortafuegos.
Clase de almacenamiento
Puedes establecer una configuración del ciclo de vida en tu bucket de S3 para realizar una transición automática de tus archivos de log a clases de almacenamiento óptimas.
La recuperación solo admite las siguientes clases de almacenamiento:
- S3 Standard
- S3 Standard-IA
- S3 One Zone-IA
- Recuperación instantánea de S3 Glacier
Si deseas recuperar a partir de archivos de otra clase de almacenamiento, primero debes moverlos a una de las clases de almacenamiento admitidas mencionadas anteriormente.
El archivado y la recuperación solo admiten los siguientes niveles de acceso:
- Nivel de acceso activo
- Nivel de acceso inactivo
Si deseas recuperar a partir de archivos de otro nivel de acceso, primero debes moverlos a uno de los niveles admitidos mencionados anteriormente.
Cifrado del lado del servidor (SSE)
SSE-S3
El cifrado predeterminado para los buckets de Amazon S3 es el cifrado del lado del servidor con claves de administración de Amazon S3 (SSE-S3).
Para confirmar que tu bucket de S3 está cifrado con SSE-S3:
- Navega hasta tu bucket de S3.
- Haz clic en la pestaña Properties (Propiedades).
- En la sección Default Encryption (Cifrado por defecto), comprueba que el Encryption key type (Tipo de clave de cifrado) es Amazon S3 managed keys (SSE-S3) (Claves administradas de Amazon S3 (SSE-S3)).
SSE-KMS
Como alternativa, Datadog admite el cifrado del lado del servidor con una CMK de AWS KMS. Para habilitarla, sigue estos pasos:
- Crea tu CMK.
- Adjunta una política de CMK a tu CMK con el siguiente contenido, sustituyendo según corresponda el número de cuenta de AWS y el nombre de rol de Datadog IAM:
{
"Id": "key-consolepolicy-3",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Enable IAM User Permissions",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<MY_AWS_ACCOUNT_NUMBER>:root"
},
"Action": "kms:*",
"Resource": "*"
},
{
"Sid": "Allow use of the key",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<MY_AWS_ACCOUNT_NUMBER>:role/<MY_DATADOG_IAM_ROLE_NAME>"
},
"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::<MY_AWS_ACCOUNT_NUMBER>:role/<MY_DATADOG_IAM_ROLE_NAME>"
},
"Action": [
"kms:CreateGrant",
"kms:ListGrants",
"kms:RevokeGrant"
],
"Resource": "*",
"Condition": {
"Bool": {
"kms:GrantIsForAWSResource": "true"
}
}
}
]
}
- Ve a la pestaña Properties (Propiedades) en tu bucket de S3 y selecciona Default Encryption (Cifrado por defecto). Elige la opción “AWS-KMS”, selecciona tu ARN de CMK y selecciona guardar.
Para cualquier cambio en las claves de KSM existentes, ponte en contacto con el soporte de Datadog para obtener más ayuda.
Validación
Una vez que los ajustes del archivo se hayan configurado correctamente en tu cuenta de Datadog, tus pipelines de procesamiento comenzarán a enriquecer todos los logs que se ingieran en Datadog. Estos logs se reenvían posteriormente a tu archivo.
Sin embargo, después de crear o actualizar las configuraciones de los archivos, pueden pasar varios minutos antes de que se intente la siguiente carga de archivos. La frecuencia con la que se cargan los archivos puede variar. Consulta tu bucket de almacenamiento de nuevo en 15 minutos para asegurarte de que los archivos se están cargando correctamente desde tu cuenta de Datadog.
Después, si el archivo sigue en estado pendiente, comprueba tus filtros de inclusión para asegurarte de que la consulta es válida y coincide con eventos de log en Live Tail. Cuando Datadog no consigue cargar logs en un archivo externo, debido a cambios involuntarios en la configuración o los permisos, el archivo de log correspondiente aparece resaltado en la página de configuración.
Pasa el ratón por encima del archivo para ver los detalles del error y las acciones a realizar para resolver el problema. También se genera un evento en el Log Explorer. Puedes crear un monitor para estos eventos con el fin de detectar y solucionar fallos rápidamente.
Múltiples archivos
Si se definen múltiples archivos, los logs introducen el primer archivo en función del filtro.
Es importante ordenar los archivos con cuidado. Por ejemplo, si creas un primer archivo filtrado con la etiqueta env:prod
y un segundo archivo sin ningún filtro (el equivalente a *
), todos tus logs de producción irían a un bucket o ruta de almacenamiento, y el resto iría al otro.
Los archivos de log que Datadog reenvía a tu bucket de almacenamiento están en formato JSON comprimido (.json.gz
). Utilizando el prefijo que indiques (o /
si no hay ninguno), los archivos se almacenan en una estructura de directorios que indica en qué fecha y a qué hora se generaron los archivos de almacenamiento, como la siguiente:
/my/bucket/prefix/dt=20180515/hour=14/archive_143201.1234.7dq1a9mnSya3bFotoErfxl.json.gz
/my/bucket/prefix/dt=<YYYYMMDD>/hour=<HH>/archive_<HHmmss.SSSS>.<DATADOG_ID>.json.gz
Esta estructura de directorios simplifica el proceso de consulta de tus archivos de log históricos en función de su fecha.
Dentro del archivo JSON comprimido, el contenido de cada evento tiene el siguiente formato:
{
"_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" ]
}
Lectura adicional
Más enlaces, artículos y documentación útiles:
*Logging without Limits es una marca registrada de Datadog, Inc.