Grafana是一款开源的指标分析和可视化套件,用于可视化时间序列数据,支持多种类型的数据源。
Grafana 概述
商标声明:本软件列表由Bitnami打包。所提及的相关商标归各自公司所有,使用这些商标并不意味着任何关联或认可。
consolehelm install my-release oci://registry-1.docker.io/bitnamicharts/grafana
希望在生产环境中使用Grafana?请尝试VMware Tanzu Application Catalog,即Bitnami目录的商业版。
自2025年8月28日起,Bitnami将升级其公共目录,在新的Bitnami Secure Images计划下提供精选的强化、安全聚焦镜像。作为此次过渡的一部分:
这些变更旨在通过推广软件供应链完整性和最新部署的最佳实践,提升所有Bitnami用户的安全态势。更多详情,请访问Bitnami Secure Images公告。
本Chart使用Helm包管理器在Kubernetes集群上引导部署grafana。
在Bitnami目录中,我们同时提供bitnami/grafana和bitnami/grafana-operator两个Chart。每个解决方案适用于不同的需求和场景。
bitnami/grafana Chart使用Kubernetes Deployment对象(连同Service、PVC、ConfigMap等)或StatefulSet对象(带无头服务、volumeClaimTemplate和ConfigMap)部署单个Grafana实例。下图显示执行helm install后在集群中部署的对象:
text+--------------+ +-----+ | | | | Service & Ingress | Grafana +<------------+ PVC | <-------------------+ | | | | Deployment/ | +-----+ | StatefulSet | +-----------+--+ ^ +------------+ | | | +----------------+ Configmaps | | Secrets | | | +------------+
其生命周期通过Helm管理,在Grafana容器层面,自动执行以下操作:持久化管理、基于环境变量的配置以及插件初始化。该Chart还允许通过ConfigMap部署仪表板和数据源。Deployment不需要任何具有特殊RBAC权限的ServiceAccount,因此该解决方案更适合权限受限的Kubernetes环境。
bitnami/grafana-operator Chart使用Kubernetes Deployment部署Grafana Operator。下图显示执行helm install后Grafana Operator的部署情况:
text+--------------------+ | | +---------------+ | Grafana Operator | | | | | | RBAC | | Deployment | | Privileges | | | | | +-------+------------+ +-------+-------+ ^ | | +-----------------+ | +---+ Service Account +<----+ +-----------------+
Operator将通过以下对象扩展Kubernetes API:Grafana、GrafanaDashboards和GrafanaDataSources。此后,用户可以部署这些类型的对象,先前部署的Operator将负责部署运行Grafana实例所需的所有Deployment、ConfigMap和Service。其生命周期通过kubectl在Grafana、GrafanaDashboards和GrafanaDataSource对象上管理。下图显示使用kubectl部署Grafana对象后部署的对象:
text+--------------------+ | | +---------------+ | Grafana Operator | | | | | | RBAC | | Deployment | | Privileges | | | | | +--+----+------------+ +-------+-------+ | ^ | | | +-----------------+ | | +---+ Service Account +<----+ | +-----------------+ | | | | | Grafana | +---------------------------------------------------------------------------+ | | | | | +--------------+ +-----+ | | | | | | | | +-------------------->+ Service & Ingress | Grafana +<------------+ PVC | | | <-------------------+ | | | | | | Deployment | +-----+ | | | | | | +-----------+--+ | | ^ +------------+ | | | | | | | +----------------+ Configmaps | | | | Secrets | | | | | | | +------------+ | | | +---------------------------------------------------------------------------+
与bitnami/grafana Chart相比,该解决方案允许轻松部署多个Grafana实例。由于Operator自动部署Grafana实例,Grafana Operator Pod需要具有创建和销毁多个Kubernetes对象权限的ServiceAccount。这对于具有严格基于角色访问策略的Kubernetes集群可能存在问题。
要使用发布名称my-release安装Chart:
consolehelm install my-release oci://REGISTRY_NAME/REPOSITORY_NAME/grafana
注意:需要将占位符
REGISTRY_NAME和REPOSITORY_NAME替换为Helm Chart仓库和存储库的引用。例如,对于Bitnami,需使用REGISTRY_NAME=registry-1.docker.io和REPOSITORY_NAME=bitnamicharts。
这些命令使用默认配置在Kubernetes集群上部署Grafana。参数部分列出了可在安装过程中配置的参数。
提示:使用
helm list列出所有发布。
Bitnami Chart允许为Chart部署中的所有容器设置资源请求和限制,这些在resources值中配置(参见参数表)。为生产工作负载设置请求至关重要,应根据具体用例进行调整。
为简化此过程,Chart包含resourcesPreset值,可根据不同预设自动设置resources部分。有关这些预设的详细信息,请参见bitnami/common Chart。但在生产工作负载中,不建议使用resourcesPreset,因为它可能无法完全适应具体需求。有关容器资源管理的更多信息,请参见***Kubernetes文档。
Bitnami Redis Chart在升级时会重用先前由Chart生成的密钥或auth.existingSecret中指定的密钥。要更新凭证,请使用以下方法之一:
helm upgrade并在admin.password中指定新密码helm upgrade并在admin.existingSecret中指定新密钥强烈建议在生产环境中使用不可变标签。这可确保如果相同标签使用不同镜像更新,部署不会自动更改。
如果主容器有新版本、重大变更或严重漏洞,Bitnami将发布新Chart以更新其容器。
通过将metrics.enabled设置为true,本Chart可与Prometheus集成。这将在服务中公开Grafana原生Prometheus端点,并包含必要的注解以被Prometheus自动抓取。
集成需要Prometheus或Prometheus Operator正常运行。安装Bitnami Prometheus Helm Chart或Bitnami Kube Prometheus Helm Chart可轻松在集群中部署Prometheus。
通过设置metrics.serviceMonitor.enabled=true,Chart可部署ServiceMonitor对象以与Prometheus Operator集成。确保集群中已安装Prometheus OperatorCustomResourceDefinitions,否则将失败并显示以下错误:
textno matches for kind "ServiceMonitor" in version "monitoring.coreos.com/v1"
安装Bitnami Kube Prometheus Helm Chart可获取必要的CRD和Prometheus Operator。
Grafana支持多个配置文件。在Kubernetes中,可使用ConfigMap或Secret挂载文件。例如,要挂载自定义grafana.ini文件或custom.ini文件,可创建如下ConfigMap:
yamlapiVersion: v1 kind: ConfigMap metadata: name: myconfig data: grafana.ini: |- # 文件原始文本
然后需要将ConfigMap名称传递给相应参数:config.useGrafanaIniFile=true和config.grafanaIniConfigMap=myconfig。
要在部署时提供仪表板,Grafana需要仪表板提供程序和仪表板本身。如果启用,将创建默认提供程序;也可使用ConfigMap挂载自定义提供程序,但需注意仪表板文件夹路径必须为/opt/bitnami/grafana/dashboards。
json文件的ConfigMap,并将ConfigMap名称数组设置到dashboardsConfigMaps参数中。例如,按如下方式创建仪表板ConfigMap和数据源Secret:
consolekubectl create secret generic datasource-secret --from-file=datasource-secret.yaml kubectl create configmap my-dashboard-1 --from-file=my-dashboard-1.json kubectl create configmap my-dashboard-2 --from-file=my-dashboard-2.json
注意:上述命令假设已将仪表板导出为JSON文件:my-dashboard-1.json和my-dashboard-2.json
注意:上述命令假设已创建数据源配置文件datasource-secret.yaml。示例见<[***]>
创建后,使用以下参数部署带有2个自定义仪表板的Grafana:
consoledashboardsProvider.enabled=true datasources.secretName=datasource-secret dashboardsConfigMaps[0].configMapName=my-dashboard-1 dashboardsConfigMaps[0].fileName=my-dashboard-1.json dashboardsConfigMaps[1].configMapName=my-dashboard-2 dashboardsConfigMaps[1].fileName=my-dashboard-2.json
更多信息见Grafana文档。
要启用LDAP身份验证,需提供包含Grafana LDAP配置文件的ConfigMap。例如:
configmap.yaml:
yamlapiVersion: v1 kind: ConfigMap metadata: name: ldap-config data: ldap.toml: |- [[servers]] # LDAP服务器主机(空格分隔指定多个主机) host = "ldap" # 默认端口为389,若use_ssl=true则为636 port = 389 # 若LDAP服务器支持TLS,设为true use_ssl = false # 若使用STARTTLS模式连接LDAP服务器(先建立不安全连接,再升级为TLS安全连接),设为true start_tls = false # 若要跳过SSL证书验证,设为true ssl_skip_verify = false # 设为根CA证书路径,若未设置则使用系统默认 # root_ca_cert = "/path/to/certificate.crt" # 针对需要客户端证书的LDAP服务器进行身份验证 # client_cert = "/path/to/client.crt" # client_key = "/path/to/client.key" # 搜索用户绑定DN bind_dn = "cn=admin,dc=example,dc=org" # 搜索用户绑定密码 # 若密码包含#或;,需用三重引号包裹,例如"""#password;""" bind_password = 'admin' # 用户搜索过滤器,例如"(cn=%s)"、"(sAMAccountName=%s)"或"(uid=%s)" # 允许通过电子邮件或用户名登录,例如"(|(sAMAccountName=%s)(userPrincipalName=%s))" search_filter = "(uid=%s)" # 要搜索的基本DN数组 search_base_dns = ["ou=People,dc=support,dc=example,dc=org"] # group_search_filter = "(&(objectClass=posixGroup)(memberUid=%s))" # group_search_filter_user_attribute = "distinguishedName" # group_search_base_dns = ["ou=groups,dc=grafana,dc=org"] # 指定LDAP使用的LDAP属性名称 [servers.attributes] name = "givenName" surname = "sn" username = "cn" member_of = "memberOf" email = "email"
在集群中创建ConfigMap,并使用现有ConfigMap和以下参数部署Grafana Helm Chart:
consoleldap.enabled=true ldap.configMapName=ldap-config ldap.allowSignUp=true
要安装Grafana Image Renderer插件以渲染图像并节省Grafana Pod内存,请按以下步骤操作:
yaml# deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: grafana-image-renderer namespace: default labels: app.kubernetes.io/name: grafana-image-renderer app.kubernetes.io/instance: grafana-image-renderer app.kubernetes.io/component: image-renderer-plugin app.kubernetes.io/part-of: grafana spec: replicas: 1 strategy: type: RollingUpdate selector: matchLabels: app.kubernetes.io/name: grafana-image-renderer app.kubernetes.io/instance: grafana-image-renderer app.kubernetes.io/component: image-renderer-plugin template: metadata: labels: app.kubernetes.io/name: grafana-image-renderer app.kubernetes.io/instance: grafana-image-renderer app.kubernetes.io/component: image-renderer-plugin app.kubernetes.io/part-of: grafana spec: securityContext: fsGroup: 1001 runAsNonRoot: true runAsUser: 1001 containers: - name: grafana-image-renderer image: docker.io/bitnami/grafana-image-renderer:3 securityContext: runAsUser: 1001 env: - name: HTTP_HOST value: "::" - name: HTTP_PORT value: "8080" ports: - name: http containerPort: 8080 protocol: TCP # service.yaml apiVersion: v1 kind: Service metadata: name: grafana-image-renderer
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429