一、influxDB简介
influxDB是一个分布式时间序列数据库。cAdvisor仅仅显示实时信息,但是不存储监视数据。因此,我们需要提供时序数据库用于存储cAdvisor组件所提供的监控信息,以便显示除实时信息之外的时序数据。
何谓时间序列数据库?
什么是时间序列数据库,最简单的定义就是数据格式里包含Timestamp字段的数据,比如某一时间环境的温度,CPU的使用率等。但是,有什么数据不包含Timestamp呢?几乎所有的数据其实都可以打上一个Timestamp字段。时间序列数据的更重要的一个属性是如何去查询它,包括数据的过滤,计算等等。
Influxdb是一个开源的分布式时序、时间和指标数据库,使用go语言编写,无需外部依赖。
它有三大特性:
(1)时序性(Time Series):与时间相关的函数的灵活使用(诸如最大、最小、求和等);
(2)度量(Metrics):对实时大量数据进行计算;
(3)事件(Event):支持任意的事件数据,换句话说,任意事件的数据我们都可以做操作。
同时,它有以下几大特点:
(1)schemaless(无结构),可以是任意数量的列;
(2)min, max, sum, count, mean, median 一系列函数,方便统计;
(3)Native HTTP API, 内置http支持,使用http读写;
(4)Powerful Query Language 类似sql;
(4)Built-in Explorer 自带管理工具。
二、安装influxDB
(1)搜索镜像
[root@localhost /]# docker search influxdb
(2)下载镜像
这里我们推荐下载带web界面的influxdb镜像(INFLUXDB_VERSION=1.0.0):tutum/influxdb
[root@localhost test]# docker pull tutum/influxdb
注: 这里下载的最新镜像版本为:INFLUXDB_VERSION=
1.0.0
,官方说明:
版本influxdb1.3+之后再也没有web界面,所以如果我们安装了1.3+版本,还需要安装1.2版的client(使用其web界面)来连接新版本的InfluxDB。
(3)创建容器
influxdb配置文件说明:
/etc/influxdb/influxdb.conf 默认的配置文件 修改连接参数,重启即可
/var/log/influxdb/influxd.log 日志文件
/var/lib/influxdb/data 数据文件
/usr/lib/influxdb/scripts 初始化脚本文件夹
/usr/bin/influx 启动数据库
/var/run/influxdb/influxd.pid 服务启动的进程id
/var/cache/yum/influxdb 缓存处理数据说明: 端口
8083
:web访问端口; 端口8086
:数据写入端口。
执行创建容器命令:
[root@localhost test]# docker run -di -p 8083:8083 -p 8086:8086 --expose 8090 --expose 8099 --name my_influxdb tutum/influxdb:latest
75b4fe44e04a6186ad721827a13a45d0ac7b4ccd7934998aeb36a11606a83c62
[root@localhost test]#
查看运行的容器:
(4)浏览器访问influxDB
访问地址:http://192.168.116.161:8083
三、InfluxDB简单使用
3.1 创建数据库&查看数据库
(1)创建数据库
我们可以使用web页面提供的模板创建(如下图),也可以自行输入influxdb相关SQL,回车创建完成。
CREATE DATABASE “cadvisor”
(2)查看数据库
SHOW DATABASES
3.2 创建用户并授权
(1)创建用户
CREATE USER “root” WITH PASSWORD ‘1234’ WITH ALL PRIVILEGES
用户名:root,密码:1234
(2)查看用户列表
SHOW USERS
(3)用户授权
这里授予root用户数据库cadvisor的所有操作权限。
grant all privileges on cadvisor to root
附单独授权:
(1)grant WRITE on cadvisor to root
(2)grant READ on cadvisor to root
3.3 查看采集的数据
切换到cadvisor数据库,使用以下命令查看采集的数据:
SHOW MEASUREMENTS
如上图,cadvisor数据库目前没有数据,如果想采集系统的数据,我们需要使用Cadvisor软件来实现。