我使用的是资源受限的系统,无法使用文件系统和网络。我在这个系统中生成一些日志,并将这些日志作为响应的一部分发布。这些日志从响应中分离出来,并发布到Kinesis。我在JsonLayout中有以下日志数据作为Kinesis的有效负载。
{
  "timeMillis" : 1503336276808,
  "thread" : "main",
  "level" : "ERROR",
  "loggerName" : "com.psr",
  "message" : "From tests",
  "endOfBatch" : false,
  "loggerFqcn" : "org.apache.logging.log4j.spi.AbstractLogger",
  "threadId" : 1,
  "threadPriority" : 5
}
{
  "timeMillis" : 1503336312411,
  "thread" : "main",
  "level" : "ERROR",
  "loggerName" : "com.psr",
  "message" : "more logs",
  "endOfBatch" : false,
  "loggerFqcn" : "org.apache.logging.log4j.spi.AbstractLogger",
  "threadId" : 1,
  "threadPriority" : 5
}我想利用这些日志作为衡量标准,并在未来易于搜索。Cloudwatch似乎是实现这些目标的完美目的地。
目前的计划是使用AWS lambda并将有效负载直接记录到cloudwatch。这似乎并不优雅和嘈杂,因为日志和日志组的时间将由lambda中的最终日志时间包装。
有没有更好的方法呢?
发布于 2017-08-22 02:25:12
我们已经使用lambda做了一个类似的解决方案。
我们创建kinesis作为lambda的触发器,并进行一些清理并将数据插入到elastic search中。使用Kibana,我们搜索日志数据并对日志数据进行过滤。
正如您所提到的,您有一定的约束来验证此解决方案是否适合您。
您还可以寻找与elasticsearch的kinesis firehose集成
https://stackoverflow.com/questions/45802912
复制相似问题