
Grafana是一款用Go语言开发的开源数据可视化工具,可以做数据监控和数据统计,带有告警功能及权限控制。今日我们将介绍grafana的权限控制。

关键字
grafana:一款用go语言开发的,支持promethus,mysql,elasticsearch等数据源的可视化工具。
sqlite:SQLite 是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是在世界上最广泛部署的 SQL 数据库引擎。SQLite 源代码不受版权限制。
acl:访问控制技术。
下面我们将从推荐软件、数据库结构与数据、grafana操作指南的角度介绍grafana的权限控制。


推荐软件

grafana
推荐版本:Grafana v7.5.2
yum install https://mirrors.tuna.tsinghua.edu.cn/grafana/yum/rpm/grafana-7.5.2-1.x86_64.rpm

IDE,用来打开SQLite


数据库结构与数据
一、准备条件:
如果您安装的是清华大学的镜像,那么SQLite文件在:/var/lib/grafana/grafana.db
[root@VM-0-12-centos grafana]# pwd
/var/lib/grafana
[root@VM-0-12-centos grafana]# ls -ltr
total 740
drwx------ 2 grafana grafana 4096 Apr 1 16:07 png
drwxr-xr-x 4 grafana grafana 4096 Apr 30 00:41 plugins
-rw-r----- 1 grafana grafana 745472 Jul 13 11:13 grafana.db
[root@VM-0-12-centos grafana]#
如果您仅仅只想查看权限表而不想装grafana,那么可在我的个人私服下载。
https://oopssz.com/myDb/grafana.zip
二、重要表名说明:

表结构和索引都可以直接拖动db文件到DB Browser中。打开后可以看到建表语句,可以导出指定表,也可以全量导出。

浏览数据可以看到grafana实际插入的数据表。下面拿dashboard这张表举例。

id:表示的是唯一标识别,唯一的表;
slug:即对应的url的接口;
title:即为标题;
org_id:即这张表是从属哪个机构哪个组织的,和org表对应;
folder_id:即上级菜单,我们可对某个文件夹进行授权;
has_acl:即是否有权限控制,1为有权限控制。


如上图描述的是:
id=15,这是个有权限控制的文件夹,他的子文件夹是17。这个文件夹可以被3这个机构所访问。其他的11和14两张报表还没分类文件夹,因此默认在0,即general这个文件夹。11和14都有权限控制。
既然有权限控制,我们接着看下权限控制表dashboard_acl。

我们还是拿14 16 17这三张表举例:

如上图绿色部分,14这张表有两类ACL,一类是单独的某些用户可以访问,另一类是分组用户。我将定义公式如下:14->((user_id:6)(4) | (team_id:3)(1)),即:
14号这张表可以被6这个用户(weixuehui)以4号权限(Admin)访问以及3这个小组(zjb)以1号(View)权限访问。
打开grafana,比对数据库,权限对上。

我们接着看,我们发现6这个用户其实本身属于3这个组,3这个组的权限是仅仅能看的,而6这个用户是管理员是可以看,可以编辑,并且可以对报表赋权给用户的。那么究竟6取什么权限呢?
定义是这样的:如果有更高的权限存在,那么将取更高的权限。
大家可以安装个grafana,试几张报表就会很清楚了。
我们再举个例子,16这张表,ACL的规则如下:
16->((team_id:4)(1) | (user_id:8)(4) | (user_id:7)(2))
16这张表,可以被4这个组(zjb2)以1号权限(View只读权限)访问;
可以被8这个用户(luoyingchun)以4号权限(Admin管理员权限)访问;
可以被7这个用户(tangzhongmin)以2号权限(Edit编辑权限)访问。
我们核对grafana,的确是这个规则。



grafana操作指南
1.登陆grafana。
2.如果一个用户属于多个组织,左下角可以切换组织。

3.超级管理员可以建组织,左边栏有一长得像盾牌的,点击他。选择Orgs。

4.建立一个叫大米谭的组织。

5.新建一个大米的用户。

6.点击建好的大米用户,在跳转的页面,找到Organisations,分配大米谭这个组织的管理员给到她。并且她只是oopssz.com的观察员。

7.切换到大米谭组织,随便建一张测试报表,为damitan1。

8.为了对比实验,左下角切换到oopssz.com组织,找到kibana的订单样例数据。

9.右上角
给大米添加Edit权限。

10.到此,权限配置完毕。大米由于是大米谭的管理员,因此可以看大米谭下所有的表;大米只是oopssz.com的观察者,但是给她赋予了编辑者的权限,按照max(权限)的原则,因此大米可以编辑kibana的订单样例数据。
11.我们登陆大米的进行验证。



大米这个角色的确在oopssz.com这个组织下,对kibana的订单样例数据只有编辑权限,而没有管理员权限,即无法有permission操作。

我们切换到大米谭组织,可看到有管理员权限的damitan1的报表。验证通过。

我们查看SQLlite

可以看到大米是15号。查看acl表。11->(userid:15)(2),与grafana实际的验证结果一致。

其他案例:
主要是机构管理员进行机构用户下的团队管理,角色管理。
如机构下的用户与角色映射:

又如新建团队:

团队成员管理:



总结
1.grafana有acl权限控制,可通过配置即在SQLite生成数据。
2.超级管理员用户可在左侧菜单栏操作
按钮新建组织和用户,并给用户分配角色组织机构管理员、观察者、编辑者权限。
3.可在用户左下角
切换组织结构。
4.超级管理员和机构管理员都可在左侧菜单栏
按钮操作新建团队、管理用户、团队、角色之间的关系。
如有需要自己尝试权限,欢迎留言:格式:用户名+机构。
大米在收到留言后,将私信将建好的用户名和密码发给大家。
下集预告。
grafana操作elasticsearch数据源!操作指南!各类聚合方式!


| bat捞IP | 闲谈FGC | 大大与吉吉 | Honk! |
| 妖怪的宫殿 | HEAVY RAIN | HYMN TO BIRTH
| 没了的灵感 | 夜月 | PILIPIA FIRE专栏 | 月光牧童
| pilipia fire-pat3-间奏 | 20111001钢琴曲 | 赞歌
| ChinaTown | 变调421 | ICE | 20121216钢琴曲
| the music 's always with you
| learn to be lonely | the lord bless u and keep u


长按二维码
关注我们吧

吃瓜^ ^,点个在看再走吧!





