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

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进行配置)-以在同一日志组下拥有多个日志流。

1 Antwort
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
EXPERTE
beantwortet vor 5 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen