具有通配符文件路径InvalidParameterException的Cloudwatch Agent

时间:2019-05-22 13:32:28

标签: amazon-web-services amazon-ec2 amazon-cloudwatch amazon-cloudwatchlogs

我正在我的EC2上启动AWS Cloudwatch代理,并尝试记录与“ test *”匹配的所有文件,例如:/var/log/test_pyserver/var/log/test_rserver

但是我当前的agent.json:

{
        "logs": {
                "logs_collected": {
                        "files": {
                                "collect_list": [
                                        {
                                                "file_path": "/var/log/test*"
                                        }
                                ]
                        }
                }
        }
}

抛出此错误:

cloudwatchlogs: InvalidParameterException for log group /var/log/test* log stream XXXXXXX, will not retry the request: 1 validation error detected: Value '/var/log/test**' at 'logGroupName' failed to satisfy constraint: Member must satisfy regular expression pattern: [\.\-_/#A-Za-z0-9]+

According to the documentation,如果我不包含“ log_group_name”,它将默认为文件名,而“ log_stream_name”应为“ {instance_id}”。

编辑:我应该指出我的目标,就是将1个日志组与每个文件作为自己的日志流。 However that doesn't look possible,因此我认为进入自己的日志组的每个文件都是可以接受的,但是似乎如果我对文件路径进行通配,则必须指定一个日志组。人们如何动态观看多个文件?

1 个答案:

答案 0 :(得分:0)

我认为您在这里有两个选择:

  1. 在您拥有的一个log_group_name条目中设置collect_list,并将所有日志文件发布到同一组的同一流中。
  2. collect_list上单独列出所有文件作为单独的项目,这将使您可以灵活地配置日志组和流。

如果第二个选项对您不利,因为您经常在多个应用程序中显示新的日志文件,请查看为该配置附加应用程序特定条目的选项:https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-common-scenarios.html#CloudWatch-Agent-multiple-config-files