Docker学习系列3-Influxdb使用入门
1. 简介:
Influxdb是一个开源分布式时序、事件和指标数据库。使用Go 语言编写,无需外部依赖。其设计目标是实现分布式和水平伸缩扩展。本文主要介绍在Docker环境下Influxdb的使用。
InfluxDB有三大特性:
1. Time Series (时间序列):你可以使用与时间有关的相关函数(如最大,最小,求和等)
2. Metrics(度量):你可以实时对大量数据进行计算
3. Eevents(事件):它支持任意的事件数据
特点
1. schemaless(无结构),可以是任意数量的列
2. Scalable
3. min, max, sum, count, mean,median 一系列函数,方便统计
4. Native HTTP API, 内置http支持,使用http读写
5. Powerful Query Language 类似sql
6. Built-in Explorer 自带管理工具
2. Docker环境下安装influxdb:
本文假设读者已经安装并配置好了Docker的运行环境,Docker daemon已经运行。如果要在Suse上安装Docker,请参考文章Docker学习系列1-Suse安装Docker来设置Docker运行环境。如果是其他Linux系统,请参考Docker官方文档进行安装配置。
Influxdb最新版本是0.9,由于后续要和Cadvisor集成,Cadvisor不支持Influxdb的0.9版本,所以这里使用0.8.8的镜像
#docker pull tutum/influxdb:0.8.8
该命令执行成功后,使用docker images命令可以查看下载的镜像
#docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
tutum/influxdb 0.8.8 8ef6d98dafde 12 weeks ago 279.9 MB
到此,influxdb就安装完成了,是不是很简单?
3. Docker环境下运行influxdb:
#docker run -d -p 8083:8083 -p8086:8086 --expose 8090 --expose 8099 --name influxsrv tutum/influxdb:0.8.8
各个参数含义:
-d:容器在后台运行
-p:将容器内端口映射到宿主机端口,格式为 宿主机端口:容器内端口;8083是influxdb的web管理工具端口,8086是influxdb的HTTP API端口
--expose:可以让容器接受外部传入的数据
--name:容器名称
最后是镜像名称+tag,镜像为tutum/influxdb,tag的值0.8.8指定了要运行的版本,默认是latest。
4. influxdb使用入门
步骤3启动influxdb后,influxdb会启动一个内部的HTTP server管理工具,用户可以通过接入该web服务器来操作influxdb。当然,也可以通过CLI即命令行的方式访问influxdb。打开浏览器,输入http://Host_IP:8083,访问管理工具的主页:
输入用户名root,密码root,点击Connect
连接到influxdb后,可以新建一个Database,这里已经新建了一个名为cadvisor的数据库,点击Explore Data:
在Data Interface界面,用户可以从influxdb查询数据,或向influxdb写入数据。首先执行写入数据,在Time Series Name字段输入test,Values字段输入{"testDuration":22},返回200OK说明写入数据成功。将22修改为其他值,执行多次写入。
可以查询数据库中包含的所有Series:list series
从名为test的series查询数据:select * from test。查询结果会列出test中的所有数据点,并以时序图表的形式呈现给用户。
Influxdb的入门就介绍到这里,Influxdb自带的web管理工具的功能非常有限,下一篇文章会介绍一个专门与Influxdb相结合,显示图表的强大前端工具,敬请期待!