发布于2026-08-19 阅读(0)
扫一扫,手机访问
作者简介
谢泽钦,SUSE Rancher 技术支持工程师,负责订阅客户的维护与售后技术支持服务,提供相关技术解决方案。拥有 CKA、CKS 官方认证,多年云计算领域经验,经历了从 OpenStack 到 Kubernetes 的技术变革,对底层操作系统、KVM 虚拟化和 Docker 容器等相关云原生技术拥有丰富的实践经验。
在Rancher管理平台里,能轻松在任何受支持管理的Kubernetes集群上开启Rancher Monitoring,达成监控告警之效。Rancher Monitoring默认运用Prometheus来对相关系统及应用服务实施监控,并且通过Grafana的仪表盘可视化工具来呈现数据统计监控情况。
在默认情况下,Rancher对访问Grafana的用户限制较少,我们能够借助Anonymous用户来查看Rancher部署的任何默认仪表盘展示界面。然而,在更多的情形下,我们需要通过Grafana来构建自定义的仪表盘,此时Anonymous用户的ReadOnly权限便无法满足需求,而登录admin用户又会给Grafana带来一定的安全风险。所以,就需要这样一套用户管理系统来对Grafana的用户进行管理,对访问的用户实施一定权限的限制与管控。
虽然我们可以使用 Grafana 自带的用户管理列表来对访问的用户进行一定的权限管理,但是这需要额外维护一套用户列表。那么,可不可以直接对接企业内部的 LDAP系统,从而减少维护用户的成本呢?
答案是肯定的。从 Rancher2.5 版本开始,监控架构进行了调整,允许用户自定义更多相关组件的配置。本文将介绍在 Rancher2.6 上,如何通过配置 Rancher Monitoring 来进行 Grafana 对接 LDAP 认证。

在grafana.grafana.ini层级下新增如下auth.ldap配置信息开启 LDAP:
grafana:
grafana.ini:
auth.ldap:
allow_sign_up: true
config_file: /etc/grafana/ldap.toml
enabled: true 
3.在grafana层级下,添加 LDAP 认证参数
grafana:
ldap:
config: |
[[servers]]
host = "test.zerchin.xyz"
port = 389
use_ssl = false
start_tls = false
ssl_skip_verify = true
bind_dn = "cn=admin,dc=rancherldap,dc=com"
bind_password = 'Rancher123'
search_filter = "(cn=%s)"
search_base_dns = ["cn=group,ou=rancher,dc=rancherldap,dc=com"]
[servers.attributes]
name = "givenName"
surname = "sn"
username = "cn"
member_of = "memberOf"
email = "email"
enabled: true 参数说明:
host:LDAP 服务器地址(IP/Domain,指定多个地址空格分隔)。
port:LDAP 端口,默认是 389,如果 use_ssl=true 则是 636。
use_ssl:是否使用加密 TLS 连接。
start_tls:STARTTLS 是一种明文通信协议的扩展,能够让明文的通信连线直接成为加密连线(使用 SSL/TLS 加密),而不需要使用另一个特别的端口来进行加密通信。
ssl_skip_verify:是否跳过 SSL 证书验证。
bind_dn:LDAP 服务账户用户名。
bind_password:密码(如果密码包含#,则需要用三个括号引起来,例如:“”“#password;”“”)。
search_filter:用户查询过滤字段,例如"(cn=%s)" 、"(sAMAccountName=%s)" 、 "(uid=%s)"。
search_base_dns:用户搜索起点。
等待监控启动成功后,打开 Grafana UI 界面,默认账号密码为:admin/prom-operator

登录之后,左侧进入 Server Admin - LDAP,在 LDAP Connection 下可以看到连接的主机。
在 Test user mapping 下,搜索存在的 LDAP 用户,可以查到用户信息。

并且可以使用 LDAP 用户登录访问 Grafana UI 界面。

上述方法对接了 LDAP 的 389 端口,我们可以使用此端口进行 LDAP 连接。
但是该端口是非安全和未加密的连接,容易造成安全问题,暴露用户相关信息,一般建议389端口仅用在内网或者测试环境。
对于安全要求比较高的环境下,我们可以使用 LDAP 另一个 SSL 加密端口来对接LDAP 服务:636 端口。
在cattle-monitoring-system命名空间下,新建一个名叫certs的secret,其中ca.pem写入 CA 证书,tls.crt写入 LDAP 服务器证书,tls.key写入 LDAP 服务器证书秘钥。

也可以通过命令行导入相关证书:
kubectl create secret generic certs -n cattle-monitoring-system --from-file=ca.pem --from-file=tls.crt --from-file=tls.key 编辑 Monitoring yaml 配置
grafana层级下,添加extraSecretMounts挂载 secret 证书:grafana:
extraSecretMounts:
- defaultMode: 440
mountPath: /opt/certs
name: certs
readOnly: true
secretName: certs grafana:
ldap:
config: |
[[servers]]
host = "test.zerchin.xyz"
port = 636
use_ssl = true
start_tls = false
ssl_skip_verify = false
root_ca_cert = "/opt/certs/ca.pem"
client_cert = "/opt/certs/tls.crt"
client_key = "/opt/certs/tls.key"
bind_dn = "cn=admin,dc=rancherldap,dc=com"
bind_password = 'Rancher123'
search_filter = "(cn=%s)"
search_base_dns = ["cn=group,ou=rancher,dc=rancherldap,dc=com"]
[servers.attributes]
name = "givenName"
surname = "sn"
username = "cn"
member_of = "memberOf"
email = "email"
enabled: true port设置为 636 SSL 加密端口use_ssl设置为 true,ssl_skip_verify设置为 false,开启 SSL 认证root_ca_cert、client_cert、client_key配置证书路径登录 Grafana,左侧进入 Server Admin - LDAP,在 LDAP Connection 下可以看到,已经连上了 636 SSL 加密端口。
并且在Test user mapping下,搜索存在的LDAP用户,可以查到用户信息。

尝试用 LDAP 用户登录,可以正常登录查看数据。

通过上述配置,我们可以顺利对接企业内部的 LDAP 作为 Grafana 用户管理系统,从而能够直接利用现有的用户管理系统进行统一的用户管理和权限认证。当然我们也可以去对接其他的用户管理系统,例如 okta、saml、github、basic 等等,我们可以根据具体的需求参考 Grafana 官方文档进行配置即可。
Grafana 配置参考:https://grafana.com/docs/grafana/next/setup-grafana/configure-security/configure-authentication/ldap/
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9