Declaraciones de receptores - Amazon Kinesis Agent para Microsoft Windows

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Declaraciones de receptores

Las declaraciones de receptores especifican dónde y en qué formato deben enviarse los registros, los eventos y las métricas a los diferentes servicios de AWS. En las secciones siguientes, se describen las configuraciones de los tipos de receptores integrados que están disponibles en Amazon Kinesis Agent para Microsoft Windows. Como Kinesis Agent para Windows es ampliable, puede agregar tipos de receptores personalizados. Normalmente, todos los tipos de receptores necesitan pares clave-valor únicos en las declaraciones de configuración que sean pertinentes para dicho tipo de receptor.

Todas las declaraciones de receptores pueden contener los siguientes pares clave-valor:

Id

Cadena única que identifica un receptor específico en el archivo de configuración (obligatorio).

SinkType

Nombre del tipo de este receptor (obligatorio). El tipo de receptor especifica el destino de los datos de registro, eventos o métricas que este receptor va a transmitir.

AccessKey

Especifica la clave de acceso de AWS que va a utilizar para autorizar el acceso al servicio de AWS que está asociado al tipo de receptor. Este par clave-valor es opcional. Para obtener más información, consulte Configuración de seguridad de los receptores.

SecretKey

Especifica la clave secreta de AWS que va a utilizar para autorizar el acceso al servicio de AWS que está asociado al tipo de receptor. Este par clave-valor es opcional. Para obtener más información, consulte Configuración de seguridad de los receptores.

Region

Especifica la región de AWS que contiene los recursos de destino de la transmisión. Este par clave-valor es opcional.

ProfileName

Especifica el perfil de AWS que se va a utilizar para la autenticación. Este par clave-valor es opcional, pero, si se especifica, anula cualquier clave de acceso y clave secreta que se hayan especificado. Para obtener más información, consulte Configuración de seguridad de los receptores.

RoleARN

Especifica el rol de IAM que se va a utilizar para obtener acceso al servicio de AWS que está asociado al tipo de receptor. Esta opción es útil cuando el agente de Kinesis para Windows se ejecuta en una instancia EC2 pero sería más conveniente utilizar un rol diferente al que se hace referencia en el perfil de instancia. Por ejemplo, se puede utilizar un rol de acceso entre cuentas para destinar recursos que no estén en la misma cuenta de AWS que la instancia EC2. Este par clave-valor es opcional.

Format

Especifica el tipo de serialización que se aplica a los registros y los datos de eventos antes de transmitirlos. Los valores válidos son json y xml. Esta opción es útil cuando los análisis posteriores de la canalización de datos requieren o prefieren que los datos estén en un determinado formato. Este par clave-valor es opcional y, si no se especifica, el receptor transmitirá los datos del origen en formato de texto normal al servicio de AWS que esté asociado con este tipo de receptor.

TextDecoration

Si no se especifica Format, TextDecoration indica qué otro texto debe incluirse al transmitir entradas de registro o eventos. Para obtener más información, consulte Configuración de decoraciones de receptores. Este par clave-valor es opcional.

ObjectDecoration

Cuando se especifica Format, ObjectDecoration indica qué otros datos se van a incluir en la entrada del registro o del evento antes de su serialización y transmisión. Para obtener más información, consulte Configuración de decoraciones de receptores. Este par clave-valor es opcional.

BufferInterval

Para minimizar el número de llamadas de API al servicio de AWS asociado con el tipo de receptor, Kinesis Agent for Windows almacena en el búfer varias entradas de registro, eventos o métricas antes de realizar la transmisión. Esto permite ahorrar dinero en los servicios que cobran por cada llamada a la API. BufferInterval especifica el tiempo máximo (en segundos) que los registros deben almacenarse en el búfer antes de transmitirse al servicio de AWS. Este par clave-valor es opcional y, si se especifica, debe utilizarse una cadena para representar el valor.

BufferSize

Para minimizar el número de llamadas de API al servicio de AWS asociado con el tipo de receptor, Kinesis Agent for Windows almacena en el búfer varias entradas de registro, eventos o métricas antes de realizar la transmisión. Esto permite ahorrar dinero en los servicios que cobran por cada llamada a la API. BufferSize especifica el número máximo de registros que se van a almacenar en el búfer antes de transmitirse al servicio de AWS. Este par clave-valor es opcional y, si se especifica, debe utilizarse una cadena para representar el valor.

MaxAttempts

Especifica el número máximo de veces que Kinesis Agent for Windows intenta transmitir un conjunto de entradas de registro, eventos y métricas a un servicio de AWS si se producen errores continuados durante la transmisión. Este par clave-valor es opcional. Si se especifica, debe utilizarse una cadena para representar el valor. El valor predeterminado es "3".

Para ver algunos ejemplos de archivos de configuración completos en los que se utilizan varios tipos de receptores, consulte Transmisión a los receptores desde el registro de eventos de la aplicación de Windows.

Configuración de receptores KinesisStream

LaKinesisStreamEl tipo de receptor transmite entradas de registro y eventos al servicio Kinesis Data Streams. Normalmente, los datos que se transmiten a Kinesis Data Streams se procesan en una o varias aplicaciones personalizadas que se ejecutan utilizando diversos servicios de AWS. Los datos se transmiten en una secuencia con nombre que se configura con Kinesis Data Streams. Para obtener más información, consulte laGuía del desarrollador de Amazon Kinesis Data Streams.

A continuación, se muestra un ejemplo de una declaración de receptores de Kinesis Data Streams:

{ "Id": "TestKinesisStreamSink", "SinkType": "KinesisStream", "StreamName": "MyTestStream", "Region": "us-west-2" }

Todas las declaraciones de receptores de KinesisStream pueden proporcionar estos otros pares clave-valor:

SinkType

Tiene que especificarse y el valor debe ser la cadena literal KinesisStream.

StreamName

Especifica el nombre de la secuencia de datos de Kinesis que recibe los datos transmitidos desde elKinesisStreamtipo de fregadero (requerido). Antes de transmitir los datos, configure la secuencia en la consola de administración de AWS, la CLI de AWS o a través de una aplicación con la API de Kinesis Data Streams.

RecordsPerSecond

Especifica el número máximo de registros transmitidos a Kinesis Data Streams por segundo. Este par clave-valor es opcional. Si se especifica, debe utilizarse un número entero para representar el valor. El valor predeterminado es 1000 registros.

BytesPerSecond

Especifica el número máximo de bytes transmitidos a Kinesis Data Streams por segundo. Este par clave-valor es opcional. Si se especifica, debe utilizarse un número entero para representar el valor. El valor predeterminado es 1 MB.

El valor predeterminado de BufferInterval en este tipo de receptor es de 1 segundo, mientras que el valor predeterminado de BufferSize es de 500 registros.

Configuración de receptores KinesisFirehose

LaKinesisFirehoseEl tipo de receptor transmite entradas de registro y eventos al servicio Kinesis Data Firehose. Kinesis Data Firehose proporciona los datos transmitidos a otros servicios para su almacenamiento. Por lo general, los datos almacenados suelen analizarse después, en fases posteriores de la canalización de datos. Los datos se transmiten a una secuencia de entrega con nombre que se configura con Kinesis Data Firehose. Para obtener más información, consulte laGuía del desarrollador de Amazon Kinesis Data Firehose.

A continuación, se muestra un ejemplo de una declaración de receptores de Kinesis Data Firehose:

{ "Id": "TestKinesisFirehoseSink", "SinkType": "KinesisFirehose", "StreamName": "MyTestFirehoseDeliveryStream", "Region": "us-east-1", "CombineRecords": "true" }

Todas las declaraciones de receptores de KinesisFirehose pueden proporcionar estos otros pares clave-valor:

SinkType

Tiene que especificarse y el valor debe ser la cadena literal KinesisFirehose.

StreamName

Especifica el nombre de la secuencia de entrega de Kinesis Data Firehose que recibe los datos transmitidos desde elKinesisStreamtipo de fregadero (requerido). Antes de transmitir los datos, configure la secuencia de entrega utilizando la consola de administración de AWS, la CLI de AWS o a través de una aplicación con la API de Kinesis Data Firehose.

CombineRecords

Cuando se establece entrue, especifica combinar varios registros pequeños en un registro grande con un tamaño máximo de 5 KB. Este par clave-valor es opcional. Los registros combinados con esta función están separados por\n. Si utiliza AWS Lambda para transformar un registro de Kinesis Data Firehose, la función Lambda debe tener en cuenta el carácter separador.

RecordsPerSecond

Especifica el número máximo de registros que se transmiten a Kinesis Data Streams por segundo. Este par clave-valor es opcional. Si se especifica, debe utilizarse un número entero para representar el valor. El valor predeterminado es 5000 registros.

BytesPerSecond

Especifica el número máximo de bytes que se transmiten a Kinesis Data Streams por segundo. Este par clave-valor es opcional. Si se especifica, debe utilizarse un número entero para representar el valor. El valor predeterminado es 5 MB.

El valor predeterminado de BufferInterval en este tipo de receptor es de 1 segundo, mientras que el valor predeterminado de BufferSize es de 500 registros.

Configuración de receptores de CloudWatch

LaCloudWatchEl tipo de receptor transmite métricas al servicio CloudWatch. Puede consultar las métricas en AWS Management Console. Para obtener más información, consulte la Guía del usuario de Amazon CloudWatch.

A continuación, se muestra una declaración de receptores de CloudWatch de ejemplo:

{ "Id": "CloudWatchSink", "SinkType": "CloudWatch" }

Todas las declaraciones de receptores de CloudWatch pueden proporcionar estos otros pares clave-valor:

SinkType

Tiene que especificarse y el valor debe ser la cadena literal CloudWatch.

Interval

Especifica con qué frecuencia (en segundos) Kinesis Agent para Windows informa sobre las métricas al servicio CloudWatch. Este par clave-valor es opcional. Si se especifica, debe utilizarse un número entero para representar el valor. El valor de predeterminado es de 60 segundos. Especifique 1 segundo si desea métricas de CloudWatch de alta resolución.

Namespace

Especifica el espacio de nombres de CloudWatch en el que se notifican los datos de las métricas. Los espacios de nombres de CloudWatch agrupan conjuntos de métricas. Este par clave-valor es opcional. El valor predeterminado es KinesisTap.

Dimensions

Especifica las dimensiones de CloudWatch que se utilizan para aislar conjuntos de métricas dentro de un espacio de nombres. Esto puede resultar útil para proporcionar diferentes conjuntos de datos de métricas en cada equipo o servidor, por ejemplo. Este par clave-valor es opcional y, si se especifica, el valor debe ajustarse al siguiente formato: "clave1=valor1;clave2=valor2...". El valor predeterminado es "ComputerName={computername};InstanceId={instance_id}". Este valor permite la sustitución de variables del receptor. Para obtener más información, consulte Configuración de sustituciones de variables de receptor.

MetricsFilter

Especifica qué métricas se transmiten a CloudWatch desde el origen de métricas integrado de Kinesis Agent para Windows. Para obtener más información acerca del origen de métricas de Kinesis Agent para Windows, como información sobre la sintaxis del valor de este par, consulteOrigen de métricas integrado en Windows en.

Configuración de receptores CloudWatchLogs

LaCloudWatchLogsEl tipo de receptor transmite entradas de registro y eventos al servicio de registros de Amazon CloudWatch Logs. Puede consultar los registros en AWS Management Console o procesarlos en otras etapas de las canalizaciones de datos. Los datos se transmiten en una secuencia de registro con nombre que se configura en CloudWatch Logs. Las secuencias de registro se organizan en grupos de registros con nombre. Para obtener más información, consulte laGuía del usuario de Amazon CloudWatch Logs.

A continuación, se muestra un ejemplo de una declaración de receptores de CloudWatch Logs

{ "Id": "MyCloudWatchLogsSink", "SinkType": "CloudWatchLogs", "BufferInterval": "60", "BufferSize": "100", "Region": "us-west-2", "LogGroup": "MyTestLogGroup", "LogStream": "MyTestStream" }

Todas las declaraciones de receptores de CloudWatchLogs deben proporcionar estos otros pares clave-valor:

SinkType

Debe ser la cadena literal CloudWatchLogs.

LogGroup

Especifica el nombre del grupo de registros de CloudWatch Logs que contiene la secuencia de registro que recibe las entradas de registro y eventos que transmite la propiedadCloudWatchLogstipo de fregadero. Si el grupo de registros especificado no existe, Kinesis Agent para Windows intenta crearlo.

LogStream

Especifica el nombre de la secuencia de registro de CloudWatch Logs que recibe la secuencia de registro y eventos deCloudWatchLogstipo de fregadero. Este valor permite la sustitución de variables del receptor. Para obtener más información, consulte Configuración de sustituciones de variables de receptor. Si la secuencia de registro especificada no existe, Kinesis Agent para Windows intenta crearla.

El valor predeterminado de BufferInterval en este tipo de receptor es de 1 segundo, mientras que el valor predeterminado de BufferSize es de 500 registros. El tamaño máximo del búfer es de 10 000 registros.

LocalFileSystemConfiguración de receptores

El tipo de fregaderoFileSystemguarda registros de eventos y registros en un archivo del sistema de archivos local en lugar de transmitirlos a los servicios de AWS.FileSystemson útiles para pruebas y diagnósticos. Por ejemplo, puede utilizar este tipo de receptor para examinar los registros antes de enviarlos a AWS.

conFileSystem, también puede utilizar parámetros de configuración para simular el procesamiento por lotes, la limitación y la retry-on-error para imitar el comportamiento de los sumideros de AWS reales.

Todos los registros de todas las fuentes conectadas a unFileSystemse guardan en el único archivo especificado comoFilePath. SiFilePathNo se especifica, los registros se guardan en un archivo denominadoSinkId.txten la%TEMP%, que por lo general esC:\Users\UserName\AppData\Local\Temp, dondeSinkIdes el identificador único del receptor yUserNamees el nombre de usuario de Windows del usuario activo.

Este tipo de receptor admite atributos de decoración de texto. Para obtener más información, consulte Configuración de decoraciones de receptores.

Un ejemplo deFileSystemEn el siguiente ejemplo se muestra la configuración de tipo de receptor.

{ "Id": "LocalFileSink", "SinkType": "FileSystem", "FilePath": "C:\\ProgramData\\Amazon\\local_sink.txt", "Format": "json", "TextDecoration": "", "ObjectDecoration": "" }

LaFileSystemLa configuración consta de los siguientes pares clave-valor.

SinkType

Debe ser la cadena literal FileSystem.

FilePath

Especifica la ruta de acceso y el archivo donde se guardan los registros. Este par clave-valor es opcional. Si no se especifica, el valor predeterminado esTempPath\\SinkId.txt, dondeTempPathes la carpeta almacenada en la%TEMP%Variable ySinkIdes el identificador único del receptor.

Format

Especifica el formato del evento que se va ajsonorxml. Este par de claves es opcional y distingue entre mayúsculas y minúsculas. Si se omite, los eventos se escriben en el archivo en texto sin formato.

TextDecoration

Sólo se aplica a eventos escritos en texto sin formato. Este par clave-valor es opcional.

ObjectDecoration

Solo se aplica a eventos dondeFormattoma el valorjson. Este par clave-valor es opcional.

Uso avanzado: limitación de registros y simulación de fallas

FileSystempuede imitar el comportamiento de los sumideros de AWS simulando la limitación de registros. Puede utilizar los siguientes pares clave-valor para especificar atributos de limitación de registros y simulación de errores.

Al adquirir un bloqueo en el archivo de destino y evitar las escrituras en él, puede usarFileSystempara simular y examinar el comportamiento de los sumideros de AWS cuando falla la red.

En el siguiente ejemplo se muestra unaFileSystemcon atributos de simulación.

{ "Id": "LocalFileSink", "SinkType": "FileSystem", "FilePath": "C:\\ProgramData\\Amazon\\local_sink.txt", "TextDecoration": "", "RequestsPerSecond": "100", "BufferSize": "10", "MaxBatchSize": "1024" }
RequestsPerSecond

Opcional y especificado como un tipo de cadena. Si se omite, el valor predeterminado es"5". Controla la velocidad de solicitudes que procesa el receptor, es decir, escribe en el archivo, no el número de registros. Kinesis Agent para Windows realiza solicitudes por lotes a los extremos de AWS, por lo que una solicitud puede contener varios registros.

BufferSize

Opcional y especificado como tipo de cadena. Especifica el número máximo de registros de eventos que el receptor realiza por lotes antes de guardarlos en el archivo.

MaxBatchSize

Opcional y especificado como un tipo de cadena. Especifica la cantidad máxima de datos de registro de eventos en bytes que el receptor de lotes antes de guardarlos en el archivo.

El límite máximo de velocidad de registro es una función deBufferSize, que determina el número máximo de registros por solicitud yRequestsPerSecond. Puede calcular el límite de velocidad de registro por segundo utilizando la siguiente fórmula.

RecordRate=BufferSize*RequestsPerSecond

Dados los valores de configuración en el ejemplo anterior, hay una velocidad máxima de registro de 1000 registros por segundo.

Configuración de seguridad de los receptores

Configuración de la autenticación

Para que Kinesis Agent for Windows pueda transmitir registros, eventos y métricas a los servicios de AWS, el acceso debe estar autenticado. Hay varias formas para proporcionar autenticación a Kinesis Agent para Windows. La forma elegida dependerá de la situación en la que se esté ejecutando Kinesis Agent para Windows y los requisitos de seguridad específicos de cada organización.

  • Si Kinesis Agent para Windows se ejecuta en un host de Amazon EC2, la forma más sencilla y segura de proporcionar la autenticación es crear un rol de IAM con acceso suficiente a las operaciones necesarias en los servicios de AWS correspondientes y un perfil de instancia EC2 que haga referencia a dicho rol. Para obtener más información sobre la creación de perfiles de instancia, consulte Uso de perfiles de instancia. Para obtener información sobre las políticas que deben asociarse al rol de IAM, consulteConfiguración de la autorización .

    Después de crear el perfil de instancia, puede asociarlo con cualquier instancia EC2 que utilice el agente de Kinesis para Windows. Si las instancias ya tienen un perfil de instancia asociado, puede vincular las políticas apropiadas al rol que esté asociado a ese perfil de instancia.

  • Si Kinesis Agent para Windows se ejecuta en un host de EC2 de una determinada cuenta pero los recursos de destino del receptor se encuentran en una cuenta diferente, puede crear un rol de IAM para obtener acceso entre cuentas. Para obtener más información, consulteTutorial: Delegación del acceso entre cuentas de AWS mediante roles de IAM. Después de crear el rol entre cuentas, especifique el nombre de recurso de Amazon (ARN) de dicho rol como el valor del parámetroRoleARNPar clave-valor en la declaración del receptor. A continuación, Kinesis Agent para Windows intentará adoptar el rol entre cuentas especificado cuando obtenga acceso a los recursos de AWS que están asociados con ese tipo de receptor.

  • Si Kinesis Agent para Windows se ejecuta fuera de Amazon EC2 (por ejemplo, en el entorno local), existen varias opciones:

    • Si es aceptable registrar el servidor o el equipo de escritorio locales como una instancia administrada de Amazon EC2 Systems Manager, utilice el siguiente proceso para configurar la autenticación:

      1. Utilice el proceso que se describe en Configuración de AWS Systems Manager en entornos híbridos para crear un rol de servicio, crear una activación de una instancia administrada e instalar el agente de SSM.

      2. Asocie las políticas adecuadas al rol de servicio para permitir que Kinesis Agent para Windows tenga acceso a los recursos necesarios para transmitir datos desde los receptores configurados. Para obtener información sobre las políticas que deben asociarse al rol de IAM, consulteConfiguración de la autorización .

      3. Utilice el proceso descrito enConfiguraciónProfileRefreshingAWSCredentialProviderActualizar credenciales de AWSpara actualizar las credenciales de AWS.

      Este es el método recomendado para las instancias que no son EC2, ya que SSM y AWS administran las credenciales de forma segura.

    • Si es aceptable ejecutar el servicio AWSKinesisTap de para Kinesis Agent para Windows con un usuario específico en lugar de con la cuenta del sistema predeterminada, utilice el siguiente proceso:

      1. Cree un usuario de IAM en la cuenta de AWS en la que se utilizarán los servicios de AWS. Registre la clave de acceso y la clave secreta de este usuario durante el proceso de creación. Necesitará esta información más adelante en este mismo procedimiento.

      2. Asocie políticas al usuario de IAM que autoricen el acceso a las operaciones necesarias para los servicios correspondientes. Para obtener información sobre las políticas que deben asociarse al usuario de IAM, consulteConfiguración de la autorización .

      3. Modifique el servicio AWSKinesisTap en cada equipo o servidor para que se ejecute con un usuario específico en lugar de con la cuenta del sistema predeterminada.

      4. Cree un perfil en el almacén de SDK con la clave de acceso y la clave secreta registradas anteriormente. Para obtener más información, consulte Configuración de credenciales de AWS.

      5. Actualice el archivo AWSKinesisTap.exe.config del directorio %PROGRAMFILES%\Amazon\AWSKinesisTap para especificar el nombre del perfil que se creó en el paso anterior. Para obtener más información, consulte Configuración de credenciales de AWS.

      Este es el procedimiento recomendado para los hosts que no son de EC2 y que no pueden ser instancias administradas, ya que las credenciales están cifradas en ese determinado host y usuario.

    • Si es necesario ejecutar el servicio AWSKinesisTap de Kinesis Agent para Windows con la cuenta del sistema predeterminada, debe utilizar un archivo de credenciales compartidas. El motivo es que la cuenta del sistema no tiene un perfil de usuarios de Windows que pueda usarse con el almacén de SDK. Los archivos de credenciales compartidas no están cifrados, por lo que no recomendamos este procedimiento. Para obtener información acerca de cómo utilizar archivos de configuración compartidos, consulteConfiguración de credenciales de AWSen laAWS SDK para .NET. Si utiliza este enfoque, le recomendamos que utilice el cifrado NTFS y el acceso restringido a archivos con el archivo de configuración compartido. Es necesario que una plataforma de administración cambie regularmente las claves y que el archivo de configuración compartido se actualice cuando se modifiquen.

Aunque las claves de acceso y las claves secretas se pueden proporcionar directamente en las declaraciones de receptores, se desaconseja este enfoque, ya que las declaraciones no están cifradas.

Configuración de la autorización

Asocie las políticas adecuadas que rigen al usuario o rol de IAM que utilizará Kinesis Agent para Windows para transmitir datos a los servicios de AWS:

Kinesis Data Streams

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "kinesis:PutRecord", "kinesis:PutRecords" ], "Resource": "arn:aws:kinesis:*:*:stream/*" } ] }

Para limitar la autorización a una región, cuenta o nombre de secuencia específicos, sustituya los asteriscos del ARN que correspondan por valores específicos. Para obtener más información, consulte la sección "Nombres de recursos de Amazon (ARN) para Kinesis Data Streams" de Control de acceso a los recursos de Amazon Kinesis Data Streams mediante IAM.

Kinesis Data Firehose

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor1", "Effect": "Allow", "Action": [ "firehose:PutRecord", "firehose:PutRecordBatch" ], "Resource": "arn:aws:firehose:*:*:deliverystream/*" } ] }

Para limitar la autorización a una región, cuenta o nombre de secuencia de entrega específicos, sustituya los asteriscos del ARN que correspondan por valores específicos. Para obtener más información, consulteControl del acceso con Amazon Kinesis Data Firehoseen laGuía del desarrollador de Amazon Kinesis Data Firehose.

CloudWatch

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor2", "Effect": "Allow", "Action": "cloudwatch:PutMetricData", "Resource": "*" } ] }

Para obtener más información, consulteIntroducción a la administración de permisos de acceso para sus recursos de CloudWatchen laGuía del usuario de Amazon CloudWatch Logs.

CloudWatch Logs con grupos de registros y secuencias de registro existentes

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor3", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:log-group:*" }, { "Sid": "VisualEditor4", "Effect": "Allow", "Action": "logs:PutLogEvents", "Resource": "arn:aws:logs:*:*:log-group:*:*:*" } ] }

Para restringir el acceso a una región, cuenta, secuencia de registro o grupo de registros específicos, sustituya los asteriscos que correspondan en los ARN por los valores apropiados. Para obtener más información, consulteIntroducción a la administración de permisos de acceso para sus recursos de CloudWatch Logsen laGuía del usuario de Amazon CloudWatch Logs.

CloudWatch Logs con permisos adicionales para que Kinesis Agent para Windows pueda crear grupos de registros y secuencias de registro

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor5", "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:log-group:*" }, { "Sid": "VisualEditor6", "Effect": "Allow", "Action": "logs:PutLogEvents", "Resource": "arn:aws:logs:*:*:log-group:*:*:*" }, { "Sid": "VisualEditor7", "Effect": "Allow", "Action": "logs:CreateLogGroup", "Resource": "*" } ] }

Para restringir el acceso a una región, cuenta, secuencia de registro o grupo de registros específicos, sustituya los asteriscos que correspondan en los ARN por los valores apropiados. Para obtener más información, consulteIntroducción a la administración de permisos de acceso para sus recursos de CloudWatch Logsen laGuía del usuario de Amazon CloudWatch Logs.

Permisos necesarios para la ampliación de variables de etiquetas de EC2

Para poder utilizar ampliaciones de variables con el prefijo ec2tag, se necesita el permiso ec2:Describe*.

{ "Version": "2012-10-17", "Statement": [{ "Sid": "VisualEditor8", "Effect": "Allow", "Action": "ec2:Describe*", "Resource": "*" } ] }
nota

Puede combinar varias instrucciones en una única política siempre que el Sid de cada instrucción sea único dentro de dicha política. Para obtener más información acerca de la creación de políticas, consulteCreación de políticas de IAMen laGuía del usuario de IAM.

ConfiguraciónProfileRefreshingAWSCredentialProviderActualizar credenciales de AWS

Si utiliza AWS Systems Manager para entornos híbridos para administrar credenciales de AWS, Systems Manager rotará las credenciales de sesión enc:\Windows\System32\config\systemprofile\.aws\credentials. Para obtener más información acerca de Systems Manager para entornos híbridos, consulteConfiguración de AWS Systems Manager para entornos híbridosen laGuía del usuario de AWS Systems Manager.

Debido a que AWS .net SDK no recopila las nuevas credenciales automáticamente, proporcionamos elProfileRefreshingAWSCredentialProviderpara actualizar las credenciales.

Puede utilizar laCredentialRefde cualquier configuración de AWS sync para hacer referencia a un atributoCredentialsen la que se establece laCredentialTypeEl atributo se establece enProfileRefreshingAWSCredentialProviderComo se muestra en el siguiente ejemplo.

{ "Sinks": [{ "Id": "myCloudWatchLogsSink", "SinkType": "CloudWatchLogs", "CredentialRef": "ssmcred", "Region": "us-west-2", "LogGroup": "myLogGroup", "LogStream": "myLogStream" }], "Credentials": [{ "Id": "ssmcred", "CredentialType": "ProfileRefreshingAWSCredentialProvider", "Profile": "default", "FilePath": "%USERPROFILE%//.aws//credentials", "RefreshingInterval": 300 }] }

Una definición de credencial consta de los siguientes atributos como pares clave-valor.

Id

Define la cadena que las definiciones de sumidero pueden especificar usandoCredentialRefpara hacer referencia a esta configuración de credenciales.

CredentialType

Establezca en la cadena literalProfileRefreshingAWSCredentialProvider.

Profile

Opcional. El valor predeterminado es default.

FilePath

Opcional. Especifica la ruta al archivo de credenciales de AWS. Si se omite, %USERPROFILE%/.aws/credentials es la opción predeterminada.

RefreshingInterval

Opcional. Frecuencia con la que se actualizan las credenciales, en segundos. Si se omite, 300 es la opción predeterminada.

Configuración de decoraciones de receptores

Las declaraciones de receptores pueden incluir de forma opcional pares clave-valor que especifiquen otros datos para transmitirlos a los diferentes servicios de AWS y mejorar así los registros que se recopilan del origen.

TextDecoration

Utilice este par clave-valor cuando Format esté especificado en la declaración del receptor. El valor es una cadena con formato especial en la que se produce una sustitución de variables. Por ejemplo, supongamos que el valor de TextDecoration que se proporciona a un receptor es "{ComputerName}:::{timestamp:yyyy-MM-dd HH:mm:ss}:::{_record}". Si un origen emite una entrada de registro que contiene el texto The system has resumed from sleep. y ese origen está conectado al receptor a través de una canalización, el texto MyComputer1:::2017-10-26 06:14:22:::The system has resumed from sleep. se transmite al servicio de AWS asociado con ese tipo de receptor. La variable {_record} hace referencia al registro de texto original proporcionado por el origen.

ObjectDecoration

Utilice este par clave-valor cuando Format esté especificado en la declaración del receptor para añadir información adicional antes de la serialización de los registros. Por ejemplo, supongamos que se proporciona un ObjectDecoration con el valor "ComputerName={ComputerName};DT={timestamp:yyyy-MM-dd HH:mm:ss}" a un receptor en el que el valor de Format es JSON. El archivo JSON resultante que se transmite al servicio de AWS asociado con el tipo de receptor contiene los siguientes pares clave-valor, además de los datos originales del origen:

{ ComputerName: "MyComputer2", DT: "2017-10-17 21:09:04" }

Para ver un ejemplo del uso de ObjectDecoration, consulte Tutorial: Transmitir archivos de registro JSON a Amazon S3 mediante Kinesis Agent para Windows.

ObjectDecorationEx

Especifica una expresión, que permite una extracción y formato de datos más flexibles en comparación conObjectDecoration. Este campo se puede utilizar cuando el formato del fregadero esjson. A continuación se muestra la sintaxis de expresión.

"ObjectDecorationEx": "attribute1={expression1};attribute2={expression2};attribute3={expression3}(;...)"

Por ejemplo, la siguiente fraseObjectDecorationExAtributo:

"ObjectDecorationEx": "host={env:ComputerName};message={upper(_record)};time={format(_timestamp, 'yyyyMMdd')}"

Transforma el registro literal:

System log message

En un objeto JSON de la siguiente manera, con los valores devueltos por las expresiones:

{ "host": "EC2AMAZ-1234", "message": "SYSTEM LOG MESSAGE", "time": "20210201" }

Para obtener más información sobre la formulación de expresiones, consulteConsejos para escribir expresiones. La mayoría de losObjectDecorationdebería funcionar utilizando la nueva sintaxis con la excepción de las variables de marca de tiempo. A{timestamp:yyyyMMdd}enObjectDecorationse expresa como{format(_timestamp,'yyyyMMdd')}inObjectDecorationEx.

TextDecorationEx

Especifica una expresión, que permite una extracción y formato de datos más flexibles en comparación conTextDecoration, como se muestra en el siguiente ejemplo.

"TextDecorationEx": "Message '{lower(_record)}' at {format(_timestamp, 'yyyy-MM-dd')}"

Puede usarTextDecorationExpara componer objetos JSON. Utilice '@ {'para escapar de la llave abierta, tal y como se muestra en el siguiente ejemplo.

"TextDecorationEx": "@{ \"var\": \"{upper($myvar1)}\" }"

Si el tipo de origen conectado al receptor es DirectorySource, el receptor puede utilizar tres variables adicionales:

_FilePath

Ruta completa del archivo de registro.

_FileName

Nombre y extensión del archivo.

_Position

Número entero que representa el lugar del archivo de registro en que se encuentra la entrada del registro.

Estas variables son útiles cuando se utiliza un origen que recopila entradas de registro de varios archivos conectados a un receptor que transmite todos los registros en una única secuencia. Al inyectar los valores de estas variables en la transmisión de registros, se pueden realizar análisis posteriores en la canalización de datos para ordenar los registros por archivos y por su ubicación dentro de cada archivo.

Consejos para escribir expresiones

Una expresión puede ser uno de los siguientes:

  • Una expresión de variable.

  • Una expresión constante, por ejemplo,'hello',1,1.21,null,true,false.

  • Expresión de invocación que llama a una función, tal y como se muestra en el siguiente ejemplo.

    regexp_extract('Info: MID 118667291 ICID 197973259 RID 0 To: <jd@acme.com>', 'To: (\\\\S+)', 1)

Caracteres especiales

Se requieren dos barras diagonales inversas para escapar de caracteres especiales.

Nesting

Las invocaciones de función se pueden anidar, tal y como se muestra en el siguiente ejemplo.

format(date(2018, 11, 28), 'MMddyyyy')

Variables

Hay tres tipos de variables: local, meta y global.

  • Variables localesEmpieza por una$tales como$message. Se utilizan para resolver la propiedad del objeto de evento, una entrada si el evento es un diccionario, o un atributo si el evento es un objeto JSON. Si la variable local contiene espacio o caracteres especiales, utilice una variable local entre comillas como$'date created'.

  • Variables metaComenzar con un guion bajo (_) y se utilizan para resolver los metadatos del evento. Todos los tipos de eventos admiten las siguientes metavariables.

    _timestamp

    La marca temporal del evento.

    _record

    La representación del texto sin formato del evento.

    Los eventos de registro admiten las siguientes metavariables adicionales.

    _filepath

    _filename

    _position

    _linenumber

  • Variables globalesresolver variables de entorno, metadatos de instancia EC2 o EC2tag. Para lograr un mejor rendimiento, le recomendamos que utilice el prefijo para limitar el ámbito de búsqueda, como{env:ComputerName},{ec2:InstanceId}, y{ec2tag:Name}.

Funciones integradas

Kinesis Agent para Windows admite las siguientes funciones integradas. Si alguno de los argumentos sonNULLy la función no está diseñada para manejarNULL, unNULLse devuelve.

//string functions int length(string input) string lower(string input) string lpad(string input, int size, string padstring) string ltrim(string input) string rpad(string input, int size, string padstring) string rtrim(string input) string substr(string input, int start) string substr(string input, int start, int length) string trim(string input) string upper(string str) //regular expression functions string regexp_extract(string input, string pattern) string regexp_extract(string input, string pattern, int group) //date functions DateTime date(int year, int month, int day) DateTime date(int year, int month, int day, int hour, int minute, int second) DateTime date(int year, int month, int day, int hour, int minute, int second, int millisecond) //conversion functions int? parse_int(string input) decimal? parse_decimal(string input) DateTime? parse_date(string input, string format) string format(object o, string format) //coalesce functions object coalesce(object obj1, object obj2) object coalesce(object obj1, object obj2, object obj3) object coalesce(object obj1, object obj2, object obj3, object obj4) object coalesce(object obj1, object obj2, object obj3, object obj4, object obj5) object coalesce(object obj1, object obj2, object obj3, object obj4, object obj5, object obj6)

Configuración de sustituciones de variables de receptor

Las declaraciones de receptores KinesisStream, KinesisFirehose y CloudWatchLogs necesitan un par clave-valor LogStream o StreamName. El valor de estos pares puede contener referencias a variables que resuelve automáticamente el agente de Kinesis para Windows. ParaCloudWatchLogs, elLogGroupEl par clave-valor también es necesario y puede contener referencias de variables que resuelve automáticamente el agente de Kinesis para Windows. Las variables se especifican utilizando la plantilla {prefix:variablename}, donde prefix: es opcional. Los prefijos admitidos son los siguientes:

  • env— La referencia de variable se resuelve en el valor de la variable de entorno que tiene el mismo nombre.

  • ec2— La referencia de variable se resuelve en los metadatos de la instancia de EC2 que tienen el mismo nombre.

  • ec2tag— La referencia de variable se resuelve en el valor de la etiqueta de instancia de EC2 que tiene el mismo nombre. El permiso ec2:Describe* es necesario para obtener acceso a las etiquetas de las instancias. Para obtener más información, consulte Permisos necesarios para la ampliación de variables de etiquetas de EC2.

Si no se especifica el prefijo y hay una variable de entorno con el mismo nombre que variablename, la referencia de variable se resuelve en el valor de la variable de entorno. De lo contrario, si variablename es hostname o instance_id, la referencia de variable se resuelve en el valor de los metadatos de EC2 que tienen el mismo nombre. En cualquier otro caso, la referencia de variable no se resuelve.

A continuación, se muestran algunos ejemplos de pares clave-valor válidos con referencias de variables:

"LogStream": "LogStream_{instance_id}" "LogStream": "LogStream_{hostname}" "LogStream": "LogStream_{ec2:local-hostname}" "LogStream": "LogStream_{computername}" "LogStream": "LogStream_{env:computername}"

En las declaraciones de receptores CloudWatchLogs, se puede utilizar una variable de marca temporal con formato especial que permite que la marca temporal de la entrada original del registro o el evento del origen modifique el nombre de la secuencia de registro. El formato es el siguiente {timestamp:timeformat}. Vea el siguiente ejemplo:

"LogStream": "LogStream_{timestamp:yyyyMMdd}"

Si la entrada del registro o el evento se hubiera generado el 5 de junio de 2017, el valor del par clave-valor LogStream del ejemplo anterior se resolvería en "LogStream_20170605".

Si se ha autorizado, el tipo de receptor CloudWatchLogs puede crear automáticamente nuevas secuencias de registro cuando sea necesario en función de los nombres generados. Esto no puede hacerse con otros tipos de receptores, ya que deberían realizarse otros ajustes de configuración aparte del nombre de la secuencia.

Existen sustituciones de variables especiales que se producen en el texto y en las decoraciones de objetos. Para obtener más información, consulte Configuración de decoraciones de receptores.

Configuración de colas de receptores

Las declaraciones de receptores KinesisStream, KinesisFirehose y CloudWatchLogs pueden permitir de forma opcional que se pongan en cola los recursos que no han podido realizar correctamente la transmisión al servicio de AWS asociado con esos tipos de receptores por problemas de conectividad temporales. Para permitir la creación de colas y que la transmisión se intente de nuevo automáticamente cuando se restablezca la conectividad, utilice los siguientes pares clave-valor en las declaraciones de receptores:

QueueType

Especifica el tipo de mecanismo de creación de colas que se va a utilizar. El único valor admitido es file, lo que indica que los registros deben ponerse en cola en un archivo. Este par clave-valor es necesario para poder habilitar la característica de creación de colas de Kinesis Agent para Windows. Si no se especifica, el comportamiento predeterminado es que las colas solo se crean en memoria y no se puede realizar la transmisión cuando se alcanzan los límites de creación de colas en memoria.

QueuePath

Especifica la ruta de la carpeta que contiene los archivos de los registros en cola. Este par clave-valor es opcional. El valor predeterminado es %PROGRAMDATA%\KinesisTap\Queue\SinkId, donde SinkId es el identificador asignado como el valor del Id de la declaración del receptor.

QueueMaxBatches

Limita la cantidad total de espacio que Kinesis Agent para Windows puede consumir cuando los registros se ponen en cola para su transmisión. La cantidad de espacio está restringida al valor de este par clave-valor multiplicado por el número máximo de bytes por lote. El número máximo de bytes por lote en los tipos de receptores KinesisStream, KinesisFirehose y CloudWatchLogs son 5 MB, 4 MB y 1 MB, respectivamente. Cuando se alcanza este límite, los errores de transmisión no se ponen en cola y se notifican como errores no recuperables. Este par clave-valor es opcional. El valor predeterminado es de 10 000 lotes.

Configuración de un proxy para receptores

Si desea configurar un proxy para todos los tipos de receptores de Kinesis Agent para Windows que tengan a acceso a los servicios de AWS, edite el archivo de configuración de Kinesis Agent para Windows que se encuentra en%Program Files%\Amazon\KinesisTap\AWSKinesisTap.exe.config. Para obtener instrucciones, consulte laproxysección enReferencia de los archivos de configuración para el AWS SDK for .NETen laGuía para desarrolladores de AWS SDK para .NET.

Configurar la resolución de variables en más atributos de sumidero

El siguiente ejemplo muestra una configuración de receptores que usa elRegionVariable de entorno para el valor deRegionPar clave-valor de atributo. ParaRoleARN, especifica la clave de etiqueta EC2MyRoleARN, que evalúa el valor asociado a esa clave.

"Id": "myCloudWatchLogsSink", "SinkType": "CloudWatchLogs", "LogGroup": "EC2Logs", "LogStream": "logs-{instance_id}" "Region": "{env:Region}" "RoleARN": "{ec2tag:MyRoleARN}"

Configuración de puntos finales regionales de AWS STS al utilizar la propiedad RoleARN en los sumideros de AWS

Esta característica solo se aplica si usa Kinesistap en Amazon EC2 y usa elRoleARNde los sumideros de AWS para asumir un rol de IAM externo para autenticarse con los servicios de AWS de destino.

EstableciendoUseSTSRegionalEndpointsDe atrue, puede especificar que un agente use el extremo regional (por ejemplo,https://sts.us-east-1.amazonaws.com) en lugar del punto final global (por ejemplo,https://sts.amazonaws.com). El uso de un extremo STS regional reduce la latencia de ida y vuelta para la operación y limita el impacto de las fallas en el servicio global de endpoints.

Configuración de VPC Endpoint para los sumideros de AWS

Puede especificar un extremo de VPC en la configuración del receptor paraCloudWatchLogs,CloudWatch,KinesisStreams, yKinesisFirehosetipos de fregadero. Un punto de enlace de la VPC le permite conectar de forma privada la VPC a los servicios de AWS compatibles y a servicios de punto de enlace de la VPC habilitados por AWS PrivateLink sin necesidad de una gateway de Internet, un dispositivo NAT, una conexión de VPN o una conexión de AWS Direct Connect. Las instancias de su VPC no necesitan direcciones IP públicas para comunicarse con los recursos del servicio. El tráfico entre su VPC y el servicio no sale de la red de Amazon. Para obtener más información, consultePuntos de conexión de la VPCen laGuía del usuario de Amazon VPC.

Puede especificar el extremo de la VPC mediante la herramientaServiceURLPropiedad como se muestra en el siguiente ejemplo de unaCloudWatchLogsconfiguración de sumidero. Establezca el valor deServiceURLal valor que se muestra en la pestañaDetalles del punto de enlace de la VPCmediante la consola de Amazon VPC.

{ "Id": "myCloudWatchLogsSink", "SinkType": "CloudWatchLogs", "LogGroup": "EC2Logs", "LogStream": "logs-{instance_id}", "ServiceURL":"https://vpce-ab1c234de56-ab7cdefg.logs.us-east-1.vpce.amazonaws.com" }

Configuración de un medio alternativo de proxy

Esta función le permite configurar un servidor proxy en una configuración de receptor utilizando el soporte de proxy integrado en AWS SDK en lugar de .NET. Anteriormente, la única forma de configurar el agente para que use un proxy era usar una característica nativa de .NET, que enrutaba automáticamente todas las solicitudes HTTP/S a través del proxy definido en el archivo proxy.

Si está utilizando actualmente el agente con un servidor proxy, no necesita cambiar para utilizar este método.

Puede utilizar laProxyHostyProxyPortPara configurar un proxy alternativo tal y como se muestra en el siguiente ejemplo.

{ "Id": "myCloudWatchLogsSink", "SinkType": "CloudWatchLogs", "LogGroup": "EC2Logs", "LogStream": "logs-{instance_id}", "Region": "us-west-2", "ProxyHost": "myproxy.mydnsdomain.com", "ProxyPort": "8080" }