我正在使用资源受限的系统,无法利用文件系统和网络。我正在该系统中生成一些日志,并将这些日志作为我的响应的一部分发布。这些日志与响应分离并发布到 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 中的最终日志记录时间包裹。
有更好的方法吗?
最佳答案
我们已经使用 lambda 完成了类似的解决方案。
我们创建 kinesis 作为 lambda 的触发器,并进行一些清理并将数据插入到 Elasticsearch 中。我们使用 Kibana 搜索日志数据并对日志数据应用过滤。
正如您所提到的,您有某些限制来验证此解决方案是否适合您。
您还可以寻找 kinesis firehose 与 elasticsearch 的集成
关于java - 将日志数据从 Kinesis 写入 Cloudwatch 的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45802912/