数据源:InfluxDB,可能是用于不经常更改数据的 PostgreSQL。
此功能请求是以下讨论的一般扩展:
它基于我于2016年raintank.slack.com
在grafana
频道中创建的 slack 帖子: Grafana Cloud Hosting Best Practices 。
对于好奇:
要了解什么是离网或混合系统,请查看此非常易于访问的文档:
挑战
下面是我最复杂的 Grafana 用例之一的示例。
├── Off-Grid manufacturer 1
│ └── Technical staff
│ └── Finance staff
│ └── Investors
│ └── Public (i.e. demo dashboards)
│ │
│ └── Plant hire company 1.1
│ │ ├── Finance staff
│ │ ├── Technical staff
│ │ └── Investors
│ │ └── Public (i.e. demo dashboards)
│ │ │
│ │ └── Building company 1.1.1
│ │ │ ├── Technical staff
│ │ │ ├── Finance staff
│ │ │ └── Investors
│ │ │ └── Public (i.e. demo dashboards)
│ │ .
│ │ .
│ │ └── Building company 1.1.n
│ .
│ .
│ └── Plant hire company 1.n
.
.
└── Off-Grid manufacturer n
请注意,我不仅需要处理多个组织,还需要处理更深几层的多个组织。
在Off-Grid manufacturer 1
有 5 个不同的用户组,即:
• 技术人员
• 财务人员
• 投资者
• 民众
• 客户(即植物租赁公司;本质上是一个子组织)
这些组中的每一个在数据可视化方面都有截然不同的需求,能够设置适用于每个组的默认仪表板会很棒。 一些团体,比如技术人员,我想授予完全访问权限来创建他们自己的仪表板并能够绘制任何图形。 我想完全锁定公共组,而其他所有组都介于这两个极端之间。 我不希望团队干预或访问彼此的仪表板或数据源。
Off-Grid manufacturer 1
需要能够访问其下所有公司的所有数据,而Plant hire company 1.1
需要能够访问其下所有公司但不能访问其他工厂员工的数据与自身或任何高于自身的组织处于同一级别的公司。
我知道一个有点极端的例子,但这是我的现实!
为了简化仪表板访问,最好在组织内拥有用户组和仪表板组,并且能够为每个用户或用户组授予对仪表板的查看/编辑权限。 能够为特定组内的某些用户分配管理员角色的子组(或子组织)也将派上用场😈
如果你必须画一个单一的组织,它看起来像这样:
users : u1 u2 u3 u4 u5 |
\ / \ / / / |
| | / / |
user : ug1 ug2 / / |
groups : | / | / / |
| / | / / |>- organisation
| / | / / |
dashboard : dg1 dg2 / |
groups : | | / |
/ \ / \ / |
dashboards: d1 d2 d3 d4 |
--
笔记:
u1
),通过用户组 1 ( ug1
),只能访问仪表板 1 & 2 ( d1
& d2
)。u2
) 属于两个用户组,因此可以访问所有 4 个仪表板。ug2
) 的任何用户都可以访问两个仪表板组,因此也可以访问所有 4 个仪表板。u4
) 直接属于仪表板组 2 ( dg2
),而不是通过用户组。u5
) 仅具有查看仪表板 4 ( d4
) 的权限。 据我了解,这是组织内当前的许可模式吗?具有多个子组织的组织将如下所示:
| sub-users : su1 su2 su3 su4
| \ / \ /
| | |
sub-organisation 1 -<| sub-user : sug1 sug2
/ | groups : | \ |
organisation | | \ |
\ | | \ |
sub-organisation 2 | sub-dashboard : sdg1 sdg2
| groups : | |
| / \ / \
| sub-dashboards: sd1 sd2 sd3
--
笔记:
sd2
) 属于两个子仪表板组,因此可供所有 4 个用户访问。sub-organisation 1
不能访问属于sub-organisation 2
任何数据或属于organisation
,除了它自己的数据。这是一个使用场景,描绘了我如何设想在现实中工作:
我有一个客户Off-Grid manufacturer 1
,他为工厂租赁公司建造和销售离网系统,而工厂租赁公司又将这些系统出租给需要在其建筑工地供电的建筑公司(注意:4 个组织级别)。
Off-Grid manufacturer 1
获得了一个新客户Plant hire company 1.2
,该客户希望监控他们从Off-Grid manufacturer 1
购买的所有离网系统。 Plant hire company 1.2
有两个客户Building companies 1.2.1 & 1.2.2
,他们想要管理自己的用户访问权限。
Off-Grid manufacturer 1
为每个离网系统创建了一套标准的仪表板,他们希望让所有客户都可以访问这些仪表板。
Off-Grid manufacturer 1
的新组织我在该组织内创建了一个用户并授予他们管理员权限。
Off-Grid manufacturer 1
组织的管理员用户创建了 2 个仪表板。
管理员用户创建一个名为“技术员”的新组并授予其访问仪表板 2 的权限。
Off-Grid manufacturer 1
组织的管理员用户创建了一个新用户(例如finance_user_1
)。
finance_user_1
被添加到“财务”组(他们可以立即访问仪表板 1)
Off-Grid manufacturer 1
组织的管理员用户创建一个新组或子组织(例如hire_company_1.2
)。
hire_company_1.2_admin
的新用户。hire_company_1.2_admin
可以:hire_company_1.2
组中。
最有用的评论
我建议也隔离数据源,让组的管理员安全地管理自己的数据源。