我必须将日志从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
。为此,我不想为每个环境创建三个单独的文件。
[是否有任何可用于CodeDeploy的CloudWatch变量,我可以使用它来命名log_group_name
,就像{instance_id}
可以使用的命名变量可以自动选择实例ID。
log_stream_name指定目标日志流。您可以使用文字字符串或预定义变量({instance_id},{hostname},{ip_address})或两者的组合来定义日志流名称。如果尚不存在,则会自动创建一个日志流。
CloudWatch日志只能访问上面的那些变量。
阅读documentation以了解更多详细信息。
查看CloudWatch Agent Configuration File Logs Section文档。对于log_stream_name
,
作为名称的一部分,您可以在名称中使用
{instance_id}
,{hostname}
,{local_hostname}
和>{ip_address}
作为变量。