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
exml
. 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, oTextDecoration
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.
Tópicos
- Configuração do coletor KinesisStream
- Configuração do coletor KinesisFirehose
- Configuração do CloudWatch
- Configuração do coletor CloudWatchLogs
- LocalFileSystemConfiguração do coletor
- Configuração de segurança do coletor
- Configurar oProfileRefreshingAWSCredentialProviderAtualizar credenciais da AWS
- Configuração de decorações de coletor
- Configuração de substituições de variáveis de coletor
- Configuração do enfileiramento do coletor
- Configuração de um proxy para coletores
- Configurando variáveis de resolução em mais atributos de coletor
- Configurando endpoints regionais do AWS STS ao usar a propriedade RoleARN nos pias da AWS
- Configurando o ponto final da VPC para pias da AWS
- Configurando um meio alternativo de proxy
Configuração do coletor KinesisStream
OKinesisStream
O 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 do
KinesisStream
tipo 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
OKinesisFirehose
O 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 do
KinesisStream
tipo 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 como
true
, 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
OCloudWatch
O 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
OCloudWatchLogs
O 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 pelo
CloudWatchLogs
tipo 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 pelo
CloudWatchLogs
tipo 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.
LocalFileSystem
Configuração do coletor
O tipo de piaFileSystem
salva registros de log e eventos em um arquivo no sistema de arquivos local em vez de transmiti-los para os serviços da AWS.FileSystem
sã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 umFileSystem
são salvos no único arquivo especificado comoFilePath
. SeFilePath
Não especificado, os registros serão salvos em um arquivo chamado
noSinkId
.txt%TEMP%
diretório, que normalmente éC:\Users\
, ondeUserName
\AppData\Local\Temp
é o identificador exclusivo do coletor eSinkId
é o nome de usuário ativo do Windows.UserName
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 exemploFileSystem
A 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": "" }
OFileSystem
A 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á
, ondeTempPath
\\SinkId
.txt
é a pasta armazenada noTempPath
%TEMP%
Variável e
é o identificador exclusivo do coletor.SinkId
Format
Especifica o formato do evento a ser
json
ouxml
. 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 que
Format
é definido comojson
. Esse par de chave/valor é opcional.
Uso Avançado — Controle de Registros e Simulação de Falha
FileSystem
pode 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 usarFileSystem
para simular e examinar o comportamento dos pias da AWS quando a rede falha.
O exemplo a seguir mostra umFileSystem
configuraçã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 do
RoleARN
O 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:
-
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.
-
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 .
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:
-
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.
-
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 .
-
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.
-
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.
-
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 oProfileRefreshingAWSCredentialProvider
Atualizar 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 oProfileRefreshingAWSCredentialProvider
para atualizar credenciais.
Você pode usar oCredentialRef
de qualquer configuração de sincronização da AWS para fazer referência a umCredentials
em que oCredentialType
AttributeProfileRefreshingAWSCredentialProvider
Como 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 usando
CredentialRef
para fazer referência a essa configuração de credencial.CredentialType
Defina como a string literal
ProfileRefreshingAWSCredentialProvider
.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 umaTextDecoration
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 textoThe system has resumed from sleep.
e essa origem está conectada ao coletor por um pipe, é feito streaming do textoMyComputer1:::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 umaObjectDecoration
de"ComputerName={ComputerName};DT={timestamp:yyyy-MM-dd HH:mm:ss}"
seja fornecida para um coletor que especifique JSONFormat
. 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 com
ObjectDecoration
. 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 seguinte
ObjectDecorationEx
Attribute:"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 dos
ObjectDecoration
deve 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 com
TextDecoration
, conforme mostrado no exemplo a seguir."TextDecorationEx": "Message '{lower(_record)}' at {format(_timestamp, 'yyyy-MM-dd')}"
Você pode usar o
TextDecorationEx
para 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 forNULL
e a função não é projetada para lidar comNULL
, umNULL
objeto é 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
, oLogGroup
També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ãoec2: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 doId
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
eCloudWatchLogs
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 oproxy
seçã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 oRegion
Variável de ambiente para o valor doRegion
Attribute 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 oRoleARN
dos coletores da AWS para assumir uma função externa do IAM para autenticar com os serviços da AWS de destino.
DefinindoUseSTSRegionalEndpoints
paratrue
, 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
, eKinesisFirehose
tipos 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 umCloudWatchLogs
configuração do coletor. Defina o valor deServiceURL
para 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 oProxyHost
eProxyPort
Para 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
" }