我正在尝试配置AWS cloudwatch代理以将日志从我的ec2实例发送到Cloudwatch。我有4个实例在ALB下运行。 每个ec2实例都运行一个Java Web服务,该服务可以接收来自多个客户的请求。每个客户的日志都转到每个实例上的单独日志文件-customerA.log,customerB.log等(使用logback的“ Sift”附加程序)。任何客户请求都可以转到任何实例。
这些客户名称是事先未知的-Web服务将作为Web请求的一部分接收customerId,随着新客户使用该服务,将会有新的日志文件。
我希望能够将日志发送到cloudwatch,以便按客户名称收集和合并日志,因此我可以看到每个客户一个日志文件,它是来自所有实例的合并日志。
我该怎么做?使用文档中的配置,我可以看到通配符可以将不同的日志文件合并到CloudWatch上的单个流中,但是我想用某种动态占位符将{instance_id}替换为日志文件的确切名称(即以customerId命名)。
我不确定这是否可能,因此是否还有其他配置可以达到相同的目的,这是很好的。非常感谢!
"logs_collected": {
"files": {
"collect_list": [
{
"file_path": "/media/logs-audit/customer*",
"log_group_name": "errors.log",
"log_stream_name": "{instance_id}"
},
]
}
}