介绍
Grafana是一个开源的指标量监测和可视化工具。官方网站为:https://grafana.com/, 常用于展示基础设施的时序数据和应用程序运行分析。Grafana的dashboard展示非常炫酷,绝对是运维提升逼格的一大利器。
官方在线的demo可以在这里找到: http://play.grafana.org/
Grafana是一个通用的可视化工具。这意味着Grafana不仅仅适用于展示zabbix下的监控数据,也同样适用于一些其他的数据可视化需求。在开始使用Grafana之前,我们首先需要明确一些Grafana下的基本概念,以帮助用户能够快速理解Grafana。
数据源(datasource )
数据的存储源,它定义了将用什么方式来查询数据展示在grafana上面,不同的datasource拥有不同的查询语法,grafana支持多种数据源,官方支持以下数据源:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch。
每个数据源的查询语言和能力各不同,我们可以将来自多个数据源的数据组合到一个仪表盘中,但是每个面板都绑定到属于特定组织的特定数据源。
仪表盘(Dashboard )
通过数据源定义好可视化的数据来源之后,对于用户而言最重要的事情就是实现数据的可视化。在Grafana中,我们通过Dashboard来组织和管理我们的数据可视化图表,如下图所示:
在一个Dashboard中一个最基本的可视化单元为一个Panel(面板),Panel通过如趋势图,热力图的形式展示可视化数据。 并且在Dashboard中每一个Panel是一个完全独立的部分,通过Panel的Query Editor(查询编辑器)我们可以为每一个Panel自己查询的数据源以及数据查询方式,例如,如果以Prometheus作为数据源,那在Query Editor中,我们实际上使用的是PromQL,而Panel则会负责从特定的Prometheus中查询出相应的数据,并且将其可视化。由于每个Panel是完全独立的,因此在一个Dashboard中,往往可能会包含来自多个Data Source的数据。
Grafana通过插件的形式提供了多种Panel的实现,常用的如:Graph Panel,Heatmap Panel,SingleStat Panel以及Table Panel等。用户还可通过插件安装更多类型的Panel面板。
除了Panel以外,在Dashboard页面中,我们还可以定义一个Row(行),来组织和管理一组相关的Panel。
除了Panel, Row这些对象以外,Grafana还允许用户为Dashboard定义Templating variables(模板参数),从而实现可以与用户动态交互的Dashboard页面。同时Grafana通过JSON数据结构管理了整个Dasboard的定义,因此这些Dashboard也是非常方便进行共享的。Grafana还专门为Dashboard提供了一个共享服务。
https://grafana.com/dashboards
通过该服务用户可以轻松实现Dashboard的共享,同时我们也能快速的从中找到我们希望的Dashboard实现,并导入到自己的Grafana中。
Grafana的安装与配置
Grafana的安装非常简单,官方就有软件仓库可以直接使用,也可以通过docker镜像等方式直接本地启动。还可以直接下载rpm包、二进制包进行安装。
大家可以从 https://grafana.com/get 下载Grafana安装包,然后根据需要的系统平台及性能下载即可,官方给出了非常详细的安装方法,例如,要通过rpm包安装在Redhat & Centos平台,可直接执行如下命令:
[root@localhost ~]# wget https://dl.grafana.com/oss/release/grafana-5.4.3-1.x86_64.rpm
[root@localhost ~]# sudo yum localinstall grafana-5.4.3-1.x86_64.rpm
安装完毕后,使用“systemctl status grafana-server
”就可以启动grafana,访问 http://your-host:3000 就可以看到登录界面了。默认的用户名和密码都是admin。
默认情况下,grafana的配置存储于sqlite3中,如果你想使用其他存储后端,如mysql,postgresql等,请参考官方文档配置: http://docs.grafana.org/installation/configuration/
本文是在centos7.x版本下进行的安装,安装方法与上面相同,安装完毕后,设置一些服务器启动即可,操作如下:
[root@localhost ~]# systemctl enable grafana-server #开启自启动
[root@localhost ~]# systemctl start grafana-server #启动服务
[root@localhost ~]# systemctl status grafana-server #查看服务是否正常启动
Grafana的配置文件位于/etc/grafana/grafana.ini
,一般情况下无需修改配置文件。这样,安装就完成了。非常简单。
当然如果你也可以在容器中直接运行grafana镜像
https://hub.docker.com/r/grafana/grafana
没有K8S环境可以使用以下命令直接启动
docker run
-d
-p 3001:3000
--name=grafana544
-v D:/grafana/grafana-5.0.1/data:/var/lib/grafana
-v D:/grafana/grafana-5.0.1/conf:/usr/share/grafana/conf
grafana/grafana:5.4.4
常用插件
由于grafana深度兼容普罗米修斯,你无需安装插件就可以支持了,对于使用zabbix的用户需要额外安装插件。
通过介绍可能你也看出来了,只要能提供时间序列的数据,都可以在这里使用,例如我们每1分钟从mysql数据库中计算出平均订单量,因此grafana是一个非常灵活、漂亮的图表开源软件。
作为运维我们更多的是用于展示监控数据,这里我说一下最最常用的几个插件,官方提供的插件:https://grafana.com/grafana/plugins
您暂时无权查看此隐藏内容!
#可以通过以下命令列出可用插件
grafana-cli plugins list-remote
#列出已安装插件
grafana-cli plugins ls
插件安装完后,需要重启grafana服务生效
grafana免密登陆配置
修改Grafana配置文件
在Grafana的配置文件 /etc/grafana/grafana.ini
中,找到 [auth.anonymous]
配置块,将其下的匿名访问控制 enabled
设置为 true
,组织权限设置为 Viewer
。
(Viewer:只读模式,Editor:可编辑模式,Admin:管理员模式)
#################################### Anonymous Auth ######################
[auth.anonymous]
# enable anonymous access
enabled = true
# specify organization name that should be used for unauthenticated users
org_name = Main Org.
# specify role for unauthenticated users
org_role = Viewer
# mask the Grafana version number for unauthenticated users
hide_version = true
grafana支持丰富的认证登陆,有兴趣的可以在配置文件中去开启使用,也是很方便的。(如github,gitlab,google,AD等等)
展示一下测试用例: