我必须从AWS EC2服务器向AWS CloudWatch日志发送日志。为此,我创建了一个用于收集日志的CloudWatch配置文件,如
{
"agent": {
"run_as_user": "root"
},
"logs": {
"logs_collected": {
"files": {
"collect_list": [
{
"file_path": "/var/log/testing.log",
"log_group_name": "/project/development",
"log_stream_name": "{instance_id}_testing-logs"
}
]
}
}
}
}我在AWS CodeDeploy中创建了一个名为project的应用程序,其中包含三个组,即development、staging和production。我希望CloudWatch使用命名约定(如/project/development ),并类似地将其命名为staging和production,以命名其日志组log_group_name。为此,我不想为每个环境创建三个单独的文件。
是否有任何CloudWatch变量可以用于CodeDeploy,我可以使用它来命名log_group_name,就像{instance_id}有可用的命名变量一样,它会自动选择实例Id。
发布于 2020-05-18 07:50:24
查看CloudWatch代理配置文件:日志部分文档。对于log_group_name或log_stream_name字段,
作为名称的一部分,您可以使用
{instance_id}、{hostname}、{local_hostname}和{ip_address}作为名称中的变量。
如果要在CodeDeploy日志名称中使用特定于CloudWatch的变量,则CodeDeploy确实要使用可用于钩子脚本的一组环境变量。因此,我们的想法是对您的CodeDeploy代理安装进行CloudWatch部署,并使用CodeDeploy变量创建CloudWatch代理配置文件。
发布于 2020-05-18 07:50:07
log_stream_name指定目标日志流。可以使用文字字符串或预定义变量({instance_id}、{hostname}、{ip_address})或两者的组合来定义日志流名称。如果日志流不存在,则自动创建它。
CloudWatch日志只能访问上述变量。
阅读文档以了解更多细节。
https://stackoverflow.com/questions/61864624
复制相似问题