linux - AWS CloudWatch 日志组命名约定
问题描述
我必须将日志从 AWS EC2 服务器发送到 AWS CloudWatch 日志。为此,我创建了一个 CloudWatch 配置文件来收集日志,例如
{
"agent": {
"run_as_user": "root"
},
"logs": {
"logs_collected": {
"files": {
"collect_list": [
{
"file_path": "/var/log/testing.log",
"log_group_name": "/project/development",
"log_stream_name": "{instance_id}_testing-logs"
}
]
}
}
}
}
我在 AWS CodeDeploy 中创建了一个应用程序,其中project
包含三个组,即development
、staging
和production
。我希望 CloudWatch 使用诸如/project/development
和类似的命名约定来命名它staging
并production
命名它的 log group log_group_name
。为此,我不想为每个环境创建三个单独的文件。
是否有任何 CloudWatch 变量可用于 CodeDeploy,我可以使用它来命名,log_group_name
就像有可用的命名变量{instance_id}
自动选择实例 ID 一样。
解决方案
查看CloudWatch 代理配置文件:日志部分文档。对于log_group_name
orlog_stream_name
字段,
作为名称的一部分,您可以使用、、、和
{instance_id}
作为名称中的变量。{hostname}
{local_hostname}
{ip_address}
如果您想在 CloudWatch Logs 名称中使用 CodeDeploy 特定变量,CodeDeploy 会为钩子脚本提供一组环境变量。因此,想法是对您的 CloudWatch 代理安装进行 CodeDeploy 部署,并使用 CodeDeploy 变量创建您的 CloudWatch 代理配置文件。
推荐阅读
- google-apps-script - 如何将 gmail 附件中的大数据 CSV 复制到谷歌表格中?
- javascript - 如何从javascript中的数组中删除对象?
- python - 使用显示为十六进制的整数双端队列构建字符串
- nuget - 我的 CI 在自定义 Azure Pipelines 代理池上的 NuGet 还原任务在 NuGetFallbackFolder 中查找
- regex - 什么等价于 0* |a* |b* |(a|b)*
- java - 如何将地图/导航组件添加到多个活动?
- ios - PWA 和 iOS 推送令牌
- azure - 数据工厂中的映射数据流不会忽略 CSV 文件的文本值中的换行符
- javascript - 使用 redux 反应容器和可展示的组件
- python - tf.gfile.GFile().read() 和 cv2.imread() 关于读取图像有什么区别