Grafana可以作为监控的一个功能组件,如果在使用上可以接受碰到监控可视化页面就跳转到Grafana中这种用户操作和体验的不太一致,可以节省很多的开发与测试的资源。但是在使用时由于缺省情况下Grafana不允许匿名登录,所以需要用户先行登录Grafana才能跳转,这篇文章介绍一下如何在Grafana中设定匿名登录的方式。
示例准备
可以自行准备任何Grafana的使用示例,本文使用Prometheus下使用Node Exporter的Grafana示例,构建方法可参看:
现象描述
Grafana中Node Exporter的仪表盘监控地址为:
- http://localhost:3000/d/hb7fSE0Zz/1-node-exporter-for-prometheus-dashboard-english-version-update-1102?orgId=1
如果Grafana已经登录的情况下,直接进行页面跳转则可显示如下信息:
但是,如果Grafana未登录的情况下,需要首先输入用户名和密码,登录成功后才会显示期待看到的仪表盘信息
设定方法
实际上我们只需要设定auth.anonymous段中的enabled选项为true即可
auth.anonymous段设定
设定项 | 缺省设定 | 详细说明 |
---|---|---|
enabled | false | 是否允许匿名登录 |
org_name | Main Org. | 无需认证的组织名称 |
org_role | Viewer | 无需认证的角色信息 |
其他设定选项说明可参看:
修改设定
本文示例使用了Grafana的官方镜像,首先需要使用类似如下的命令进入到已经启动的容器之中:
liumiaocn:config liumiao$ docker exec -it grafana sh
/usr/share/grafana $ ls
LICENSE NOTICE.md README.md VERSION bin conf public scripts tools
/usr/share/grafana $ cd conf
/usr/share/grafana/conf $ ls
defaults.ini ldap.toml ldap_multiple.toml provisioning sample.ini
/usr/share/grafana/conf $
修改/usr/share/grafana/conf下的缺省配置文件defaults.ini
#################################### Anonymous Auth ######################
[auth.anonymous]
# enable anonymous access
enabled = false
...
可以看到,缺省状态下,enabled设定为false,这里可以使用直接修改缺省设定的方式,将enabled设定为true即可。需要注意的是这种方式进入容器之中是无法修改此文件的,所以我们以root身份进入容器,可参照如下日志中的示例命令进行操作
liumiaocn:config liumiao$ docker exec -u root -it grafana sh
/usr/share/grafana # cd conf
/usr/share/grafana/conf # vi defaults.ini
/usr/share/grafana/conf #
设定之后,需要重启Grafana服务方可生效
liumiaocn:config liumiao$ docker restart grafana
grafana
liumiaocn:config liumiao$
再次确认其是否可以在匿名方式下通过URL直接进行跳转
从上图中可以清晰地看到,此时Grafana是尚未登录的状态,而且也没有跳转到登录页面,也就是可以进行匿名访问了。
总结
Grafana中提供了匿名访问的选项设定,可以直接修改缺省关闭的匿名访问控制来实现更加方便的页面跳转确认。但是这种集成方式也有如下的缺点:
- 需要在Grafana和其他系统中跳来跳去
- 页面风格不一致
- 较难进行权限控制
在对于这些缺点可以容忍的情况下,也是一个很简单的不错的集成方法。