Sou*_*uad 5 configuration stream amazon-ec2 amazon-web-services amazon-cloudwatchlogs
我使用AWS CloudWatch日志代理将我的应用程序日志推送到AWS Cloudwatch.
在cloudwatchLogs我的配置文件中EC2 instance,我有这个条目:
[/scripts/application]
datetime_format = %Y-%m-%d %H:%M:%S
file = /workingdir/customer/logfiles/*.log
buffer_duration = 5000
log_stream_name = {instance_id}
initial_position = start_of_file
log_group_name = /scripts/application
Run Code Online (Sandbox Code Playgroud)
根据此配置,workingdir目录中的所有日志文件都被发送到同一个流中的cloudwatchLogs,名称是实例Id.
我的问题是,我想为每个日志文件创建一个单独的logStream,以便日志读取可以更快和可解析.换句话说,每次我有一个新的日志文件时,都会自动创建一个新的日志流.
我想通过cron作业中的shell脚本来做到这一点,但后来我必须更改架构中的许多其他配置,所以我正在寻找一种方法在配置文件中执行它.在文档中,他们说:
log_stream_name
指定目标日志流.您可以使用文字字符串或预定义变量({instance_id},{hostname},{ip_address})或两者的组合来定义日志流名称.如果日志流尚不存在,则会自动创建日志流.
日志文件的名称不能100%可预测,但它们总是具有以下结构:
CustomerName-YYYY-mm-dd.log
Run Code Online (Sandbox Code Playgroud)
另外,另一个问题是:
必须停止并重新启动正在运行的代理才能使配置更改生效.
在这种情况下如何设置logStream?
任何想法或建议或解决方法都非常感谢.
小智 5
我知道现在已经过去近两年了,但我想做完全相同的事情,但找不到让它发挥作用的方法。\n我求助于 AWS Support,后者随后确认这是无法完成的。我们仅限于文档中提供的选项,就像您发布的那样。但是,您可以让日志组包含直到第一个点的日志文件路径:
\n\n\n\n\n\nlog_group_name \xe2\x80\x93 可选。指定在 CloudWatch Logs 中用作日志组名称的名称。允许的字符包括 az、AZ、0-9、\'_\'\n(下划线)、\'-\'(连字符)、\'/\'(正斜杠)和 \'.\'(句点) 。
\n\n我们建议您指定此字段以防止混淆。如果省略此字段,则直到最后一个点的文件路径将用作日志组名称。例如,如果文件路径为\n /tmp/TestLogFile.log.2017-07-11-14,则日志组名称为\n /tmp/TestLogFile.log。
\n
| 归档时间: |
|
| 查看次数: |
1022 次 |
| 最近记录: |