本文将从工作区的选型、账号登录认证和权限管理3个方面提供组织Grafana的建议。

背景信息

Grafana中存在多种结构用于组织资源和权限,当公司存在多个团队、部门或客户需要服务时,常常出现以下问题:
  • 如何根据实际情况选择不同版本的Grafana。
  • 部门A不应该看到部门B的信息,该如何分配账号并管理权限。
  • 部门的成本归属计费。
  • 不同部门对身份验证、插件等有很大不同,如何配置隔离。
  • 当需要对客户展示公共内容时如何使用户免鉴权查看。

本文将从工作区的选型、账号登录认证和权限管理3个方面提供组织Grafana的建议。

工作区的选型

目前Grafana服务提供了4个版本:专家版(10账号)、专家版(30账号)、专家版(50账号)和高级版(100账号)。

功能选择

高级版比专家版多了报表、审计等功能,如果有明确的功能需求,选择对应的版本即可。具体功能对比,请参见专家版和高级版

账号规模选择

  1. 定义出一个最小粒度的人群范围。
    如果没有严格的约束,大部分场景下,一个工作区能够满足绝大部分用户的需求。但例如在以下场景下,为了实现权限或数据完全隔离,您可以以部门或者团队的维度购买工作区:
    • 部门A和部门B需要区分计算成本,为了便于区分建议各自使用一个工作区。
    • 当需要将公司的账号体系与Grafana打通时,例如使用OAuth 2.0协议,公司给不同团队都分配了一个独立的AppID,由于Grafana的自定义OAuth配置只能映射一个AppID,那么这种场景就需要一个团队使用一个工作区。
    • 当需要用于生产和日常测试时,环境要求对数据的安全、用户权限有严格区分,使用多个工作区即可根据环境做隔离。
  2. 匹配对应版本。
    • 100人的部门,建议直接购买高级版(100账号)。
    • 20人的团队,可以选择专家版(30账号)。
    • 日常环境有30人要用,而生产只开放给10个人,那么只需一个专家版(30账号)加上一个专家版(10账号)。

如果您还不确定使用场景,建议先购买专家版(10账号),在后续使用过程中明确需求后,可以根据实际情况进行升配或降配。

账号登录认证

官方Grafana除了自己的账号管理体系外,还支持通过其它多种认证方式实现账号的同步、登录。更多信息,请参见Grafana官方文档

阿里云托管的Grafana服务在原生的基础上,额外集成了阿里云的登录方式。下述表格罗列了目前Grafana服务上常用的几种登录方式,一个工作区可以同时使用多种登录方式,请根据实际需求选择。

类型 场景 说明
Admin账号的用户管理 常规的账号、密码创建 在Admin账号(最高权限)的Grafana页面可以看到管理员菜单,通过Admin账号可以直接创建账号、设置密码、赋予权限。同时也能管理通过邮件、阿里云SSO、OAuth、LDAP集成进来的账号。Admin账号
Admin权限的用户管理 邮件邀请创建 Admin账号和Admin权限的级别不同。下图为Admin权限的Grafana页面,可以看到左侧菜单栏没有盾牌图标图标,因此无法直接添加账号,只能通过发送邮件让收件人通过指定链接自行创建,收件人的权限在发送邮件时设定。Admin权限和Admin账号最大区别是Admin权限管理员不知道创建的账号密码。阿里云Grafana服务有默认的SMTP配置,如果有需要可以自行配置SMTP邀请用户,更多信息,请参见使用SMTP邮箱邀请用户Admin权限
阿里云SSO 使用阿里云账号登录 通过在Grafana控制台填写阿里云账号ID(如果是子账号则填写子账号ID),即可使用阿里云账号登录Grafana,若您已经登录阿里云则可以免登录直接进入Grafana。更多信息,请参见账号管理
OAuth授权 企业登录系统打通 Grafana服务支持标准的OAuth协议,Grafana官方除了默认支持通过谷歌、微软登录外,还支持自定义登录,适用于需要使用公司登录系统做集成登录的场景。对于自建系统的集成,对接操作请参见OAuth统一登录,该文档以阿里云为例模拟企业的登录系统,详细介绍了对接过程。
LDAP 企业登录系统打通 目前控制台暂未提供上传LDAP文件的入口,如有需要请加入Grafana服务钉钉群(群号:34785590)进行反馈。
匿名模式 访客无需登录即可查看 部分大盘配置后需要对外展示,此时无需用户登录即可直接查看大盘,例如官方示例网站就是通过匿名模式生成的Demo展示。配置匿名模式的操作,请参见为Grafana大盘生成免登录查看的共享链接

权限的管理

开源Grafana提供了多样的权限管理方式,这些权限管理方式已经能够满足绝大部分场景。除了Grafana官方推荐使用的文件夹(Folders)+团队(Team)的方式之外,组织(Orgs)和更严格层面的工作区都可以作为权限管理控制的方式。

三种方式对比

方式 优势 劣势
文件夹+团队(推荐)
  • 灵活轻量,允许团队之间灵活共享。
  • 更少的配置。
  • Grafana官方后续也会针对当前方式开发更多特性。更多信息,请参见Grafana官方文档
缺乏工作区的实际隔离。
组织 账号登录认证只需配置一次即可。
  • 隔离了数据源、仪表板、文件夹和其他资源,需要自行编码实现数据同步。
  • 组织之间的用户管理更加复杂,不同组织下的用户需要单独配置。
  • 缺乏文件夹的灵活性以及工作区的实际隔离。
工作区 不同工作区DB、配置文件都是独立的,实现真正的隔离。 配置无法共享,不同工作区之间的数据源、仪表板、文件夹和其他资源同步,需要自行编码实现。

文件夹+团队方式的最佳实践

以某公司一个线上团队为例:
  • 团队维度划分了研发、运维和运营,文件夹划分了业务和基础设施。
  • 业务文件夹下,存放了基于应用运行过程中采集配置的业务大盘,由研发配置,运营查看。
  • 基础设施下,存放了阿里云上的ECS、RDS等基础设施的监控大盘,由运维配置,研发查看。

建议配置如下:

  1. 在Grafana的Configuration > Teams页签下创建研发、运维和运营团队并添加对应用户。具体操作,请参见Grafana官方文档创建团队
  2. Create > Folder页签下创建业务和基础设施文件夹。具体操作,请参见Grafana官方文档Grafana文件夹
  3. 配置文件夹权限。

    进入文件夹,在Permissions页签下增加权限,配置对应团队在当前文件夹下的权限。

    文件夹权限配置
    配置完成后,只有View权限的团队成员登录Grafana时,只有查看权限。
    说明 若用户本身是Admin权限,所在团队只有View权限,在多权限叠加的情况下高等级权限优先,即用户仍是Admin权限。