influxDB

1.介绍

influxDB是一个开源的时间序列数据库,同时也属于关系型数据库,因为influxDB主要是针对一次插入的数据,没有类似更新的操作,所以插入和读出数据显示速度比较快,我主要用来保存Jmeter运行的测试结果。

2.安装

2.1 下载地址

https://portal.influxdata.com/downloads

InfluxDB 设置索引 influxdb配置_测试结果查看

influxDB,Nightly是每日的意思,每日构建,属于测试版本,要选择V1.6.2,点击后无反应,我是查看源码,找的下载地址,下载的(选择windows版本)。

2.2 解压安装包

InfluxDB 设置索引 influxdb配置_时序数据库_02

2.3 修改配置文件

InfluxDB 的数据存储主要有三个目录。默认情况下是 meta, wal 以及 data 三个目录,服务器运行后会自动生成。

meta 用于存储数据库的一些元数据,meta 目录下有一个 meta.db 文件。

wal 目录存放预写日志文件,以 .wal 结尾。

data 目录存放实际存储的数据文件,以 .tsm 结尾。

一、修改26行地址,去掉29,32行注释

InfluxDB 设置索引 influxdb配置_InfluxDB 设置索引_03

 

二、修改45、48行地址

InfluxDB 设置索引 influxdb配置_influxDB_04

三、去掉68;168、171;183,186、190;203、206、209;220、223;行注释

InfluxDB 设置索引 influxdb配置_InfluxDB 设置索引_05

InfluxDB 设置索引 influxdb配置_时序数据库_06

InfluxDB 设置索引 influxdb配置_InfluxDB 设置索引_07

InfluxDB 设置索引 influxdb配置_influxDB_08

InfluxDB 设置索引 influxdb配置_InfluxDB 设置索引_09

2.4 运行influxDB数据库服务器

进入安装目录,直接运行influxd.exe即可,运行后,不要关闭

InfluxDB 设置索引 influxdb配置_influxDB_10

2.5 运行influxDB数据库客户端

进入安装目录,直接运行influx.exe即可

InfluxDB 设置索引 influxdb配置_测试结果查看_11

2.5 influxDB数据库常用命令

1、显示所有数据库:

show databases

InfluxDB 设置索引 influxdb配置_influxDB_12

2、创建数据库:

create database test

InfluxDB 设置索引 influxdb配置_测试结果查看_13

3、使用某个数据库:

use test

InfluxDB 设置索引 influxdb配置_测试结果查看_14

4、显示所有表

show measurements

InfluxDB 设置索引 influxdb配置_时序数据库_15

InfluxDB 设置索引 influxdb配置_jmeter结果查看_16

无表显示为空

5、新建表和插入数据

新建表没有具体的语法,只是增加第一条数据时,会自动建立表

insert results,hostname=index1 value=1

InfluxDB 设置索引 influxdb配置_jmeter结果查看_17

results代表表名,hostname是索引,value是具体的字段,默认会有time字段,也可以自己设定输入的时间

这里的时间看不懂,可以设置一下时间显示格式

precision rfc3339

InfluxDB 设置索引 influxdb配置_测试结果查看_18

7、查询数据

表名有点号时,输入双引号

InfluxDB 设置索引 influxdb配置_InfluxDB 设置索引_19

和sql语法相同,区别:

measurement 数据库中的表

points 表里面的一行数据,Point由时间戳(time)、数据(field)、标签(tags)组成。

8、用户管理

a.显示所有用户:

show users

InfluxDB 设置索引 influxdb配置_influxDB_20

b.新增用户:

--普通用户
create user "user" with password 'user'
--管理员用户
create user "admin" with password 'admin' with all privileges

InfluxDB 设置索引 influxdb配置_influxDB_21

c.删除用户

drop user "user"

 

2.6 基于web端管理influxDB数据库

网上好多修改配置文件中admin选项的文章,在1.5版本, Influxdb添加了Chronograf 组件作为web管理端,原来的web admin界面没有了,官网推出Chronograf,下载地址见第一步。

使用cmd进入安装目录,输入influxd -config influxdb.config,即可运行influxDB数据库服务器

运行报错:因为windows路径反斜杠需要转义,所以修改配置文件

InfluxDB 设置索引 influxdb配置_时序数据库_22

InfluxDB 设置索引 influxdb配置_时序数据库_23

重新运行:influxd -config influxdb.config,成功

InfluxDB 设置索引 influxdb配置_时序数据库_24

port 8083:管理页面端口,访问localhost:8083可以进入你本机的influxdb管理页面

port 8086:http连接influxdb client端口,一般使用该端口往本机的influxdb读写数据

 

2.7 Chronograf 使用

1、解压文件后,直接进入安装目录,执行chronograf.exe后;

2、输入:http://localhost:8888(chronograf默认是8888端口)

3、influxDB数据源连接

InfluxDB 设置索引 influxdb配置_InfluxDB 设置索引_25

输入数据库密码,点击下一步,其他不用变,第二个页面也一样。

InfluxDB 设置索引 influxdb配置_InfluxDB 设置索引_26

成功进入

 

2.8 telegraf和kapacitor介绍

telegraf是数据收集器,有很多的插件可用来收集数据。

kapacitor属于报警器,用来给用户发提醒。

 

2.9 Grafana介绍

主要是对数据通过插件进行图形化展示,经常和jmeter、influxdb配合使用。

下载地址:https://grafana.com/grafana/download

默认使用端口:3000

进入http://localhost:3000,登录默认用户名和密码都是admin

配置数据源

 

2.10 Jmeter配置

增加Backend Listener监听器

InfluxDB 设置索引 influxdb配置_jmeter结果查看_27

 

InfluxDB 设置索引 influxdb配置_测试结果查看_28

graphiteHost: influxdb IP地址

graphitePort: 2003是Jmeter往数据库发数据的端口

rootMeticsPrefix:指标前缀设置,用于方便区分

summaryOnly:true/false 是否统计总量

samplerList:测试Sampler名称,支持正则表达式,全部可使用.*.*

summaryOnly:设置true时,此处设置无效。

useRegexpForSamplerList:测试Sampler名称是否支持正则表达式

2.11需要配置influxdb.conf文件,并在influxdb数据库建立jmeter数据库

InfluxDB 设置索引 influxdb配置_测试结果查看_29

要想jmeter数据写入influxDB,需要运行influxDB,需要用:influxd -config influxdb.config

Grafana里修改数据源为jmeter

InfluxDB 设置索引 influxdb配置_influxDB_30

执行jmeter,查看jmeter数据库里是否出现新建的表

InfluxDB 设置索引 influxdb配置_时序数据库_31

2.12 Grafana配置图表

创建Dashboard

InfluxDB 设置索引 influxdb配置_时序数据库_32

选择图表

InfluxDB 设置索引 influxdb配置_influxDB_33

编辑

InfluxDB 设置索引 influxdb配置_jmeter结果查看_34

选择数据源,表

InfluxDB 设置索引 influxdb配置_InfluxDB 设置索引_35

保存后,运行jmeter,就可以通过grafana查看啦

常用的监控有:

jmeter.all.h.count

所有请求的TPS

jmeter.<请求名称>.h.count

对应<请求名称>的TPS

jmeter.all.ok.pct99

99%的请求响应时间

jmeter.<请求名称>.ok.pct99

对应<请求名称>99%的请求响应时间

jmeter.all.test.startedT

线程数