一、InfluxDB 简介
InfluxDB 是采用Golang编写的一款时间序列数据库,负责高效处理实时数据。关于时序数据库已经在监控系统入门中已经进行了介绍,这里不再赘述。目前市面上比较流行的时序数据库还有Open TSDB(Hbase)、Prometheus等。他们都有自己的适用场景,在做技术选型的时候需要结合业务需求进行选择。
这里多提一句,目前官方InfluxData免费提供单机版,但是对于集群版需要收费,集群版会提供负载均衡、数据同步等集群高可用的功能。线上生产环境如需大规模使用,还是比较推荐使用集群版来保证高可用的。
特色功能
- 基于时间序列,支持与时间有关的相关函数
- 可度量性:实时对大量数据进行计算
- 基于事件:它支持任意的事件数据(个人暂时不是很理解这个特性,如有清楚的可以留言交流)
主要特点
- 无结构(无模式):可以是任意数量的列
- 支持min, max, sum, count, mean, median 等一系列函数,方便统计
- 原生的HTTP支持,内置HTTP API
- 强大的类SQL语法
- 自带管理界面,也方便与Grafana等整合进行图表展示
备注:关于InfluxDB 和Grafana整合的详细内容可以参考:InfluxDB 和Grafana整合,后序本人也会尝试整理,目前就留个资料吧。
二、influxDB安装
工欲善其事,必先利其器。想要使用这一神兵利器,得先学会怎么安装部署influxDB。
软件下载与安装
截止到2018年10月,最新版为1.63版本。
截止到2018年11月,最新版本为1.7.0.版本,
以下只有Ubuntu & Debian
本人亲自验证过,其他内容来源于网上,读者可以自行校验,不保证一定可用。
OS X
brew update
brew install influxdb
Docker Image
docker pull influxdb
Ubuntu & Debian
wget https://dl.influxdata.com/influxdb/releases/influxdb_1.7.0_amd64.deb
sudo dpkg -i influxdb_1.7.0_amd64.deb
RedHat & CentOS
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.6.3.x86_64.rpm
sudo yum localinstall influxdb-1.6.3.x86_64.rpm
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.0.x86_64.rpm
sudo yum localinstall influxdb-1.7.0.x86_64.rpm
Standalone Windows Binaries (64-bit)
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.0_windows_amd64.zip
unzip influxdb-1.7.0_windows_amd64.zip
Standalone Linux Binaries (64-bit)
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.0_linux_amd64.tar.gz
tar xvfz influxdb-1.7.0_linux_amd64.tar.gz
Standalone Linux Binaries (32-bit)
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.0_linux_i386.tar.gz
tar xvfz influxdb-1.7.0_linux_i386.tar.gz
Standalone Linux Binaries (ARM)
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.0_linux_armhf.tar.gz
tar xvfz influxdb-1.7.0_linux_armhf.tar.gz
配置文件
配置文件位置:
/etc/influxdb/influxdb.conf
在配置文件中,可以修改InfluxDB的缓存大小等参数。
三、InfluxDB启动
3.1 服务端启动
如果是通过包安装的,可以使用如下语句启动:
sudo service influxdb start
如果直接下载的二进制包,则通过如下方式启动
编写如下脚本influxdb_start.sh
#!/bin/bash
/usr/bin/influxd &
运行上述脚本:
chmod 777 influxdb_start.sh
sh influxdb_start.sh
这样就以后台运行的方式启动了influxdb的服务端。
3.2 客户端启动
在/usr/bin
里执行influx
即可登入Influx服务器:
/usr/bin/influx
可以将路径加入环境变量中,这样既可在任意地方使用influx。
InfluxDB自带web管理界面,在浏览器中输入http://服务器IP:8083
即可进入web管理页面。
熟悉基本操作
root@iZbp1bx0xi202s8uyn62h9Z:/home/louxj424/download# /usr/bin/influx
Connected to http://localhost:8086 version 1.7.0
InfluxDB shell version: 1.7.0
Enter an InfluxQL query
> show databases;
name: databases
name
----
_internal
> create database test;
> create retention policy "default_policy" on "test" duration 90d replication 2 default;
> use test;
Using database test
> show retention policies;
name duration shardGroupDuration replicaN default
---- -------- ------------------ -------- -------
autogen 0s 168h0m0s 1 false
default_policy 2160h0m0s 24h0m0s 2 true
> insert cpu,uuid=12345,projectId=23455d usr=23,idle=12
> select * from cpu;
name: cpu
time idle projectId usr uuid
---- ---- --------- --- ----
1554722072182012788 12 23455d 23 12345
> insert cpu,uuid=12345,projectId=2s2d usr=12,idle=23,sys=11
> select mean(idle) from cpu group by projectId;
name: cpu
tags: projectId=23455d
time mean
---- ----
0 12
name: cpu
tags: projectId=2s2d
time mean
---- ----
0 23
> precision rfc3339
> select mean(idle) from cpu group by projectId;
name: cpu
tags: projectId=23455d
time mean
---- ----
1970-01-01T00:00:00Z 12
name: cpu
tags: projectId=2s2d
time mean
---- ----
1970-01-01T00:00:00Z 23
> drop database test
客户端工具
如果你是windows系统用户,那么这里有福利了,推荐一个在Windows平台下的开源数据库管理工具InfluxDBStudio
,帮你简化查询数据库的步骤,提高工作效率。
软件下载
软件下载可以从这里点进去正式版本发布地址
软件的详细的使用说明可以参考参考资料3.
软件使用
这里简单给两张截图,大家感受一下:
- 创建连接
- 查询数据
使用感受
InfluxDBStudio支持删除数据库,删除表,导出数据等功能,目前该工具还在开发中,可能跟成熟的Oracle工具PLSQL或Mysql的Navicat等工具还有一些差距,但可以满足在Windows环境上对InfluxDB的常规操作了,刚接触InfluxDB的开发者,可以用此体验。
目前使用看来,还算流畅,只在查询全表千万条数据的时候,没有分页功能,会导致卡顿,所以大表查询,推荐用limit 1000语句加以限制,防止卡死。
参考资料
- influxDB官网
- InfluxDB学习之InfluxDB的安装和简介
- InfluxDBStudio项目地址
- linux将指令加入开机启动或加入环境变量