我使用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
根据此配置,workingdir 目录中的所有日志文件都被发送到同一流中的 cloudwatchLogs,名称为实例 ID。
我的问题是,我想为每个日志文件创建一个单独logStream
的. 换句话说,每次我有一个新的日志文件时,都会自动创建一个新的日志流。
我想通过 cron 作业中的 shell 脚本来做到这一点,但是我必须更改架构中的许多其他配置,所以我正在寻找一种在配置文件中执行此操作的方法。在文档中,他们说:
log_stream_name
指定目标日志流。您可以使用文字字符串或预定义变量({instance_id}、{hostname}、{ip_address})或两者的组合来定义日志流名称。如果日志流尚不存在,则会自动创建它。
日志文件的名称不能 100% 可预测,但它们始终具有以下结构:
CustomerName-YYYY-mm-dd.log
此外,另一个问题是:
必须停止并重新启动正在运行的代理才能使配置更改生效。
在这种情况下如何设置 logStream?
非常感谢任何想法或建议或解决方法。