¿Cómo puedo enviar los registros de flujos de la VPC a Splunk con Amazon Kinesis Firehose?

7 minutos de lectura
0

Quiero mejorar la integración de mis datos de AWS con Splunk cuando envío datos de orígenes de AWS a un clúster de Splunk.

Solución

Nota: Kinesis Data Firehose no admite equilibradores de carga de aplicación ni equilibradores de carga de red. En su lugar, utilice un equilibrador de carga clásico. Asegúrese de permitir sesiones persistentes basadas en la duración con la caducidad de las cookies desactivada. Para obtener más información sobre la solución de problemas de la secuencia de entrega con los puntos de conexión de Splunk, consulte Data not delivered to Splunk.

Requisitos previos

Creación de una secuencia de entrega de Kinesis Data Firehose

1.    Cree su secuencia de entrega. En Origen, elija Direct PUT.

2.    En Destino, elija Splunk.

3.    Introduzca un nombre para la secuencia de entrega.

Configuración de la transformación de registros con AWS Lambda

1.    Configure la transformación de registros.Nota: En Transforme los registros de origen con AWS Lambda, seleccione Habilitado para Record transformation. CloudWatch envía los registros como archivos comprimidos .gzip y Amazon Kinesis debe extraer estos archivos para poder usarlos.

2.    En Función de Lambda, elija Crear nueva.

3.    En la ventana Elegir un proyecto de Lambda, en Proyecto Lambda, elija Kinesis Firehose CloudWatch Logs Processor.

4.    Elija la nueva pestaña que se abre en el navegador para crear la función de Lambda:
En Nombre, introduzca un nombre para la función de Lambda.
En Rol, elija Create a custom role.

5.     Elija la nueva pestaña que se abre en el navegador para crear un rol de AWS Identity and Access Management (IAM). En Nombre del rol, asegúrese de que el nombre sea lambda_basic_execution.

6.    Seleccione Permitir para crear el rol y, a continuación, vuelva a la página de configuración de la función de Lambda.

7.    Elija Crear función.

8.    Para evitar que se agote el tiempo de espera de la función, aumente el Tiempo de espera de los 3 segundos predeterminados a 1 minuto.

9.    Elija Guardar.

Finalización de la secuencia de entrega de Kinesis Data Firehose

1.    Abra la consola de Amazon Kinesis.

2.    En el panel de navegación, elija Data Firehose.

3.    Para la secuencia de entrega, seleccione Función de Lambda y, a continuación, en el menú desplegable, elija el nombre de su nueva función de AWS Lambda.

4.    En Configuración de destino, introduzca los detalles del HEC de Splunk, incluido el punto de conexión del HEC de Splunk que ha creado.
Nota: Debe terminar el punto de conexión del HEC de Splunk con un certificado SSL válido. Utilice el nombre de host de DNS correspondiente para conectarse a su punto de conexión del HEC. El formato del punto de conexión del clúster es https://SU-PUNTO-DE-CONEXIÓN.splunk.com:8088.

5.    En Tipo de punto de conexión de Splunk, elija Punto de conexión sin procesar e introduzca el token de autenticación.

6.    Elija Siguiente.

7.    (Opcional) Elija un bucket de Amazon Simple Storage Service (Amazon S3) existente o cree uno nuevo para hacer copias de seguridad de los eventos con errores o de todos los eventos. Asegúrese de configurar los ajustes relacionados con Amazon S3, como las condiciones del búfer, los ajustes de compresión y cifrado, y las opciones de registro de errores en el asistente de la secuencia de entrega.

8.    En Rol de IAM, elija Crear nuevo.

9.    En la pestaña que se abre, introduzca un valor en Nombre del rol y, a continuación, elija Permitir.

10.    Elija Siguiente.

11.    Elija Crear secuencia de entrega.

Configuración de registros de flujos de Amazon VPC

Nota: Si tiene un registro de flujos de Amazon VPC, vaya a la siguiente sección: Creación de una suscripción a Registros de Amazon CloudWatch. Si no tiene ningún registro de flujos de VPC, siga estos pasos:

1.    Abra la consola de CloudWatch.

2.    En el panel de navegación, elija Registros.

3.    En Acciones, elija Crear un grupo de registros.

4.    Introduzca un valor en Nombre de grupo de registro.

5.    Elija Crear un grupo de registros.

6.    Abra la consola de Amazon VPC.

7.    En el panel de navegación, en Nube privada virtual, seleccione Sus VPC.

8.    En el panel de contenido, seleccione su VPC.

9.    Elija la vista Registros de flujo.

10.    Elija Crear registro de flujo:

  • En Filtro, elija Todo.
  • En Grupo de registros de destino, elija el grupo de registros que acaba de crear.
  • En Rol de IAM, elija un rol de IAM que permita a su Amazon VPC publicar registros en CloudWatch. Si no tiene un rol de IAM adecuado, en Rol de IAM, elija Configurar permisos y, a continuación, Crear un rol de IAM. Conserve la configuración predeterminada.
  • Elija Permitir para crear y asociar el rol VPCFlowLogs al grupo de registros de destino.

11.    Elija Crear.

12.    Establezca una fuente en tiempo real desde el grupo de registros hasta su secuencia de entrega:

Nota: Si se muestran errores al ejecutar los comandos de AWS CLI, confirme que está ejecutando una versión reciente de AWS CLI.

Creación de una suscripción a Registros de Amazon CloudWatch

1.    Otorgue acceso a CloudWatch para publicar su secuencia de Kinesis Data Firehose con los permisos de rol correctos.

2.    Abra AWS CLI.

3.    Use el siguiente archivo JSON para crear la política de confianza (por ejemplo, TrustPolicyforCWLToFireHose.json). Sustituya YOUR-RESOURCE-REGION por su región de AWS.

{
  "Statement": {
    "Effect": "Allow",
    "Principal": { "Service": "logs.YOUR-RESOURCE-REGION.amazonaws.com" },
    "Action": "sts:AssumeRole"
  }
}

4.    Ejecute el siguiente comando para crear el rol con los permisos de la política de confianza:

$ aws iam create-role --role-name CWLtoKinesisFirehoseRole --assume-role-policy-document file://TrustPolicyForCWLToFireHose.json

5.    Use el siguiente archivo JSON para crear su política de IAM (por ejemplo, PermissionPolicyForCWLToFireHose.json). Sustituya YOUR-AWS-ACCT-NUM por su número de cuenta de AWS, YOUR-RESOURCE-REGION por la región de su recurso y FirehoseSplunkDeliveryStream por el nombre de la secuencia.

{
    "Statement":[
      {
        "Effect":"Allow",
        "Action":["firehose:PutRecord"],
        "Resource":["arn:aws:firehose:YOUR-RESOURCE-REGION:YOUR-AWS-ACCT-NUM:deliverystream/FirehoseSplunkDeliveryStream"]
      },
      {
        "Effect":"Allow",
        "Action":["iam:PassRole"],
        "Resource":["arn:aws:iam::YOUR-AWS-ACCT-NUM:role/CWLtoKinesisFirehoseRole"]
      }
    ]
}

6.    Ejecute el siguiente comando para asociar la política de IAM al rol:

$ aws iam put-role-policy
    --role-name CWLtoKinesisFirehoseRole
    --policy-name Permissions-Policy-For-CWL
    --policy-document file://PermissionPolicyForCWLToFireHose.json

7.    Ejecute el siguiente comando para crear un filtro de suscripción. Sustituya YOUR-AWS-ACCT-NUM por su número de cuenta de AWS, YOUR-RESOURCE-REGION por la región de su recurso y FirehoseSplunkDeliveryStream por el nombre de la secuencia.

$ aws logs put-subscription-filter
   --log-group-name " /vpc/flowlog/FirehoseSplunk"
   --filter-name "Destination"
   --filter-pattern ""
   --destination-arn "arn:aws:firehose:YOUR-RESOURCE-REGION:YOUR-AWS-ACCT-NUM:deliverystream/FirehoseSplunkDeliveryStream"
   --role-arn "arn:aws:iam::YOUR-AWS-ACCT-NUM:role/CWLtoKinesisFirehoseRole"

Para obtener más información sobre los filtros de suscripción, consulte Ejemplo 3: filtros de suscripción con Amazon Kinesis Data Firehose.

Información relacionada

Power data ingestion into Splunk using Amazon Kinesis Data Firehose

Destination settings

Controlling access with Amazon Kinesis Data Firehose

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año