Windows Server EC2应用日志转Cloudwatch:config.json路径配置疑问
CloudWatch Agent日志收集配置问题解答
问题背景
我们有一款带时效型和功能型许可证密钥的现成应用,运行在Windows Server EC2实例上。该应用生成的日志存储于C:\ProgramData\MyApp\v4\Logs目录,文件夹内包含多个命名为{guid}.txt的文件。我们希望将这些日志上传至CloudWatch,已创建config.json,但存在疑问:config.json中的file_path是否必须指向单个文件?能否指向文件夹?尝试指向文件夹后未得到预期结果,当前配置如下:
{ "logs": { "logs_collected": { "files": { "collect_list": [ { "file_path": "C:\\ProgramData\\MyApp\\v4\\Logs\\logs.txt", "log_group_name": "Logs-Myapp", "log_stream_name": "{instance_id}-Myapp", "retention_in_days": 180 } ] } } } }
解答
file_path不能直接指向文件夹,必须指定具体文件或使用通配符匹配目录下的目标文件。直接填写文件夹路径会导致Agent无法识别要收集的日志文件,因此之前的尝试没有效果。- 要收集
Logs目录下所有{guid}.txt格式的日志,只需将file_path改为带通配符的路径:"C:\\ProgramData\\MyApp\\v4\\Logs\\*.txt" - 调整后的完整配置示例:
{ "logs": { "logs_collected": { "files": { "collect_list": [ { "file_path": "C:\\ProgramData\\MyApp\\v4\\Logs\\*.txt", "log_group_name": "Logs-Myapp", "log_stream_name": "{instance_id}-{filename}", "retention_in_days": 180 } ] } } } }
- 额外注意事项:
- 将
log_stream_name改为{instance_id}-{filename},可让每个日志文件对应独立的日志流,方便区分不同guid的日志文件 - 确保CloudWatch Agent服务账号拥有
C:\ProgramData\MyApp\v4\Logs目录的读取权限 - 修改配置后需要重启CloudWatch Agent服务才能生效
- 将
内容的提问来源于stack exchange,提问作者mitsos
相关产品推荐
相关产品推荐

