如何组织 Grafana
本文将从实例、账号登录认证和权限管理3个方面提供组织Grafana的建议。
背景信息
Grafana中存在多种结构用于组织资源和权限,当公司存在多个团队、部门或客户需要服务时,常常出现以下问题:
- 如何根据实际情况选择不同的Grafana实例。
- 部门A不应该看到部门B的信息,该如何分配账号并管理权限。
- 部门的成本归属计费。
- 不同部门对身份验证、插件等有很大不同,如何配置隔离。
- 当需要对客户展示公共内容时如何使用户免鉴权查看。
本文将从实例选型、账号登录认证和权限管理3个方面提供组织Grafana的建议。
Grafana 实例选择
首先定义出一个最小粒度的人群范围。如果没有严格的约束,大部分场景下,搭建一个Grafana实例能够满足绝大部分用户的需求。
但例如在以下场景下,为了实现权限或数据完全隔离,您可以以部门或者团队的维度搭建多个Grafana实例:
- 部门A和部门B需要区分计算成本,为了便于区分建议各自搭建一个Grafana实例。
- 当需要将公司的账号体系与Grafana打通时,例如使用OAuth 2.0协议,公司给不同团队都分配了一个独立的AppID,由于Grafana的自定义OAuth配置只能映射一个AppID,那么这种场景就需要一个团队使用一个Grafana实例。
- 当需要用于生产和日常测试时,环境要求对数据的安全、用户权限有严格区分,使用多个Grafana实例即可根据环境做隔离。
账号登录认证
官方Grafana除了自己的账号管理体系外,还支持通过其它多种认证方式实现账号的同步、登录。更多信息,请参见Grafana官方文档。
类型 | 场景 | 说明 |
---|---|---|
Admin账号的用户管理 | 常规的账号、密码创建 | 在Admin账号(最高权限)的Grafana页面可以看到管理员菜单,通过Admin账号可以直接创建账号、设置密码、赋予权限。同时也能管理通过邮件、阿里云SSO、OAuth、LDAP集成进来的账号。 |
Admin权限的用户管理 | 邮件邀请创建 | Admin账号和Admin权限的级别不同。下图为Admin权限的Grafana页面,可以看到左侧菜单栏没有图标,因此无法直接添加账号,只能通过发送邮件让收件人通过指定链接自行创建,收件人的权限在发送邮件时设定。Admin权限和Admin账号最大区别是Admin权限管理员不知道创建的账号密码。阿里云可观测可视化 Grafana 版有默认的SMTP配置,如果有需要可以自行配置SMTP邀请用户,更多信息,请参见使用SMTP邮箱邀请用户。 |
OAuth授权 | 企业登录系统打通 | Grafana 支持标准的OAuth协议,Grafana官方除了默认支持通过谷歌、微软登录外,还支持自定义登录,适用于需要使用公司登录系统做集成登录的场景。对于自建系统的集成,对接操作请参见阿里云Grafana OAuth统一认证登录,该文档以阿里云为例模拟企业的登录系统,详细介绍了对接过程。 |
LDAP | 企业登录系统打通 | Grafana 支持标准的LDAP协议,对接请查看官方LDAP配置文档。 |
匿名模式 | 访客无需登录即可查看 | 部分大盘配置后需要对外展示,此时无需用户登录即可直接查看大盘,例如官方示例网站就是通过匿名模式生成的Demo展示。配置匿名模式的操作,请参见阿里云生成免登录查看Grafana大盘的共享链接。 |
权限的管理
开源Grafana提供了多样的权限管理方式,这些权限管理方式已经能够满足绝大部分场景。除了Grafana官方推荐使用的文件夹(Folders)+团队(Team)的方式之外,组织(Orgs)和更严格层面的实例都可以作为权限管理控制的方式。
三种方式对比
方式 | 优势 | 劣势 |
---|---|---|
文件夹+团队(推荐) | + 灵活轻量,允许团队之间灵活共享。 + 更少的配置。 + Grafana官方后续也会针对当前方式开发更多特性。更多信息,请参见Grafana官方文档。 | 缺乏实例的实际隔离。 |
组织 | 账号登录认证只需配置一次即可。 | + 隔离了数据源、仪表板、文件夹和其他资源,需要自行编码实现数据同步。 + 组织之间的用户管理更加复杂,不同组织下的用户需要单独配置。 + 缺乏文件夹的灵活性以及实例的实际隔离。 |
Grafana运行实例 | 不同实例DB、配置文件都是独立的,实现真正的隔离。 | 配置无法共享,不同实例之间的数据源、仪表板、文件夹和其他资源同步,需要自行编码实现。 |
文件夹+团队方式的最佳实践
以某公司一个线上团队为例:
- 团队维度划分了研发、运维和运营,文件夹划分了业务和基础设施。
- 业务文件夹下,存放了基于应用运行过程中采集配置的业务大盘,由研发配置,运营查看。
- 基础设施下,存放了阿里云上的ECS、RDS等基础设施的监控大盘,由运维配置,研发查看。
建议配置如下(Grafana 9.0.x):
- 在Grafana的左侧导航栏选择 > Configuration。
- 在Configuration页面单击Teams页签,创建研发、运维和运营团队并添加对应用户。具体操作,请参见Grafana官方文档。
- 在Grafana左侧导航栏中选择 > + New folder,创建业务和基础设施文件夹。具体操作,请参见Grafana官方文档。
- 配置文件夹权限。
进入文件夹,在Permissions页签下增加权限,配置对应团队在当前文件夹下的权限。
配置完成后,只有View权限的团队成员登录Grafana时,只有查看权限。
说明
若用户本身是Admin权限,所在团队只有View权限,在多权限叠加的情况下高等级权限优先,即用户仍是Admin权限。