amazon-s3 - 渲染失败。无法在 AWS S3 上发送 Grafana 警报图像以进行渲染以在 Slack 警报中使用
问题描述
运行 2 个 docker 容器 - Grafana 和 Grafana Image Renderer
我在 Docker 中的 Grafana 配置:
GF_RENDERING_SERVER_URL: http://render:8081/render
GF_RENDERING_CALLBACK_URL: http://grafana:3000/
GF_SERVER_ROOT_URL: http://grafana:3000/
GF_INSTALL_PLUGINS: "grafana-image renderer
GF_INSTALL_IMAGE_RENDERER_PLUGIN: "true"
GF_LOG_FILTERS: rendering:debug
GF_EXTERNAL_IMAGE_STORAGE_PROVIDER: "s3"
GF_EXTERNAL_IMAGE_STORAGE_S3_BUCKET_URL: https://*bucketname*.s3.*region*.amazonaws.com
GF_EXTERNAL_IMAGE_STORAGE_S3_REGION: "*region*"
GF_EXTERNAL_IMAGE_STORAGE_S3_ACCESS_KEY: *access key*
GF_EXTERNAL_IMAGE_STORAGE_S3_SECRET_KEY: *secret key*
S3 存储桶中的策略:
{
"Id": "*Policy*",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "*Sid*",
"Action": [
"s3:DeleteObject",
"s3:GetObject",
"s3:PutObject",
"s3:PutObjectAcl"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::bucketname/*",
"Principal": "*"
}
]
}
渲染失败是我在 Grafana 仪表板上收到的消息
解决方案
您的容器日志可能会给您原因。
我怀疑容器不能互相交谈——即主机名render
和grafana
解析?例如,您可以从 grafana 容器中curl
访问http://render:8081docker exec -it <container id> /bin/sh
(使用)吗?
此外,您不需要这些环境变量:
GF_INSTALL_PLUGINS: "grafana-image renderer
(错字?),因为插件功能由渲染器容器提供GF_INSTALL_IMAGE_RENDERER_PLUGIN: "true"
,因为您使用的是外部渲染器,并且不需要使用它们提供的单独 Dockerfile 构建自定义容器。
推荐阅读
- android - 当片段位于共享模块中时,尝试让片段与其父 Activity 对话
- r - 如何用箭头和最大值注释线图?
- visual-studio-2017 - 如果我已经登录,为什么我的 Visual Studio 2017 许可证会过期?
- visual-studio - 从 NuGet 获取程序集时无法解析它们
- node.js - api 服务器节点中的多个承诺返回 null
- python-3.x - Python3 和 Django2 中的日期时间对象不一致
- tensorflow - 我正在尝试让 TensorBoard 运行。我哪里做错了?
- dart - 在 Flutter 中以编程方式展开 ExpansionTile
- php - PHP - 没有考虑 doc_root 值
- react-native - 使用单选按钮反应原生 FlatList