2

我创建了一个 kinesis 流,在我的 EC2 实例上安装了一个 kinesis 代理并将其配置为从某个目录读取文件。

Kinesis 代理配置文件:

{
  "cloudwatch.emitMetrics": true,
  "kinesis.endpoint": "kinesis.eu-central-1.amazonaws.com",
  "firehose.endpoint": "firehose.eu-central-1.amazonaws.com",
  "awsAccessKeyId": "ACCESSKEYID",
  "awsSecretAccessKey": "SECRETACCESSKEY",

  "flows": [
    {
      "filePattern": "/home/ec2-user/workspace/connect_s3/documents/*.log",
      "kinesisStream": "EntryPoint",
      "partitionKeyOption": "RANDOM"
    }
]
}

我还为我的 EC2 实例提供了 Kinesis 所需的 IAM 策略(我稍后添加了访问密钥以进行调试)。

然后我启动我的代理,添加文件并跟踪/var/log/aws-kinesis-agent/aws-kinesis-agent.log文件,但没有任何反应。

我的代理正确启动,但是无论我向/home/ec2-user/workspace/connect_s3/documents/目录中添加多少文件,代理似乎都无法解析任何内容;它返回:

Tailer Progress: Tailer has parsed 0 records (0 bytes), transformed 0 records, skipped 0 records, and has successfully sent 0 records to destination.

我一直认为这可能是权限问题,但我更改了所有权限,一切都在 755 文件权限中。

但是,在我的 AWS 控制台中,蒸汽指标似乎正在监控正在发生的事情IMAGE HERE -> ( https://i.stack.imgur.com/n2ily.png )

有人遇到过类似的问题吗?在此先感谢您的阅读。

4

1 回答 1

1

我在发布后几秒钟就发现了这个问题(对不起,我花了几个小时来解决这个问题)。

对于任何有类似问题的人,如果您从 EC2 实例尝试此操作

  • 从 /ec2-user 中删除您的源目录 (filePattern) -> 将其放入 /var/
  • 添加"initialPosition": "START_OF_FILE"参数。

这是我的最终 agent.json 文件状态:

{
  "cloudwatch.emitMetrics": true,
  "kinesis.endpoint": "kinesis.eu-central-1.amazonaws.com",
  "firehose.endpoint": "firehose.eu-central-1.amazonaws.com",
  "awsAccessKeyId": "********",
  "awsSecretAccessKey": "**************",

  "flows": [
    {
      "filePattern": "/var/documents/*.txt",
      "kinesisStream": "EntryPoint",
      "partitionKeyOption": "RANDOM",
      "initialPosition": "START_OF_FILE"
    }
]
}

此外,原始答案来自这里:

Kinesis 代理不解析文件

于 2020-10-30T14:56:21.673 回答