运动剂代理不解析文件



i在agent.json

中具有以下内容
{
  "cloudwatch.emitMetrics": true,
  "kinesis.endpoint": "",
  "firehose.endpoint": "", 
  "flows": [
    {
      "filePattern": "/home/ec2-user/ETLdata/contracts/Delta.csv",
      "kinesisStream": "ETL-rawdata-stream",
      "partitionKeyOption": "RANDOM",
      "dataProcessingOptions": [
        {
    "optionName": "CSVTOJSON",
    "customFieldNames": [ "field1", "field2"],
    "delimiter": ","
        }
      ] 
    }
  ]
}

当我将指定的文件添加到文件夹时,实际上什么也不会发生。我只在日志中看到以下内容。为什么根本不解析文件。有人有任何想法吗?

更新:当我将文件模式为/tmp/delta.csv时,它起作用。看起来像是一个权限问题,但日志中没有错误。

尾声进度:尾声已经解析了0个记录(0个字节(,转换为0 记录,跳过0个记录,并成功将0条记录发送给 目的地。2017-06-22 18:12:03.671 0000 (Agent.MetricsEmitter运行( com.amazon.kinesis.streaming.agent.agent [info]代理:进度:0 解析的记录(0个字节(和0个记录成功发送到 目的地。正常运行时间:300020ms

我也有类似的问题,我能够通过以下内容解决它:

  1. 将要发送到Kinesis Firehose流(一堆CSV文件(的数据从〜/ec2-user/out-data发送到另一个目录:

    mv *.csv /tmp/out-data
    
  2. 编辑Agent.json文件,以便代理在文件开头开始读取 - 这是我的agent.json文件:

    {
      "cloudwatch.emitMetrics": true,
      "firehose.endpoint": "firehose.eu-west-1.amazonaws.com",
      "flows": [
        {
          "filePattern": "/tmp/out-data/trx_headers_2017*",
          "deliveryStream": "TestDeliveryStream",
          "initialPosition": "START_OF_FILE"
        }
      ]
    }
    

我的猜测是您的delta.csv文件正在写信给,以便Kinesis代理检查文件的末尾并找不到新记录,如果您添加"initialPosition" : "START_OF_FILE"修复程序,它将在文件的开头开始解析。/p>

将数据移至/tmp/logs,/var/logs将解决问题。请勿在/ec2-user下留下数据。

链接到该问题:https://github.com/awslabs/amazon-kinesis-agent/issues/58

我也有同样的问题。我通过执行以下操作解决了它。

  1. 将数据移至var/logs/<anyfolder or file>
  2. 确保在编写后关闭文件。使用Python时,我在将日志写入文件后使用了f.close()

最新更新