如何将多个日志流分组到同一日志组中?

0

【以下的问题经过翻译处理】 我有几个包含多个应用程序的EC2实例(Windows服务器),每个实例都有相当数量的日志文件。是否可以将日志推送到CloudWatch中,以逻辑目录结构的形式排列(如下所示):

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
AWSService_log_group
 /service_#1
     /file_path/logs
        /xxxx.log
  /service_#2
     /file_path/logs
        /xxxx.log
        /xxxx.log

基本上,如何配置或修改我的Cloudwatch配置文件(使用SSM进行配置)-以在同一日志组下拥有多个日志流。

profile picture
专家
已提问 5 个月前111 查看次数
1 回答
0

【以下的回答经过翻译处理】 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} 等变量,对日志组名称或日志流名称进行分类。 上面提供的文档链接详细解释了这一点。

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则