我正在使用资源受限的系统,无法利用文件系统和网络。我在这个系统中生成了一些日志,并将这些日志作为我的响应的一部分发布。这些日志与响应分离并发布到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中的最终记录时间包装。
有更好的方法吗?
答案 0 :(得分:1)
我们使用lambda做了类似的解决方案。
我们创建kinesis作为lambda的触发器,我们做一些清理并将数据插入到弹性搜索中。使用Kibana,我们搜索日志数据并对日志数据应用过滤。
正如您所提到的,您有一定的约束条件可以验证此解决方案适合您。
您还可以查找kinesis firehose与elasticsearch的集成