influxDB与Grafana初体验

之前在公司的时候,查看某些接口的负载以及访问频率等状况会用到grafana这个很好的后台UI控件。操作起来很是方便,于是趁着假期,也来简单学习一下,过程中遇到了挺多的坑,顺便填一下,方便后来人。

简要概述

influxdb是一个目前来说比较流行的时间序列数据库。通俗来讲,就是以时间线贯连相通的数据库。
说起来可能有点不太容易理解,我个人觉得对比学习可能是一个更好的学习方法。下面按我自己的理解来描述下,说得不恰当的地方,欢迎批评指正。

  • 平常我们使用的关系型数据库,规格严谨,格式统一。可以想象成是:301仓库(数据库名称)218房间(表名),中的一排排货架(表记录),这就是关系型数据库的典型的格式了。而相对

  • 对于时间序列数据库,也还算比较类似。其还算比较完善的类SQL语法,给它加分不少,开发者只需要记忆少量的关键名词,就可以很好的使用了。时间序列数据库的形式可以这么想象: 301管线(数据库名称) 中包裹了很多条电路线(measurements,可以认为是关系型数据库的表名), 由一个个点(Points)组成。

说起来是点,其实有点宽泛。剖开来看,点的组成有下面这些内容:

  • 时间: 由influxDB自动生成。记录着每条记录(Points)的生成时间。
  • field: 字段,各种记录的值。key-value的value为数值型。
  • tags: 需要被添加索引的key-value。一般经常被查询到的字段要设置为tag。

还有一个特殊的名词series,所有在influxDB数据库中的数据,都需要通过图表来表示,series表示这个表里面的所有的数据可以在图标上画成几条线(线条的个数规则是由tags排列组合计算出来)。

环境

因为不想在自己的windows上再装那么多软件了,于是就安装在了Ubuntu服务器上。然后通过influxDB和Grafana自带的web界面,使用HTTP链接进行操作就可以了。

influxDB的安装

在Ubutu上,包管理器的存在让安装influxDB变得很方便了。

wget https://dl.influxdata.com/influxdb/releases/influxdb_1.0.2_amd64.deb
sudo dpkg -i influxdb_1.0.2_amd64.deb

启动influxDB服务。

service influxdb start

管理页面

influxDB服务启动后,有两个比较特殊的端口需要了解一下,具体如下:

  • 8083: TCP port 8083 is used for InfluxDB’s Admin panel
  • 8086: TCP port 8086 is used for client-server communication over InfluxDB’s HTTP API

英文解释的已经很清晰了,如果还是嫌弃不理解,白话来讲就是,8083是管理员操作influxDB的服务监听端口,8086是通过HTTP(也就是web页面)操作influxDB的服务监听端口。

简单操作

网上有太多的例子,我也没必要在这重复造轮子,码字。因此附上一个链接,就不再过多描述了。

https://docs.influxdata.com/influxdb/v0.10/introduction/getting_started/

通过命令行

看完下面的截图,顺便联想下mysql这种关系型数据库的常见操作。基本上就没什么问题了
通过命令行操作influxdb

通过web页面

如果是在本地开启了influxdb服务,在有UI的情况下,可以通过输入http://localhost:8086 来访问web页面来管理服务。因为我是在服务器上开的服务,所以本地通过浏览器输入对应的IP就行。
通过web后台操作influxdb数据库

其他的CRUD什么的,就不说了。有兴趣的,直接看官方文档就好。https://docs.influxdata.com/influxdb/v0.10/guides/

安装grafana

跟influxDB一样,我还是在我的服务器上安装,然后在本地远程访问。在Ubuntu上的安装方式如下:

wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana_4.6.3_amd64.deb 
sudo dpkg -i grafana_4.6.3_amd64.deb 

因为是GO语言编写,没有其他的相关依赖,所以其他OS的安装方式也都很简单,详细可以参考下方文档。https://grafana.com/grafana/download

启动grafana服务。

service grafana-server start

值得一提的是,执行这个命令最好不要在/root目录下,因为日志的需要,这些目录可能会有限制,因此需要注意一下。

简单应用grafana

服务启动后,就可以访问如下链接进行管理了。http://localhost:3000
默认的用户名密码是admin,admin。因为我只在服务器上启动了服务,所以我在本地需要使用ip的方式进行访问。

添加DataSource

除了数据库类型以及HTTP代理之外,其他的按照自己的实际情况进行填写就好。填写完毕可以通过Save&Test进行测试。
添加DataSource

添加DashBoard

数据源添加完毕后,下一步就是让数据以合适的形式显示出来。因此就需要DashBoard。
官网(http://docs.grafana.org/guides/getting_started/)上也有详细的教程,但是有些步骤用文字还是稍显苍白。添加完合适的展示类型(Graph,Table等等)后,有可能你找不到对应的编辑数据源来展示数据。这里填下坑,双击图表的title,然后选择edit即可。如下图:
编辑图表,展示数据

需要注意的是,有可能select的数据,没能按照我们所预期的样子来进行展示,这个时候要考虑下,数据源内的数据是不是适合你选择的DashBoard类型。其他也就没什么问题了。

总结

本来打算,使用InfluxDB写一个TODO list,后来发现这个场景并不适合。然后就简单的学习了下相关的内容,很浅。不过也算是填补一下知识的一块短板吧。多了解点,总归是没错的。

浅知拙见,写的不恰当的地方,还望批评指正,多多指教下。

猜你喜欢

转载自blog.csdn.net/marksinoberg/article/details/79339140