- 最新
- 投票最多
- 评论最多
【以下的回答经过翻译处理】 CloudWatch日志 > 日志组 > 日志流 > [日志事件]
我们不能在日志流中拥有目录,即以下级别的分类是不可能的:
AWSService_log_group
/service_#1
/file_path/logs
/xxxx.log
但是,您可以在日志组中拥有多个日志流,即以下可能性,假设“xxxx.log”不是子目录,而是直接是日志事件/条目:
Instance_log_group
/instance_#1_log_a
/xxxx.log (日志条目)
/instance_#1_log_b
/xxxx.log
/instance_#2_log_a
/xxxx.log
/instance_#2_log_b
/xxxx.log
要将日志事件发布到单独的日志流中,可以在“log_collected”部分中指定,例如以下内容,在“test.log”日志组中将创建2个日志流。 使用log_stream_name字段-
“logs_collected”:{
“files”:{
“collect_list”:[
{
“file_path”:”c:\\ProgramData\\Amazon\\AmazonCloudWatchAgent\\Logs\\amazon-cloudwatch-agent.log”,
“log_group_name”: “test.log”,
“log_stream_name”: “my_log_stream_name_1_{instance_id}”
},
{
“file_path”:”c:\\ProgramData\\Amazon\\AmazonCloudWatchAgent\\Logs\\test.log”,
“log_group_name”: “test.log”,
“log_stream_name”: “my_log_stream_name_2_{instance_id}”
}
]
}
这里添加文档[1]的部分以更好地理解:
*log_stream_name – 可选。在CloudWatch日志中指定用作日志流名称的内容。在名称的一部分中,使用{instance_id}、{hostname}、{local_hostname}和{ip_address}作为变量。{hostname}从EC2元数据检索主机名,而{local_hostname}使用网络配置文件中的hostname。
如果省略此字段,则使用全局日志部分中 log_stream_name 参数的值。 如果也省略,则使用 {instance_id} 的默认值。 如果日志流尚不存在,则会自动创建。
[1] 手动创建或编辑 CloudWatch 代理配置文件 - CloudWatch 代理配置文件:日志部分 - https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-Configuration-File-Details.html #CloudWatch-Agent-Configuration-File-Logssection
使用上述方法,每个实例都可以针对推送到 CloudWatch 的日志类型拥有自己的日志流。 但是,CloudWatch 中的日志流之外不能有子目录。 您可以在配置中使用 {instance_id} 等变量,对日志组名称或日志流名称进行分类。 上面提供的文档链接详细解释了这一点。
相关内容
- AWS 官方已更新 1 个月前