Grafana 13.0.3 已正式发布。这次不是一次大版本功能爆炸,而是更贴近日常运维的维护型更新:Docker 镜像底座升级到 Alpine 3.24.1,同时 Provisioning 在“新文件夹中创建仪表板”的场景上继续打磨。对已经把 Grafana 放进监控链路的团队来说,这类版本值得关注,因为它影响的是镜像供应链、自动化部署和仪表板交付稳定性。
这次更新真正影响哪里
Grafana 本身是监控与可观察性平台,常见用法是把 Prometheus 的指标、Loki 的日志、Elasticsearch、InfluxDB、Postgres 等数据源接进来,再通过 Dashboard 做统一展示。
13.0.3 的更新点看起来不大,但落在两个很具体的工程面上:
- Docker:基于 Alpine 的镜像升级到
3.24.1。 - Provisioning:围绕在新文件夹中创建仪表板的行为做了增强或修正。
前者主要关系到容器镜像的基础系统包、漏洞扫描结果和运行环境一致性;后者则关系到“用代码管理 Grafana 配置”的团队体验。很多团队不会手动点 UI 创建 Dashboard,而是把数据源、文件夹、仪表板 JSON 放进 Git,再由 CI/CD 或 Helm/Kubernetes 自动下发。
Docker 镜像升级:小版本也要按生产流程走
Alpine 镜像升级通常意味着基础包版本发生变化。多数情况下这是好事,尤其对安全扫描和基础镜像维护有帮助。但不要把它当作“无风险替换”。Grafana 插件、外部渲染器、Sidecar 注入、挂载目录权限,都可能暴露出环境差异。
可以这样实践:先在本地或测试环境拉起一个最小 Grafana 13.0.3,确认容器启动、数据目录挂载和健康检查正常。
mkdir -p grafana-data
# 如果你在 Linux 上运行,可能需要调整目录权限:
# sudo chown -R 472:472 grafana-data
docker run --rm \
--name grafana-13-0-3 \
-p 3000:3000 \
-v "$PWD/grafana-data:/var/lib/grafana" \
grafana/grafana:13.0.3
启动后访问:
http://localhost:3000
默认账号通常是:
admin / admin
首次登录后会要求修改密码。生产环境不要依赖默认账号密码,至少通过环境变量显式设置:
docker run --rm \
--name grafana-13-0-3 \
-p 3000:3000 \
-e GF_SECURITY_ADMIN_USER=admin \
-e GF_SECURITY_ADMIN_PASSWORD='change-me-in-real-env' \
grafana/grafana:13.0.3
这里要替换的是 GF_SECURITY_ADMIN_PASSWORD。如果用于 CI 或临时验证,可以继续使用本地端口;如果部署到共享环境,应接入已有的反向代理、TLS 和认证策略。
Provisioning:让 Dashboard 进入 Git 流程
Provisioning 的价值在于把 Grafana 配置从“点出来的状态”变成“可以审查、回滚、复制的文件”。这次发布提到新文件夹中创建仪表板相关的更新,说明 Grafana 仍在修补自动化创建 Dashboard 时的边界场景。
可以这样实践:用文件 Provisioning 创建一个数据源和一个 Dashboard Provider。下面示例假设 Prometheus 运行在 http://prometheus:9090,Grafana 会从 /var/lib/grafana/dashboards 读取仪表板 JSON。
创建目录:
mkdir -p provisioning/datasources provisioning/dashboards dashboards
创建 Prometheus 数据源:
# provisioning/datasources/prometheus.yaml
apiVersion: 1
datasources:
- name: Prometheus
type: prometheus
access: proxy
url: http://prometheus:9090
isDefault: true
editable: true
创建 Dashboard Provider:
# provisioning/dashboards/dashboards.yaml
apiVersion: 1
providers:
- name: default-dashboards
orgId: 1
folder: Platform
type: file
disableDeletion: false
editable: true
updateIntervalSeconds: 30
options:
path: /var/lib/grafana/dashboards
创建一个最小 Dashboard:
{
"uid": "platform-overview",
"title": "Platform Overview",
"schemaVersion": 39,
"version": 1,
"refresh": "30s",
"panels": [
{
"type": "timeseries",
"title": "Prometheus target up",
"gridPos": { "x": 0, "y": 0, "w": 12, "h": 8 },
"targets": [
{
"datasource": { "type": "prometheus", "uid": "Prometheus" },
"expr": "up"
}
]
}
]
}
把上面的 JSON 保存为:
dashboards/platform-overview.json
然后启动 Grafana:
docker run --rm \
--name grafana-provisioning \
-p 3000:3000 \
-v "$PWD/provisioning:/etc/grafana/provisioning" \
-v "$PWD/dashboards:/var/lib/grafana/dashboards" \
grafana/grafana:13.0.3
需要注意:这个示例里的 Prometheus 地址适合 Docker Compose 或同网络容器环境。如果你只是单独启动 Grafana,本机 Prometheus 地址可能需要改成 http://host.docker.internal:9090,Linux 环境还可能需要额外配置 host gateway。
升级前的检查清单
对于已经在生产使用 Grafana 的团队,13.0.3 可以按小版本维护升级处理,但仍建议走完整验证链路。
建议检查这些点:
- 镜像扫描:确认
grafana/grafana:13.0.3在你的安全基线中没有新增阻断项。 - 插件兼容:如果使用第三方插件,先在测试环境加载并打开关键 Dashboard。
- Provisioning 回归:重点验证自动创建文件夹、数据源、Dashboard 的流程。
- 持久化目录:确认
/var/lib/grafana的挂载权限没有因为镜像底座变化暴露问题。 - 告警与通知:升级后手动触发或回放关键告警路径,避免只验证页面展示。
这类版本的采用策略很简单:不要因为它“小”就直接滚生产,也不要因为它不是大版本就长期不升。把 Grafana 镜像、Provisioning 文件和 Dashboard JSON 都纳入版本管理,再用测试环境跑一遍启动和导入流程,13.0.3 这种维护版本就能稳定地进入你的观测平台流水线。