Docker学习系列3-Influxdb使用入门

时间:2024-03-20 10:46:18


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,访问管理工具的主页:

Docker学习系列3-Influxdb使用入门

输入用户名root,密码root,点击Connect

Docker学习系列3-Influxdb使用入门

连接到influxdb后,可以新建一个Database,这里已经新建了一个名为cadvisor的数据库,点击Explore Data:

Docker学习系列3-Influxdb使用入门

在Data Interface界面,用户可以从influxdb查询数据,或向influxdb写入数据。首先执行写入数据,在Time Series Name字段输入test,Values字段输入{"testDuration":22},返回200OK说明写入数据成功。将22修改为其他值,执行多次写入。

Docker学习系列3-Influxdb使用入门

可以查询数据库中包含的所有Series:list series

Docker学习系列3-Influxdb使用入门

从名为test的series查询数据:select * from test。查询结果会列出test中的所有数据点,并以时序图表的形式呈现给用户。

Docker学习系列3-Influxdb使用入门

Influxdb的入门就介绍到这里,Influxdb自带的web管理工具的功能非常有限,下一篇文章会介绍一个专门与Influxdb相结合,显示图表的强大前端工具,敬请期待!