InfluxDB+Grafana搭建和Grafana dashboard的配置
一、InfluxDB安装
在RedHat&CentOS下,使用下面命令直接安装并启动:
|
默认的配置文件在 /etc/influxdb/influxdb.conf,可以通过下面的命令指定配置文件启动:
|
用默认的配置文件启动后,输入 influx 命令即可直接连接到本地的influxdb服务。
|
InfluxDB使用的是一种SQL like的查询语言,叫做InfluxQL。与标准SQL的语法类似,但也有为InfluxDB定制的语法,比较容易上手。比如接下来先创建用户:
|
修改InfluxDB的配置文件,设置http下的auth-enabled = true,重启后,使用influx命令登录数据库就需要用户名和密码了。(Influx命令实际上也是使用API来操作InfluxDB的,InfluxDB只提供了API接口)
InfluxDB的配置还有很多,之后研究透后再慢慢调整。
|
在-password后接空字符串回车后输入密码可以屏蔽掉密码显示,不要直接在-password后跟上密码。
接下来是一系列的创建操作
|
当然InfluxDB还支持其他DDL,具体可猛击https://docs.influxdata.com/influxdb/v1.2/query_language/spec/#queries 查看Influx Reference。
由于InfluxDB的无结构(schemeless)特性,我们不需要预先建表,直接use [ database ]后就可以写入数据了。举个栗子。
|
上面语句中的cpu, temperature为InfluxDB某个database的measurement;host,region,machine,type为对应measurement下的tags;value,external,internal为对应measurement下的field,是measurement的实际值;而INSERT的一行数据称为一个point
measurement,tags,fields,points与普通的关系型数据库的对应:
- measurement类似于SQL中的table;
- tags类似SQL中的被索引的列;
- fields类似于SQL中没有被索引的列;
- points对应SQL的table中的每行数据。
更详细的介绍猛戳https://docs.influxdata.com/influxdb/v1.2/concepts/glossary/
然后读数据:
|
在select中使用tags的字段来作为where中的条件最好,因为tags都是有索引的,而field是没有索引的。
select的列必须带有一个field,否则是查不出来的。
二、Grafana安装
直接使用yum安装
|
启动要指定homepath,配置文件要放在homepath的config目录下。默认的配置文件为default.ini,可以用-config指定自己的配置文件。
目前配置文件还没研究透,只修改了几个存储目录的路径,像data,logs之类的。
启动命令:
|
三、Grafana配置
启动后,本地服务的默认端口为3000,在浏览器输入localhost:3000,输入用户名和密码admin/admin,即可登录。(管理员的用户名和密码在配置文件中可以配置的)
根据Getting Started with Grafana中的步骤,依次配置Grafana的数据源(这里就是InfluxDB),创建一个DashBoard以及添加用户。
1.配置数据源
配置数据源的界面如下所示:
配置从上往下:
- Name即为该数据源的标识名称,type为数据类型,这里为InfluxDB。此外Grafana还支持多种数据源;
- 在http settings类下,URL即InfluxDB的http server的URL,Access方式有proxy和direct。direct为在浏览器端直接连接数据源,不经过Grafana的后端。proxy即Grafana做连接的代理,前端要经过Grafana后端来连接数据源;
- 下面是http认证的一些配置,这里没有用到所以暂时不介绍;
- 最后是InfluxDB Details,需要填写的有数据源对应的database,以及使用的用户名和密码。这里有个小问题就是先前我配置一个只读权限的用户会报错,似乎只读用户不能使用Show命令,这里需要看一下,按理说这种用户的权限必须是只读的,如果有别的权限可能会有安全问题。
配置好以后Grafana会尝试连接,如果出错会在页面上报错,没问题的话就可以直接保存了。
2.建立一个dashboard
点击create your first dashboard,进入下面的界面:
默认Grafana支持这些图表,当然可以在Grafana的官网上下载更多的图表插件。我们选择最基本的折线图Graph。点开,点击panel title,点击edit打开配置框。
General设置看板的标题等属性,还可以配置下钻看板,即点击该看板可以跳到另一个看板中。最重要的设置是Metrics,上图可以看到,该设置是构造查询InfluxDB的查询语句的。A是这条查询的标识,如果要增加一条查询,标识就是B。这个貌似不能自定义,它的用途会在Alert设置下使用到。我们可以看到将要构造的查询结构,一眼就能看出来这是在构造一条SQL语句,熟悉SQL的人也很清楚每个字段的意义。FROM后面跟的是数据库的rentention policy和measurement,WHERE后面为条件,注意尽量使用tags的字段作为条件。下面的SELECT则是填写field或tags的key,并可以选择一系列聚合函数。GROUP BY为聚合字段,一般是按时间聚合,当然也可以按其他字段。按时间聚合可以指定时间粒度,比如time(1s),time(1d)等。下面的FORMAT AS为指定格式,ALIAS BY为指定别名。
配置好Metric后,InfluxDB中有数据的话就可以看到有折线出现了。右上角有刷新按钮,如果有新数据导入,点击刷新即可在图上显示最新的数据了。同时我们还可以设置自动刷新,已经图表展现的时间范围。
另一个重要的配置是报警Alert。点击Alert-create alert后会出现报警的配置,可以配置报警名称,触发条件,定时监测,状态触发等。报警支持邮件的报警,要接入钉钉可以使用webhook来实现。
3. 增加用户
回到home dashboard,点击add users。可以增加用户账号。添加需要填写用户名和邮箱,提交后会生成一个邀请链接,发给对应的用户后点击进入,然后用户自己填写密码后,就能登录了。