logging - 带有时间戳日志文件的 Cloudwatch 配置
问题描述
我正在尝试从 AWS 中的 EC2 实例设置 cloudwatch 日志,这是配置
{
"agent": {
"run_as_user": "root"
},
"logs": {
"logs_collected": {
"files": {
"collect_list": [
{
"file_path": "/var/log/test.log",
"log_group_name": "my-app",
"log_stream_name": "my-app-instance-id"
}
]
}
}
}
}
在启动 cloudwatch 代理后,这不会按预期创建指定的日志组
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json -s
控制台上没有看到错误,但在 AWS 控制台中找不到指定的日志组。此配置是否应该创建此日志组?想到的另一个想法是,在var/log
日志文件的名称下附加了一个时间戳,test-20200407.log
这是问题所在吗?我如何解释时间戳?
解决方案
由于您想持续监控日志文件,这意味着无论文件“test-.log”是否更新,都应该推送到 CW 控制台。
这可以使用通配符来完成。如下所示:
"collect_list": [
{
"file_path": "/var/log/test*",
"log_group_name": "my-app",
"log_stream_name": "my-app-instance-id"
}
]
您可以在https://forums.aws.amazon.com/thread.jspa?threadID=156280找到相同的参考
'file' 选项指定要推送的文件。它可以使用通配符指向特定文件或多个文件,例如 /var/log/system.log*。根据文件修改时间只推送最新的文件。
推荐阅读
- java - 在 Java 中实现优先级循环
- android - Android Studio: List.of() '调用需要 API 级别...'
- cmake - CMake:设置自定义目标的 TARGET_FILE 生成器表达式
- sitefinity - Telerik Sitefinity 添加属性用户
- java - 将 HasMap 中的元素与 List 作为值进行比较
- javascript - 如何摆脱时区mysql nodejs
- segmentation-fault - 调用函数时出现分段错误(核心转储错误)
- django - 变量在哪里传递到 Django 中的视图中?
- android - Cordova 应用程序未启动且未记录错误
- python - 通过 f 解析时列表索引超出范围