如何为动态日志文件名配置AWS CloudWatch日志配置

时间:2020-02-05 21:53:15

标签: amazon-web-services amazon-cloudwatch

我正在尝试配置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}"
                                        },
                                ]
                         }
                 }

1 个答案:

答案 0 :(得分:0)

是的,接受 UNIX 标准 glob 匹配规则。 Documentation