我正在我的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,因此我认为进入自己的日志组的每个文件都是可以接受的,但是似乎如果我对文件路径进行通配,则必须指定一个日志组。人们如何动态观看多个文件?
答案 0 :(得分:0)
我认为您在这里有两个选择:
log_group_name
条目中设置collect_list
,并将所有日志文件发布到同一组的同一流中。collect_list
上单独列出所有文件作为单独的项目,这将使您可以灵活地配置日志组和流。 如果第二个选项对您不利,因为您经常在多个应用程序中显示新的日志文件,请查看为该配置附加应用程序特定条目的选项:https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-common-scenarios.html#CloudWatch-Agent-multiple-config-files