You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Grafana Loki-Stack数据源预配置文件权限异常问题求助

解决Loki-Stack中Grafana数据源配置权限拒绝问题

问题背景

通过Helm部署Loki-Stack,执行命令:

helm -n loki-stack upgrade --install loki-stack grafana/loki-stack --values values-loki-stack-2.0-dev.yaml

当前版本:Loki 2.8.4、Grafana 10.1.1

在loki-stack-grafana Pod的grafana-sc-datasources容器中出现权限错误:

{"time": "2023-09-06T12:38:49.126208+00:00", "level": "ERROR", "msg": "Error when updating from $datasources.yaml into $/etc/grafana/provisioning/datasources: $[Errno 13] Permission denied: '/etc/grafana/provisioning/datasources/datasources.yaml'"}

使用的datasources.yaml配置:

grafana:
  datasources:
    datasources.yaml:
      apiVersion: 1
      datasources:
        - name: LokiProm
          type: prometheus
          orgId: 1
          access: proxy
          url: http://loki-stack:3100/loki
          jsonData:
            timeout: 500

问题影响:Grafana仪表板无法加载任何数据。

排查结果:datasources.yaml权限为root:472,其他文件用户/组均为472,但系统中不存在用户472(已通过tail /etc/passwd确认)。尝试通过Rancher SSH修改权限失败,且连接频繁断开。

解决方案

1. 通过Helm配置永久修复权限

在values-loki-stack-2.0-dev.yaml中添加sidecar数据源的权限配置,强制设置文件所属用户组及权限:

grafana:
  datasources:
    datasources.yaml:
      apiVersion: 1
      datasources:
        - name: LokiProm
          type: prometheus
          orgId: 1
          access: proxy
          url: http://loki-stack:3100/loki
          jsonData:
            timeout: 500
  # 新增sidecar权限配置
  sidecar:
    datasources:
      permissions: "0644"
      owner: "472:472"

重新执行Helm升级命令生效:

helm -n loki-stack upgrade --install loki-stack grafana/loki-stack --values values-loki-stack-2.0-dev.yaml

2. 临时修复现有Pod权限(重启后失效)

如果无法立即重新部署,可通过kubectl直接进入容器修改权限:

# 替换<pod-name>为实际的loki-stack-grafana Pod名称
kubectl exec -n loki-stack -c grafana-sc-datasources <pod-name> -- chown 472:472 /etc/grafana/provisioning/datasources/datasources.yaml
kubectl exec -n loki-stack -c grafana-sc-datasources <pod-name> -- chmod 644 /etc/grafana/provisioning/datasources/datasources.yaml

3. 统一Grafana容器运行用户

确保Grafana主容器与sidecar容器运行用户一致,在values.yaml中添加安全上下文配置:

grafana:
  securityContext:
    runAsUser: 472
    runAsGroup: 472

原因分析

  • 数据源文件由sidecar容器生成时,错误设置了root:472权限,而sidecar容器以UID 472运行,无法修改root所属文件。
  • UID 472是Grafana官方镜像默认的非特权用户,即使容器内/etc/passwd无该用户条目,进程仍会以该UID运行,因此需确保文件所属UID为472。

内容的提问来源于stack exchange,提问作者Pointi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 13:10:07