Declarações de coletor - Agente do Amazon Kinesis do Microsoft Windows

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Declarações de coletor

Declarações de coletor especificam onde e de que forma os logs, eventos e métricas devem ser enviados para vários serviços da AWS. As seções a seguir descrevem as configurações para os tipos de coletor integrados que estão disponíveis no Amazon Kinesis Agent para Microsoft Windows. Como o Kinesis Agent para Windows é extensível, você pode adicionar tipos de coletor personalizados. Cada tipo de coletor geralmente requer pares de chave-valor exclusivos nas declarações de configuração que são relevantes para esse tipo de coletor.

Todas as declarações de coletor podem conter os seguintes pares de chave/valor:

Id

Uma string exclusiva que identifica um determinado coletor no arquivo de configuração (obrigatório).

SinkType

O nome do tipo desse coletor (obrigatório). O tipo de coletor especifica o destino do log, dos dados de métricas ou eventos que estão sendo transmitidos por esse coletor.

AccessKey

Especifica a chave de acesso da AWS a ser usada ao autorizar o acesso ao serviço da AWS associado ao tipo de coletor. Esse par de chave/valor é opcional. Para obter mais informações, consulte Configuração de segurança do coletor.

SecretKey

Especifica a chave secreta da AWS para ser usada ao autorizar o acesso ao serviço da AWS associado ao tipo de coletor. Esse par de chave/valor é opcional. Para obter mais informações, consulte Configuração de segurança do coletor.

Region

Especifica qual região da AWS contém os recursos de destino para streaming. Esse par de chave/valor é opcional.

ProfileName

Especifica qual perfil da AWS a ser usado para autenticação. Esse par de chave-valor é opcional, mas se for especificado, ele qualquer chave de acesso e chave secreta especificadas. Para obter mais informações, consulte Configuração de segurança do coletor.

RoleARN

Especifica a função do IAM a ser usada ao acessar o serviço da AWS associado ao tipo de coletor. Essa opção é útil quando o Kinesis Agent para Windows está em execução em uma instância do EC2, mas uma função diferente seria mais apropriada do que a função referenciada pelo perfil de instância. Por exemplo, uma função entre contas pode ser usada para acessar recursos que não estão na mesma conta da AWS que a instância do EC2. Esse par de chave/valor é opcional.

Format

Especifica o tipo de serialização que é aplicada aos logs e aos dados de eventos antes do streaming. Os valores válidos são json e xml. Essa opção é útil quando a análise de downstream no pipeline de dados exige ou prefere dados em um determinado formato. Esse par de chave-valor é opcional e, se não for especificado, será feito streaming do texto normal da origem do coletor para o serviço da AWS associado ao tipo de coletor.

TextDecoration

Quando nenhum Format está especificado, o TextDecoration determina o texto adicional que deverá ser incluído ao fazer streaming de logs ou de registros de eventos. Para obter mais informações, consulte Configuração de decorações de coletor. Esse par de chave/valor é opcional.

ObjectDecoration

Quando Format está especificado, ObjectDecoration determina quais dados adicionais estão incluídos no log ou no registro de evento antes da serialização e do streaming. Para obter mais informações, consulte Configuração de decorações de coletor. Esse par de chave/valor é opcional.

BufferInterval

Para minimizar chamadas de API para o serviço da AWS associado ao tipo de coletor, o Kinesis Agent para Windows armazena em buffer vários registros de log, eventos e métricas antes do streaming. Dessa forma, você pode economizar dinheiro em caso de serviços nos quais é feita cobrança por chamada de API. O BufferInterval especifica o tempo máximo (em segundos) durante o qual os registros devem ser armazenados em buffer antes do streaming para o serviço da AWS. Esse par de chave-valor é opcional e, se especificado, use uma string para representar o valor.

BufferSize

Para minimizar chamadas de API para o serviço da AWS associado ao tipo de coletor, o Kinesis Agent para Windows armazena em buffer vários registros de log, eventos e métricas antes do streaming. Dessa forma, você pode economizar dinheiro em caso de serviços nos quais é feita cobrança por chamada de API. O BufferSize especifica o número máximo de registros a serem armazenados em buffer antes do streaming para o serviço da AWS. Esse par de chave-valor é opcional e, se for especificado, use uma string para representar o valor.

MaxAttempts

Especifica o número máximo de vezes que o Kinesis Agent para Windows tenta fazer streaming de um conjunto de registros de log, eventos e métricas para um serviço da AWS se ocorrer uma falha de forma consistente no streaming. Esse par de chave/valor é opcional. Se ele for especificado, use uma string para representar o valor. O valor padrão é "3".

Para obter exemplos de arquivos de configuração completos que usam vários tipos de coletores, consulte Streaming do log de eventos de aplicativos do Windows para coletores.

Configuração do coletor KinesisStream

OKinesisStreamO tipo de coletor faz streaming de registros de log e eventos para o serviço de Streams de dados do Kinesis. Normalmente, os dados dos quais é feito streaming para Kinesis Data Streams são processados por um ou mais aplicativos personalizados que são executados com vários serviços da AWS. É feito streaming dos dados para um determinado stream que é configurado com o Kinesis Data Streams. Para obter mais informações, consulte o .Guia do desenvolvedor do Amazon Kinesis Data Streams.

Veja a seguir um exemplo de declaração de coletor do Kinesis Data Streams:

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

Todas as declarações de coletor KinesisStream podem fornecer os seguintes pares de chave/valor adicionais:

SinkType

Deve ser especificado, e o valor deve ser a string literal KinesisStream.

StreamName

Especifica o nome do stream de dados do Kinesis que recebe os dados dos quais é feito streaming doKinesisStreamtipo de pia (obrigatório). Antes do streaming dos dados, configure o stream no AWS Management Console, na CLI da AWS ou por meio de um aplicativo com a API do Kinesis Data Streams.

RecordsPerSecond

Especifica o número máximo de registros dos quais foi feito streaming para Kinesis Data Streams por segundo. Esse par de chave/valor é opcional. Se ele for especificado, use um valor inteiro para representar o valor. O valor padrão é 1.000 registros.

BytesPerSecond

Especifica o número máximo de bytes dos quais foi feito streaming para Kinesis Data Streams por segundo. Esse par de chave/valor é opcional. Se ele for especificado, use um valor inteiro para representar o valor. O valor padrão é 1 MB.

O BufferInterval padrão para esse tipo de coletor é 1 segundo, e o BufferSize padrão é 500 registros.

Configuração do coletor KinesisFirehose

OKinesisFirehoseO tipo de coletor faz streaming de registros de log e eventos para o serviço Kinesis Data Firehose. O Kinesis Data Firehose fornece dados transmitidos para outros serviços para armazenamento. Normalmente, os dados armazenados são analisados em estágios subsequentes do pipeline de dados. É feito streaming dos dados para um stream de entrega que é configurado com o Kinesis Data Firehose. Para obter mais informações, consulte o .Guia do desenvolvedor do Amazon Kinesis Data Firehose.

Veja a seguir um exemplo de declaração de coletor do Kinesis Data Firehose do:

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

Todas as declarações de coletor KinesisFirehose podem fornecer os seguintes pares de chave/valor adicionais:

SinkType

Deve ser especificado, e o valor deve ser a string literal KinesisFirehose.

StreamName

Especifica o nome do stream de entrega do Kinesis Data Firehose que recebe os dados dos quais é feito streaming doKinesisStreamtipo de pia (obrigatório). Antes do streaming dos dados, configure o stream de entrega usando o AWS Management Console, a CLI da AWS ou por meio de um aplicativo com a API do Kinesis Data Firehose.

CombineRecords

Quando definido comotrue, especifica combinar vários registros pequenos em um registro grande com um tamanho máximo de 5 KB. Esse par de chave/valor é opcional. Os registros combinados usando esta função são separados por\n. Se você usar o AWS Lambda para transformar um registro do Kinesis Data Firehose, sua função do Lambda precisará considerar o caractere separador.

RecordsPerSecond

Especifica o número máximo de registros dos quais é feito streaming para Kinesis Data Streams por segundo. Esse par de chave/valor é opcional. Se ele for especificado, use um valor inteiro para representar o valor. O valor padrão é 5.000 registros.

BytesPerSecond

Especifica o número máximo de bytes dos quais é feito streaming para Kinesis Data Streams por segundo. Esse par de chave/valor é opcional. Se ele for especificado, use um valor inteiro para representar o valor. O valor padrão é 5 MB.

O BufferInterval padrão para esse tipo de coletor é 1 segundo, e o BufferSize padrão é 500 registros.

Configuração do CloudWatch

OCloudWatchO tipo de coletor faz streaming de métricas para o serviço do CloudWatch. É possível visualizar as métricas no AWS Management Console do. Para obter mais informações, consulte o Guia do usuário do Amazon CloudWatch.

Veja a seguir um exemplo de declaração de coletor do CloudWatch:

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

Todas as declarações de coletor CloudWatch podem fornecer os seguintes pares de chave/valor adicionais:

SinkType

Deve ser especificado, e o valor deve ser a string literal CloudWatch.

Interval

Especifica com que frequência (em segundos) o Kinesis Agent for Windows relata métricas para o serviço do CloudWatch. Esse par de chave/valor é opcional. Se ele for especificado, use um valor inteiro para representar o valor. O valor padrão é de 60 segundos. Especifique 1 segundo se quiser métricas do CloudWatch de alta resolução.

Namespace

Especifica o namespace do CloudWatch no qual os dados das métricas são relatados. Os namespaces do CloudWatch agrupam um conjunto de métricas. Esse par de chave/valor é opcional. O valor padrão é KinesisTap.

Dimensions

Especifica as dimensões do CloudWatch usadas para isolar conjuntos de métricas em um namespace. Isso pode ser útil para fornecer conjuntos separados de dados de métricas para cada desktop ou servidor, por exemplo. Esse par de chave-valor é opcional e, se for especificado, o valor deverá estar em conformidade com o seguinte formato: "key1=value1;key2=value2...". O valor padrão é "ComputerName={computername};InstanceId={instance_id}". Esse valor oferece suporte à substituição de variável de coletor. Para obter mais informações, consulte Configuração de substituições de variáveis de coletor.

MetricsFilter

Especifica de quais métricas é feito streaming para o CloudWatch da origem de métricas incorporadas do Kinesis Agent para Windows. Para obter mais informações sobre a origem de métricas integrada do Kinesis Agent para Windows, incluindo os detalhes da sintaxe do valor desse par de chave/valor, consulteOrigem de métricas incorporadas do Kinesis Agent para Windows.

Configuração do coletor CloudWatchLogs

OCloudWatchLogsO tipo de coletor faz streaming de registros de log e eventos para o Amazon CloudWatch Logs É possível visualizar os logs no AWS Management Console ou processá-los por meio de estágios adicionais de um pipeline de dados. É feito streaming dos dados para um stream de logs que é configurado no CloudWatch Logs. Os streams de log são organizados em grupos de logs. Para obter mais informações, consulte o .Amazon CloudWatch Logs.

Veja a seguir um exemplo de declaração de coletor do CloudWatch Logs:

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

Todas as declarações do coletor CloudWatchLogs devem fornecer os seguintes pares de chave/valor adicionais:

SinkType

Deve ser a string literal CloudWatchLogs.

LogGroup

Especifica o nome do grupo de logs do CloudWatch Logs que contém o stream de logs que recebe os registros de log e eventos dos quais o faz streaming peloCloudWatchLogstipo de pia. Se o grupo de logs especificado não existir, o Kinesis Agent para Windows tentará criá-lo.

LogStream

Especifica o nome do stream de logs do CloudWatch Logs que recebe o stream de registros de log e eventos peloCloudWatchLogstipo de pia. Esse valor oferece suporte à substituição de variável de coletor. Para obter mais informações, consulte Configuração de substituições de variáveis de coletor. Se o stream de logs especificado não existir, o Kinesis Agent para Windows tentará criá-lo.

O BufferInterval padrão para esse tipo de coletor é 1 segundo, e o BufferSize padrão é 500 registros. O tamanho máximo é 10.000 registros.

LocalFileSystemConfiguração do coletor

O tipo de piaFileSystemsalva registros de log e eventos em um arquivo no sistema de arquivos local em vez de transmiti-los para os serviços da AWS.FileSystemsão úteis para testes e diagnósticos. Por exemplo, você pode usar esse tipo de coletor para examinar registros antes de enviá-los para a AWS.

comFileSystem, você também pode usar parâmetros de configuração para simular lotes, limitação e retry-on-error para imitar o comportamento de pias reais da AWS.

Todos os registros de todas as fontes conectadas a umFileSystemsão salvos no único arquivo especificado comoFilePath. SeFilePathNão especificado, os registros serão salvos em um arquivo chamadoSinkId.txtno%TEMP%diretório, que normalmente éC:\Users\UserName\AppData\Local\Temp, ondeSinkIdé o identificador exclusivo do coletor eUserNameé o nome de usuário ativo do Windows.

Este tipo de coletor suporta atributos de decoração de texto. Para obter mais informações, consulte Configuração de decorações de coletor.

Um exemploFileSystemA configuração do tipo de coletor é mostrada no exemplo a seguir.

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

OFileSystemA configuração consiste nos seguintes pares de chave/valor.

SinkType

Deve ser a string literal FileSystem.

FilePath

Especifica o caminho e o arquivo onde os registros são salvos. Esse par de chave/valor é opcional. Se não especificado, o padrão seráTempPath\\SinkId.txt, ondeTempPathé a pasta armazenada no%TEMP%Variável eSinkIdé o identificador exclusivo do coletor.

Format

Especifica o formato do evento a serjsonouxml. Esse par de valor de chave é opcional e não diferencia maiúsculas e minúsculas. Se omitidos, os eventos são gravados no arquivo em texto simples.

TextDecoration

Aplica-se apenas a eventos escritos em texto simples. Esse par de chave/valor é opcional.

ObjectDecoration

Aplica-se somente a eventos em queFormaté definido comojson. Esse par de chave/valor é opcional.

Uso Avançado — Controle de Registros e Simulação de Falha

FileSystempode imitar o comportamento dos pias da AWS simulando a limitação de registros. É possível usar os seguintes pares de chave/valor para especificar atributos de simulação de falha e limitação de registros.

Ao adquirir um bloqueio no arquivo de destino e impedir gravações nele, você pode usarFileSystempara simular e examinar o comportamento dos pias da AWS quando a rede falha.

O exemplo a seguir mostra umFileSystemconfiguração com atributos de simulação.

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

Opcional e especificado como um tipo de string. Se omitido, o padrão será"5". Controla a taxa de solicitações que o coletor processa, ou seja, grava no arquivo, não o número de registros. O Kinesis Agent para Windows faz solicitações em lote para endpoints da AWS, portanto, uma solicitação pode conter vários registros.

BufferSize

Opcional e especificado como tipo de string. Especifica o número máximo de registros de eventos que o coletor agrupa antes de salvar no arquivo.

MaxBatchSize

Opcional e especificado como um tipo de string. Especifica a quantidade máxima de dados de registro de evento em bytes que os lotes do coletor antes de salvar no arquivo.

O limite máximo de taxa de registro é uma função deBufferSize, o que determina o número máximo de registros por solicitação, eRequestsPerSecond. Você pode calcular o limite de taxa de registro por segundo usando a seguinte fórmula.

RecordRate=BufferSize*RequestsPerSecond

Dados os valores de configuração no exemplo acima, há uma taxa de registro máxima de 1000 registros por segundo.

Configuração de segurança do coletor

Como configurar a autenticação da

Para o Kinesis Agent for Windows fazer streaming de logs, eventos e métricas para os serviços da AWS, o acesso deve ser autenticado. Existem diversas formas de fornecer autenticação para o Kinesis Agent para Windows. A forma como você faz isso depende da situação em que o Kinesis Agent para Windows está em execução e dos requisitos de segurança específicos para uma organização.

  • Se o Kinesis Agent para Windows estiver em execução em um host do Amazon EC2, a maneira mais simples e segura de fornecer autenticação é criar uma função do IAM com acesso suficiente às operações necessárias para os serviços da AWS e um perfil de instância do EC2 que faça referência a essa função. Para obter informações sobre a criação de perfis da instância, consulte Uso de perfis de instância. Para obter informações sobre quais políticas associar à função do IAM, consulteConfiguração da autorização da .

    Depois de criar o perfil de instância, você pode associá-lo a todas as instâncias do EC2 que usam o Kinesis Agent para Windows. Se as instâncias já tiverem um perfil de instância associado, você poderá associar as políticas adequadas à função que estiver associada a esse perfil.

  • Se o Kinesis Agent para Windows for executado em um host do EC2 em uma conta, mas os recursos que forem o destino do coletor residirem em uma conta diferente, você poderá criar uma função do IAM para acesso entre contas. Para obter mais informações, consulteTutorial: Delegar acesso entre contas da AWS usando funções do IAM. Depois de criar a função entre contas, especifique o nome de recurso da Amazon (ARN) para a função entre contas como o valor doRoleARNO par de chave-valor na declaração de coletor. Depois, o Kinesis Agent para Windows tenta assumir a função entre contas especificada ao acessar os recursos da AWS associados ao tipo desse coletor.

  • Se o Kinesis Agent para Windows estiver em execução fora do Amazon EC2 (por exemplo, no local), há várias opções:

    • Se for aceitável registrar o servidor no local ou uma máquina de desktop como uma instância gerenciada pelo Amazon EC2 Systems Manager, use o processo a seguir para configurar a autenticação:

      1. Use o processo descrito em Configuração do AWS Systems Manager em ambientes híbridos para criar uma função de serviço, criar uma ativação para uma instância gerenciada e instalar o agente do SSM.

      2. Associe as políticas adequadas à função de serviço para permitir que o Kinesis Agent para Windows acesse os recursos necessários para fazer streaming de dados dos coletores configurados. Para obter informações sobre quais políticas associar à função do IAM, consulteConfiguração da autorização da .

      3. Use o processo descrito emConfigurar oProfileRefreshingAWSCredentialProviderAtualizar credenciais da AWSpara atualizar as credenciais da AWS.

      Essa é a abordagem recomendada para instâncias que não sejam do EC2 porque as credenciais são gerenciadas de forma segura pelo SSM e pela AWS.

    • Se for aceitável executar o serviço AWSKinesisTap para o Kinesis Agent para Windows em um usuário específico em vez da conta padrão do sistema, use o processo a seguir:

      1. Crie um usuário do IAM na conta da AWS na qual os serviços da AWS serão usados. Capture a chave de acesso e a chave secreta desse usuário durante o processo de criação. Você precisará dessas informações para etapas posteriores desse processo.

      2. Associe políticas ao usuário do IAM do que autorizem o acesso às operações necessárias para os serviços exigidos. Para obter informações sobre quais políticas associar ao usuário do IAM, consulteConfiguração da autorização da .

      3. Altere o serviço AWSKinesisTap em cada desktop ou servidor para que ele seja executado em um usuário específico em vez da conta do sistema padrão.

      4. Crie um perfil no armazenamento de SDKs usando a chave de acesso e a chave secreta registradas anteriormente. Para obter mais informações, consulte Configuração das credenciais da AWS.

      5. Atualize o arquivo AWSKinesisTap.exe.config no diretório %PROGRAMFILES%\Amazon\AWSKinesisTap para especificar o nome do perfil criado na etapa anterior. Para obter mais informações, consulte Configuração das credenciais da AWS.

      Essa é a abordagem recomendada para hosts que não sejam do EC2 que não podem ser instâncias gerenciadas, pois as credenciais são criptografadas para o host e o usuário específicos.

    • Se for necessário executar o serviço AWSKinesisTap para o Kinesis Agent para Windows na conta padrão do sistema, use um arquivo de credenciais compartilhado. Isso ocorre porque a conta do sistema não tem perfil de usuário do Windows para habilitar o armazenamento de SDKs. Os arquivos de credenciais compartilhados não são criptografados, portanto, não recomendamos essa abordagem. Para obter informações sobre como usar arquivos de configuração compartilhados, consulteConfigurar as credenciais da AWSnoAWS SDK para .NET. Se você usar essa abordagem, recomendamos usar a criptografia NTFS e o acesso de arquivos restrito ao arquivo de configuração compartilhado. As chaves devem ser alteradas por uma plataforma de gerenciamento, e o arquivo de configuração compartilhado deve ser atualizado quando ocorre a alteração de chaves.

Embora seja possível fornecer diretamente as chaves de acesso e chaves secretas nas declarações de coletor, essa abordagem não é recomendada porque as declarações não são criptografadas.

Configuração da autorização da

Associe as políticas adequadas que se seguem ao usuário do IAM ou à função do que o Kinesis Agent para Windows usará para fazer streaming de dados para serviços da 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 a autorização a uma região específica, a conta ou o nome do stream, substitua os asteriscos apropriados no ARN pelos valores específicos. Para obter mais informações, consulte "Nomes de recursos da Amazon (ARNs) para streams de dados do Kinesis" em Controle de acesso aos recursos de stream de dados do Amazon Kinesis usando o 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 a autorização a uma região, conta ou o nome do fluxo de entrega específico, substitua os asteriscos apropriados no ARN pelos valores específicos. Para obter mais informações, consulteControlar o acesso com o Amazon Kinesis Data FirehosenoGuia do desenvolvedor do Amazon Kinesis Data Firehose.

CloudWatch

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

Para obter mais informações, consulteVisão geral do gerenciamento de permissões de acesso aos recursos do CloudWatchnoAmazon CloudWatch Logs.

O CloudWatch Logs com um grupo e stream de logs 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 o acesso a uma região, conta, grupo de logs ou stream de logs específico, substitua os asteriscos apropriados nos ARNs pelos valores apropriados. Para obter mais informações, consulteVisão geral do gerenciamento de permissões de acesso aos recursos do CloudWatch LogsnoAmazon CloudWatch Logs.

CloudWatch Logs com permissões extras para o Kinesis Agent for Windows para criar grupos de logs e streams de logs

{ "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 o acesso a uma região, conta, grupo de logs ou stream de logs específico, substitua os asteriscos apropriados nos ARNs pelos valores apropriados. Para obter mais informações, consulteVisão geral do gerenciamento de permissões de acesso aos recursos do CloudWatch LogsnoAmazon CloudWatch Logs.

Permissões necessárias para a expansão de variáveis de tags do EC2

O uso da expansão de variáveis com o prefixo de variável ec2tag requer a permissão ec2:Describe*.

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

Você pode combinar várias instruções em uma única política, desde que o Sid de cada declaração seja exclusivo na política. Para obter informações sobre como criar políticas, consulteCriar políticas do IAMnoGuia do usuário do IAM.

Configurar oProfileRefreshingAWSCredentialProviderAtualizar credenciais da AWS

Se você usar o AWS Systems Manager para ambientes híbridos para gerenciar credenciais da AWS, o Systems Manager girará as credenciais de sessão noc:\Windows\System32\config\systemprofile\.aws\credentials. Para obter mais informações sobre o Systems Manager para ambientes híbridos, consulteConfigurando o AWS Systems Manager para ambientes híbridosnoGuia do usuário do AWS Systems Manager.

Como o AWS .net SDK não pega novas credenciais automaticamente, fornecemos oProfileRefreshingAWSCredentialProviderpara atualizar credenciais.

Você pode usar oCredentialRefde qualquer configuração de sincronização da AWS para fazer referência a umCredentialsem que oCredentialTypeAttributeProfileRefreshingAWSCredentialProviderComo mostrado no exemplo a seguir.

{ "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 }] }

Uma definição de credencial consiste nos seguintes atributos como pares de chave/valor.

Id

Define a string que as definições de coletor podem especificar usandoCredentialRefpara fazer referência a essa configuração de credencial.

CredentialType

Defina como a string literalProfileRefreshingAWSCredentialProvider.

Profile

Optional. O padrão é default.

FilePath

Optional. Especifica o caminho para o arquivo de credenciais da AWS. Se omitido, %USERPROFILE%/.aws/credentials será o padrão.

RefreshingInterval

Optional. A frequência na qual as credenciais são atualizadas, em segundos. Se omitido, 300 será o padrão.

Configuração de decorações de coletor

As declarações de coletor podem incluir pares de chave-valor que especificam dados adicionais para fazer streaming para vários serviços da AWS a fim de aprimorar os registros reunidas da origem.

TextDecoration

Use esse par chave-valor quando nenhum Format estiver especificado na declaração de coletor. O valor é uma string de formato especial em que ocorre a substituição de variáveis. Por exemplo, suponha que uma TextDecoration de "{ComputerName}:::{timestamp:yyyy-MM-dd HH:mm:ss}:::{_record}" seja fornecida para um coletor. Quando uma origem emite um registro de log com o texto The system has resumed from sleep. e essa origem está conectada ao coletor por um pipe, é feito streaming do texto MyComputer1:::2017-10-26 06:14:22:::The system has resumed from sleep. para o serviço da AWS associado ao tipo de coletor. A variável {_record} faz referência ao registro de texto original entregue pela origem.

ObjectDecoration

Use esse par de chave-valor quando Format está especificado na declaração de coletor para adicionar dados extras antes da serialização de registros. Por exemplo, suponha que uma ObjectDecoration de "ComputerName={ComputerName};DT={timestamp:yyyy-MM-dd HH:mm:ss}" seja fornecida para um coletor que especifique JSON Format. O JSON resultante do qual foi feito streaming para o serviço da AWS associado ao tipo de coletor inclui os seguintes pares de chave-valor, além dos dados originais da origem:

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

Para ver um exemplo de uso ObjectDecoration, consulte Tutorial: Transmitir arquivos de log JSON para o Amazon S3 usando o Kinesis Agent para Windows.

ObjectDecorationEx

Especifica uma expressão, que permite extração e formatação de dados mais flexíveis em comparação comObjectDecoration. Este campo pode ser usado quando o formato do coletor éjson. A sintaxe da expressão é mostrada a seguir.

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

Por exemplo, o seguinteObjectDecorationExAttribute:

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

Transforma o registro literal:

System log message

Em um objeto JSON da seguinte forma, com os valores retornados pelas expressões:

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

Para obter mais informações sobre como formular expressões, consulteDicas para escrever expressões. A maioria dosObjectDecorationdeve funcionar usando a nova sintaxe com exceção das variáveis de carimbo de data/hora. A{timestamp:yyyyMMdd}emObjectDecorationé expressa como{format(_timestamp,'yyyyMMdd')}emObjectDecorationEx.

TextDecorationEx

Especifica uma expressão, que permite extração e formatação de dados mais flexíveis em comparação comTextDecoration, conforme mostrado no exemplo a seguir.

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

Você pode usar oTextDecorationExpara compor objetos JSON. Use '@ {'para escapar a chaves abertas, conforme mostrado no exemplo a seguir.

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

Se o tipo da origem conectada ao coletor for DirectorySource, o coletor poderá usar três variáveis adicionais:

_FilePath

O caminho completo para o arquivo de log.

_FileName

O nome e a extensão do nome do arquivo.

_Position

Um valor inteiro que representa onde o registro está localizado no arquivo de log.

Essas variáveis são úteis quando você usa uma origem que reúne os registros de log de vários arquivos conectados a um coletor que faz streaming de todos os registros para um único stream. A injeção dos valores dessas variáveis nos registros de streaming permite que a análise de downstream no pipeline de dados ordene os registros por arquivo e por local em cada arquivo.

Dicas para escrever expressões

Uma expressão pode ser qualquer uma destas:

  • Uma expressão variável.

  • Uma expressão constante, por exemplo,'hello',1,1.21,null,true,false.

  • Uma expressão de invocação que chama uma função, conforme mostrado no exemplo a seguir.

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

Caracteres especiais

Duas barras invertidas são necessárias para escapar caracteres especiais.

Nesting

As invocações de função podem ser aninhadas, conforme mostrado no exemplo a seguir.

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

Variables

Existem três tipos de variáveis: local, meta e global.

  • Variáveis locaisComece com um$tais como$message. Eles são usados para resolver a propriedade do objeto de evento, uma entrada se o evento for um dicionário, ou um atributo se o evento for um objeto JSON. Se a variável local contiver espaços ou caracteres especiais, use uma variável local entre aspas, como$'date created'.

  • Variáveis metaComece com um sublinhado (_) e são usados para resolver os metadados do evento. Todos os tipos de eventos suportam as seguintes variáveis meta.

    _timestamp

    O time stamp do evento.

    _record

    A representação de texto bruto do evento.

    Os eventos de log suportam as seguintes meta variáveis adicionais.

    _filepath

    _filename

    _position

    _linenumber

  • Variáveis globaisresolver para variáveis de ambiente, metadados de instância do EC2 ou EC2tag. Para obter o melhor desempenho, recomendamos usar o prefixo para limitar o escopo da pesquisa, como{env:ComputerName},{ec2:InstanceId}, e{ec2tag:Name}.

Funções incorporadas

O Kinesis Agent para Windows oferece suporte às seguintes funções incorporadas do. Se algum dos argumentos forNULLe a função não é projetada para lidar comNULL, umNULLobjeto é retornado.

//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)

Configuração de substituições de variáveis de coletor

As declarações de coletor KinesisStream, KinesisFirehose e CloudWatchLogs exigem um par de chave-valor LogStream ou StreamName. Os valores desses pares de chaves-valores podem conter referências a variáveis que são automaticamente resolvidas pelo Kinesis Agent para Windows. para oCloudWatchLogs, oLogGroupTambém é necessário e pode conter referências a variáveis que são automaticamente resolvidas pelo Kinesis Agent para Windows. As variáveis são especificadas usando o modelo {prefix:variablename} em que prefix: é opcional. Os prefixos compatíveis são os seguintes:

  • env— A referência a variáveis é resolvida para o valor da variável de ambiente com o mesmo nome.

  • ec2— A referência a variáveis é resolvida para os metadados da instância do EC2 com o mesmo nome.

  • ec2tag— A referência a variáveis é resolvida para o valor da tag de instância do EC2 com o mesmo nome. A permissão ec2:Describe* é necessária para acessar as tags de instância. Para obter mais informações, consulte Permissões necessárias para a expansão de variáveis de tags do EC2.

Se o prefixo não for especificado, se houver uma variável de ambiente com o mesmo nome que variablename, a referência a variáveis será resolvida para o valor da variável de ambiente. Caso contrário, se variablename for instance_id ou hostname, a referência a variáveis será resolvida para o valor dos metadados do EC2 com o mesmo nome. Caso contrário, a referência a variáveis não será resolvida.

Veja a seguir exemplos de pares de chave-valor válidos usando referências a variáveis:

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

As declarações de coletor do CloudWatchLogs oferecem suporte a uma variável de timestamp de formato especial que permite que o timestamp do registro de evento ou log original da origem altere o nome do stream de logs. O formato é {timestamp:timeformat}. Veja o exemplo a seguir:

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

Se o registro de evento ou log foi gerado em 5 de junho de 2017, o valor do par de chave-valor LogStream no exemplo anterior seria resolvido para "LogStream_20170605".

Se autorizado, o tipo de coletor CloudWatchLogs pode criar automaticamente novos streams de log quando necessários com base nos nomes gerados. Você não pode fazer isso para outros tipos de coletor, pois eles exigem configuração adicional além do nome do stream.

Há substituições de variáveis especiais que ocorrem na decoração de objeto e texto. Para obter mais informações, consulte Configuração de decorações de coletor.

Configuração do enfileiramento do coletor

As declarações dos coletores KinesisStream, KinesisFirehose e CloudWatchLogs também poderão ativar o enfileiramento de registros cujo streaming para o serviço da AWS associado falhou com esses tipos de coletor devido a problemas de conectividade temporários. Para ativar o enfileiramento e novas tentativas de streaming automático quando a conectividade for restaurada, use os seguintes pares de chave-valor nas declarações de coletor:

QueueType

Especifica o tipo de mecanismo de enfileiramento a ser usado. O único valor com suporte é file, que indica que os registros devem ser colocados na fila em um arquivo. Esse par de chave-valor é obrigatório para ativar o recurso de enfileiramento do Kinesis Agent para Windows. Se não for especificado, o comportamento padrão será apenas colocar na fila na memória e não efetuar o streaming quando os limites de enfileiramento na memória forem atingidos.

QueuePath

Especifica o caminho para a pasta que contém os arquivos de registros em fila. Esse par de chave/valor é opcional. O valor padrão é %PROGRAMDATA%\KinesisTap\Queue\SinkId em que SinkId é o identificador atribuído como o valor do Id para a declaração de coletor.

QueueMaxBatches

Limita a quantidade total de espaço que o Kinesis Agent para Windows pode consumir ao colocar registros na fila para streaming. A quantidade de espaço é limitada ao valor desse par de chave/valor multiplicado pelo número máximo de bytes por lote. O número máximo de bytes por lote para os tipos de coletor KinesisStream, KinesisFirehose e CloudWatchLogs são 5 MB, 4 MB e 1 MB, respectivamente. Quando esse limite for atingido, nenhuma das falhas de streaming será colocada em fila e as falhas serão relatadas como não recuperáveis. Esse par de chave/valor é opcional. O valor padrão é 10.000 lotes.

Configuração de um proxy para coletores

Para configurar um proxy para todos os tipos de coletor do Kinesis Agent para Windows que acessam os serviços da AWS, edite o arquivo de configuração do Kinesis Agent para Windows localizado em%Program Files%\Amazon\KinesisTap\AWSKinesisTap.exe.config. Para obter instruções, consulte oproxyseção emReferência de arquivos de configuração do AWS SDK for .NETnoGuia do desenvolvedor do AWS SDK para .NET.

Configurando variáveis de resolução em mais atributos de coletor

O exemplo a seguir mostra uma configuração de coletor do que usa oRegionVariável de ambiente para o valor doRegionAttribute chave-valor. para oRoleARN, ele especifica a chave de tag EC2MyRoleARN, que é avaliado para o valor associado a essa chave.

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

Configurando endpoints regionais do AWS STS ao usar a propriedade RoleARN nos pias da AWS

Esse recurso só se aplicará se você estiver usando o KinesISTAP no Amazon EC2 e usando oRoleARNdos coletores da AWS para assumir uma função externa do IAM para autenticar com os serviços da AWS de destino.

DefinindoUseSTSRegionalEndpointsparatrue, você pode especificar que um agente use o endpoint regional (por exemplo,https://sts.us-east-1.amazonaws.com) em vez do endpoint global (por exemplo,https://sts.amazonaws.com). O uso de um endpoint STS Regional reduz a latência de ida e volta para a operação e limita o impacto de falhas no serviço de endpoint global.

Configurando o ponto final da VPC para pias da AWS

Você pode especificar um endpoint da VPC na configuração do coletor paraCloudWatchLogs,CloudWatch,KinesisStreams, eKinesisFirehosetipos de pia. Um VPC endpoint permite que você conecte de forma privada a VPC aos serviços da AWS compatíveis e aos serviços do VPC endpoint desenvolvidos pelo AWS PrivateLink sem exigir um gateway da Internet, um dispositivo NAT, uma conexão VPN ou uma conexão do AWS Direct Connect. As instâncias na sua VPC não exigem que endereços IP públicos se comuniquem com recursos no serviço. O tráfego entre a sua VPC e os outros serviços não deixa a rede da Amazon. Para obter mais informações, consulteVPC endpointsnoGuia do usuário da Amazon VPC.

Você especifica o endpoint da VPC usando o parâmetroServiceURL, conforme mostrado no exemplo a seguir de umCloudWatchLogsconfiguração do coletor. Defina o valor deServiceURLpara o valor mostrado na guiaDetalhes do VPC endpointusando o console da Amazon VPC.

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

Configurando um meio alternativo de proxy

Esse recurso permite que você configure um servidor proxy em uma configuração de coletor usando o suporte de proxy integrado ao AWS SDK em vez do .NET. Anteriormente, a única maneira de configurar o agente para usar um proxy era usar um recurso nativo do .NET, que roteava automaticamente todas as solicitações HTTP/S através do proxy definido no arquivo proxy.

Se você estiver usando o agente com um servidor proxy no momento, não será necessário alterar para usar esse método.

Você pode usar oProxyHosteProxyPortPara configurar um proxy alternativo, conforme mostrado no exemplo a seguir.

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