El servicio logs de AWS puede recopilarse con la función Lambda de Datadog Forwarder. Esta Lambda—que se activa en S3 Buckets, CloudWatch grupos log y eventos EventBridge—reenvía logs a Datadog.
Habilita el registro para tu servicio AWS (la mayoría de los servicios AWS pueden loguear a un bucket S3 o CloudWatch Grupo log).
Configurar los disparadores que hacen que la Lambda Forwarder se ejecute cuando hay nuevos logs que reenviar. Hay dos maneras de Configurar los disparadores.
Nota: Cloudformation crea una política IAM que incluye KMS:Decrypt para todos los recursos, y no se alinea con las mejores prácticas de AWS Security Hub. Este permiso se utiliza para descifrar objetos de buckets S3 cifrados con KMS para configurar la función Lambda, y no se puede predecir qué clave KMS se utiliza para cifrar los buckets S3. Puedes eliminar este permiso de forma segura una vez que la instalación haya finalizado correctamente.
Se admite cualquier servicio AWS que genere logs en un bucket S3 o un CloudWatch Grupo log. Encontrará instrucciones de configuración para los servicios en la siguiente tabla:
Existen dos opciones a la hora de configurar los disparadores en la función Lambda de Datadog Forwarder:
Automáticamente: Datadog recupera automáticamente los log de localización para el servicio AWS seleccionado y los añade como disparadores en la función Lambda de Datadog Forwarder. Datadog también mantiene actualizada la lista.
Datadog puede Configurar disparadores automáticamente la función Lambda de Datadog Forwarder para recopilar logs de AWS de las siguientes fuentes y localizaciones:
Origen
Localización
Logs de acceso a la API Gateway
CloudWatch
Ejecución de logs de API Gateway
CloudWatch
Logs de acceso de la aplicación ELB
S3
Logs de acceso a ELB clásico
S3
Logs de acceso a CloudFront
S3
Logs de Lambda
CloudWatch
Logs de Redshift
S3
Logs de acceso S3
S3
Funciones Step
CloudWatch
Cortafuegos de aplicaciones web
S3, CloudWatch
Nota: Los Filtros de suscripción no son creados automáticamente por DatadogForwarder. Crealos directamente en un Grupo de Log.
Asegúrese de que la política de rol IAM utilizada para la integración Datadog-AWS tiene los siguientes permisos. La información sobre cómo se utilizan estos permisos se puede encontrar en las descripciones a continuación:
Añadir o eliminar un disparador Lambda basado en el bucket S3 eventos.
states:ListStateMachines
Lista todas las funciones Step.
states:DescribeStateMachine
Obtener detalles de registro sobre una función Step.
wafv2:ListLoggingConfigurations
Lista todas las configuraciones de registro del Cortafuegos de aplicaciones web.
logs:PutSubscriptionFilter
Añadir un disparador Lambda basado en log de eventos de CloudWatch
logs:DeleteSubscriptionFilter
Eliminar un disparador Lambda basado en log de eventos de CloudWatch
logs:DescribeSubscriptionFilters
Lista los filtros de suscripción para el grupo log especificado.
En la página integración AWS, selecciona la cuenta AWS de la que desea recolectar logs y haga clic en la pestaña Log Collection.
Introduzca el ARN de Lambda creada en la sección anterior y haga clic en Add.
Seleccione los servicios de los que deseas recopilar logs y haz clic en Save. Para dejar de recopilar logs de un determinado servicio, anule la selección de la fuente de log.
Si tienes logs en varias regiones, debes crear funciones Lambda adicionales en esas regiones e introducirlas en esta página.
Para dejar de recopilar todos los AWS logs , pase el ratón por encima de una Lambda y haga clic en el icono Eliminar. Se eliminarán todos los disparadores de esa función.
A los pocos minutos de esta configuración inicial, tus AWS logs apareceran en el log Explorer de Datadog.
Si estas recopilando logs de un grupo log de CloudWatch, Configura el disparador de la función Lambda de Datadog Forwarder utilizando uno de los siguientes métodos:
Haz clic en Functions y selecciona Datadog Forwarder .
Haz clic en Add trigger y selecciona **CloudWatch Logs **.
Selecciona el grupo log en el menú desplegable.
Introduce un nombre para el filtro y, opcionalmente, especifique un patrón de filtrado.
Haz clic en Add (Añadir).
Ve a la sección Datadog log para explorar cualquier nuevo eventos log enviado a su grupo log.
Para los usuarios de Terraform, puedes aprovisionar y gestionar tus disparadores utilizando el recurso aws_cloudwatch_log_subscription_filter. Vea el código de ejemplo a continuación.
resource "aws_cloudwatch_log_subscription_filter" "datadog_log_subscription_filter" {
name = "datadog_log_subscription_filter"
log_group_name = <CLOUDWATCH_LOG_GROUP_NAME> # for example, /aws/lambda/my_lambda_name
destination_arn = <DATADOG_FORWARDER_ARN> # for example, arn:aws:lambda:us-east-1:123:function:datadog-forwarder
filter_pattern = ""
}
Para los usuarios de AWS CloudFormation, puedes aprovisionar y gestionar tus disparadores utilizando el recurso CloudFormation AWS::logs::SubscriptionFilter. Vea el código de ejemplo a continuación.
El código de ejemplo también funciona para AWS SAM y serverless Framework. Para serverless Framework, coloque el código en la sección resources dentro de su serverless.yml.
Una vez instalada la función Lambda, añade manualmente un disparador en el bucket S3 que contiene tus logs en la consola AWS:
Seleccione el bucket y siga las instrucciones de AWS:
Establece el tipo correcto de evento en los buckets S3:
¡Una vez hecho esto, entra en tu sección Datadog Log para empezar a explorar tus logs!
Para los usuarios de Terraform, puedes aprovisionar y gestionar tus disparadores utilizando el recurso aws_s3_bucket_notification. Consulte el código de ejemplo a continuación.
Para los usuarios de CloudFormation, puedes Configurar disparadores usando CloudFormation NotificationConfiguration para tu bucket S3. Consulte el código de ejemplo a continuación.
Puedes depurar correos electrónicos o direcciones IP de logs enviados por la función Lambda, o definir una regla de depuración personalizada en los parámetros de Lambda.
También puedes excluir o enviar solo aquellos logs que coincidan con un patrón específico utilizando la opción de filtrado.