InfluxDB(官方使用说明)
安装InfluxDB OSS
此页面提供有关安装,启动和配置InfluxDB的说明。
InfluxDB OSS安装要求
root
为了成功完成,需要安装InfluxDB软件包或具有管理员权限。
InfluxDB OSS网络端口
InfluxDB默认使用以下网络端口:
- TCP端口
8086
用于通过InfluxDB的HTTP API进行客户端 - 服务器通信 - TCP端口
8088
用于RPC服务以进行备份和还原
除了上面的端口,InfluxDB还提供了多个可能需要自定义端口的插件。可以通过配置文件修改所有端口映射,配置文件位于/etc/influxdb/influxdb.conf
默认安装位置。
网络时间协议(NTP)
InfluxDB使用主机的UTC本地时间为数据分配时间戳并用于协调目的。使用网络时间协议(NTP)同步主机之间的时间; 如果主机的时钟与NTP不同步,写入InfluxDB的数据的时间戳可能不准确。
安装InfluxDB OSS
对于不想安装任何软件并准备使用InfluxDB的用户,您可能需要查看我们的 托管主机InfluxDB产品。
有关如何从文件安装Debian软件包的说明,请参阅 下载页面。
Debian和Ubuntu用户可以使用apt-get
包管理器安装最新的稳定版本的InfluxDB 。
对于Ubuntu用户,使用以下命令添加InfluxData存储库:
curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add -
source /etc/lsb-release
echo "deb https://repos.influxdata.com/${DISTRIB_ID,,} ${DISTRIB_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
对于Debian用户,添加InfluxData存储库:
curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add -
source /etc/os-release
test $VERSION_ID = "7" && echo "deb https://repos.influxdata.com/debian wheezy stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
test $VERSION_ID = "8" && echo "deb https://repos.influxdata.com/debian jessie stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
test $VERSION_ID = "9" && echo "deb https://repos.influxdata.com/debian stretch stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
然后,安装并启动InfluxDB服务:
sudo apt-get update && sudo apt-get install influxdb
sudo service influxdb start
或者,如果您的操作系统使用的是systemd(Ubuntu 15.04 +,Debian 8+):
sudo apt-get update && sudo apt-get install influxdb
sudo systemctl unmask influxdb.service
sudo systemctl start influxdb
配置InfluxDB OSS
系统具有每个配置文件设置的内部默认值。使用该influxd config
命令查看默认配置设置。
本地配置文件(/etc/influxdb/influxdb.conf
)中的大多数设置都被注释掉了; 所有注释掉的设置将由内部默认值确定。本地配置文件中的任何未注释的设置都会覆盖内部默认值。请注意,本地配置文件不需要包含每个配置设置。
有两种方法可以使用您的配置文件启动InfluxDB:
使用以下
-config
选项将进程指向正确的配置文件:influxd -config /etc/influxdb/influxdb.conf
将环境变量设置为
INFLUXDB_CONFIG_PATH
配置文件的路径并启动该过程。例如:echo $INFLUXDB_CONFIG_PATH
/etc/influxdb/influxdb.conf influxd
InfluxDB首先检查-config
选项,然后检查环境变量。
有关更多信息,请参阅配置文档。
数据和WAL目录权限
确保存储数据和预写日志(WAL)的目录对于运行该influxd
服务的用户是可写的。
注意:如果数据和WAL目录不可写,则
influxd
服务将无法启动。
有关data
和wal
目录路径的信息,请参阅配置InfluxDB文档的数据设置部分。
在AWS上托管InfluxDB OSS
InfluxDB的硬件要求
我们建议使用两个SSD卷,一个用于influxdb/wal
另一个用于influxdb/data
。根据您的负载,每个卷应具有大约1k-3k的预配置IOPS。该influxdb/data
卷应该有更多的磁盘空间低IOPS和influxdb/wal
容量应该有更少的磁盘空间,具有较高的IOPS。
每台机器应至少有8G RAM。
我们已经看到了R4类机器的最佳性能,因为它们提供的内存比C3 / C4类和M4类都要多。
配置InfluxDB OSS实例
此示例假定您使用的是两个SSD卷并且已正确装入它们。此示例还假定每个卷都安装在/mnt/influx
和/mnt/db
。有关如何执行此操作的详细信息,请参阅有关如何向您的实例添加卷的Amazon文档。
配置文件
您必须为每个InfluxDB实例更新配置文件。
...
[meta]
dir = "/mnt/db/meta"
...
...
[data]
dir = "/mnt/db/data"
...
wal-dir = "/mnt/influx/wal"
...
...
[hinted-handoff]
...
dir = "/mnt/db/hh"
...
InfluxDB OSS权限
在InfluxDB数据和配置中使用非标准目录时,还要确保正确设置文件系统权限:
chown influxdb:influxdb /mnt/influx
chown influxdb:influxdb /mnt/db
----------------------------------------------------------
----------------------------------------------------------
----------------------------------------------------------
----------------------------------------------------------
----------------------------------------------------------
----------------------------------------------------------
InfluxDB OSS入门
安装 InfluxDB后,您就可以开始做一些很棒的事了。在本节中,我们将使用influx
命令行界面(CLI),它包含在所有InfluxDB包中,是一种轻量级且简单的与数据库交互的方式。CLI 8086
默认通过端口向InfluxDB HTTP API发出请求,直接与InfluxDB通信。
创建数据库
如果您已在本地安装InfluxDB,则该influx
命令应通过命令行提供。执行influx
将启动CLI并自动连接到本地InfluxDB实例(假设您已经启动了服务器service influxdb start
或influxd
直接运行)。输出应如下所示:
$ influx -precision rfc3339
Connected to http://localhost:8086 version 1.4.x
InfluxDB shell 1.4.x
>
笔记:
- InfluxDB HTTP API
8086
默认在端口上运行。因此,influx
将连接到端口8086
和localhost
默认。如果您需要更改这些默认值,请运行influx --help
。- 该
-precision
参数指定任何返回的时间戳的格式/精度。在上面的示例中,rfc3339
告诉InfluxDB以RFC3339格式(YYYY-MM-DDTHH:MM:SS.nnnnnnnnnZ
)返回时间戳。
现在,命令行已准备好以Influx查询语言(又称InfluxQL)语句的形式获取输入。要退出InfluxQL shell,请键入exit
并单击return。
全新安装的InfluxDB没有数据库(除了系统_internal
),因此创建一个是我们的首要任务。您可以使用CREATE DATABASE <db-name>
InfluxQL语句创建数据库,其中<db-name>
是您要创建的数据库的名称。只要字符串是双引号,数据库的名称就可以包含任何unicode字符。如果名称仅包含ASCII字母,数字或下划线且不以数字开头,则也可以不加引号。
在本指南中,我们将使用数据库名称mydb
:
> CREATE DATABASE mydb
>
注意:按 Enter键后,将出现一个新提示,并且不显示任何其他提示。在CLI中,这意味着语句已执行且没有要显示的错误。如果出现问题,将始终显示错误。没有消息就是好消息!
现在mydb
已经创建了数据库,我们将使用该SHOW DATABASES
语句显示所有现有数据库:
> SHOW DATABASES
name: databases
---------------
name
_internal
mydb
>
注:该
_internal
数据库中创建和使用InfluxDB存储内部运行指标。稍后再查看以了解InfluxDB如何在幕后执行。
SHOW DATABASES
与之不同,大多数InfluxQL语句必须针对特定数据库运行。您可以使用每个查询显式命名数据库,但CLI提供了一个便捷语句,USE <db-name>
它将自动为将来的所有请求设置数据库。例如:
> USE mydb
Using database mydb
>
现在,将来的命令只会针对mydb
数据库运行。
编写和探索数据
现在我们有了一个数据库,InfluxDB已准备好接受查询和写入。
首先,在数据存储区上的简短入门。InfluxDB中的数据按“时间序列”进行组织,其中包含测量值,如“cpu_load”或“temperature”。时间序列为零到多points
,每个离散的度量样本一个。点由time
(时间戳),a measurement
(例如“cpu_load”),至少一个键值field
(测量值本身,例如“值= 0.64”或“温度= 21.2”)和零到多键组成-value tags
包含有关该值的任何元数据(例如“host = server01”,“region = EMEA”,“dc = Frankfurt”)。
从概念上讲,您可以将a measurement
视为一个SQL表,其中主索引始终是时间。 tags
并且fields
是表中的有效列。 tags
被索引,而fields
不是。不同之处在于,使用InfluxDB,您可以进行数百万次测量,您不必预先定义模式,也不会存储空值。
使用线路协议将点写入InfluxDB,其遵循以下格式:
<measurement>[,<tag-key>=<tag-value>...] <field-key>=<field-value>[,<field2-key>=<field2-value>...] [unix-nano-timestamp]
以下几行都是可以写入InfluxDB的点的示例:
cpu,host=serverA,region=us_west value=0.64
payment,device=mobile,product=Notepad,method=credit billed=33,licenses=3i 1434067467100293230
stock,symbol=AAPL bid=127.46,ask=127.48
temperature,machine=unit42,type=assembly external=25,internal=37 1434067467000000000
注意:有关线路协议的更多信息,请参见“ 语法”页面。
要使用CLI将单个时间序列数据点插入InfluxDB,请输入INSERT
后跟一个点:
> INSERT cpu,host=serverA,region=us_west value=0.64
>
测量名称为cpu
和标记的点host
,region
现在已经写入数据库,测量value
值为0.64
。
现在我们将查询刚才写的数据:
> SELECT "host", "region", "value" FROM "cpu"
name: cpu
---------
time host region value
2015-10-21T19:28:07.580664347Z serverA us_west 0.64
>
注意:在编写我们的观点时,我们没有提供时间戳。如果没有为某个点提供时间戳,InfluxDB会在获取该点时分配本地当前时间戳。这意味着您的时间戳会有所不同。
让我们尝试存储另一种类型的数据,在同一测量中有两个字段:
> INSERT temperature,machine=unit42,type=assembly external=25,internal=37
>
要使用查询返回所有字段和标记,您可以使用*
运算符:
> SELECT * FROM "temperature"
name: temperature
-----------------
time external internal machine type
2015-10-21T19:28:08.385013942Z 25 37 unit42 assembly
>
警告:在大型数据库上使用
*
不带LIMIT
子句可能会导致性能问题。您可以使用Ctrl+C
取消响应时间过长的查询。
InfluxQL有许多功能和关键字,这里没有涉及,包括对Go风格的正则表达式的支持。例如:
> SELECT * FROM /.*/ LIMIT 1
--
> SELECT * FROM "cpu_load_short"
--
> SELECT * FROM "cpu_load_short" WHERE "value" > 0.9
这就是将数据写入InfluxDB并进行查询所需要知道的全部内容。要了解有关InfluxDB写入协议的更多信息,请查看写入数据指南。要进一步探索查询语言,请查看查询数据指南。有关InfluxDB概念的更多信息,请查看“ 关键概念”页面。
InfluxDB(官方使用说明)的更多相关文章
- Application.mk文件官方使用说明
本文档介绍了 ndk-build 所使用的 Application.mk 编译文件. 我们建议先阅读概念页面,然后再阅读本页面. 概览 Application.mk 指定了 ndk-build 的项目 ...
- Android.mk文件官方使用说明
本页介绍了 ndk-build 所使用的 Android.mk 编译文件的语法. 概览 Android.mk 文件位于项目 jni/ 目录的子目录中,用于向编译系统描述源文件和共享库.它实际上是编译系 ...
- ndk-build官方使用说明
ndk-build 脚本可用于编译采用 NDK 基于 Make 的编译系统的项目.此外,我们还针对 ndk-build 使用的 Android.mk和 Application.mk 配置提供了更具体的 ...
- 《高级软件测试》11.16.Jira使用说明的撰写和操作视频的录制
今日任务完成情况如下: 小王:完成了测试管理工具jira的使用手册中,基本情况介绍.下载安装部分的撰写工作:小高:参考官方手册,结合自己的实际使用体会,对jira的基本组成及其工作流程进行了介绍:小陈 ...
- 建立Heapster Influxdb Grafana集群性能监控平台
依赖于kubenets dns服务 图形化展示度量指标的实现需要集成k8s的另外一个Addons组件: Heapster .Heapster原生支持K8s(v1.0.6及以后版本)和 CoreOS , ...
- Kubernetes监控:部署Heapster、InfluxDB和Grafana
本节内容: Kubernetes 监控方案 Heapster.InfluxDB和Grafana介绍 安装配置Heapster.InfluxDB和Grafana 访问 grafana 访问 influx ...
- ASP.NET Core2读写InfluxDB时序数据库
在我们很多应用中会遇到有一种基于一系列时间的数据需要处理,通过时间的顺序可以将这些数据点连成线,再通过数据统计后可以做成多纬度的报表,也可通过机器学习来实现数据的预测告警.而时序数据库就是用于存放管理 ...
- Influxdb的存储引擎
创建Influxdb数据库时,我们可以看到下面选项,每个选项的含义就是本文要描述的: Influxdb内部数据的存储可以使用不同的存储引擎.当前0.8.7版本支持的是LevelDB, RocksDB, ...
- SpringBoot 2.0 + InfluxDB+ Sentinel 实时监控数据存储
前言 阿里巴巴提供的控制台只是用于演示 Sentinel 的基本能力和工作流程,并没有依赖生产环境中所必需的组件,比如持久化的后端数据库.可靠的配置中心等.目前 Sentinel 采用内存态的方式存储 ...
随机推荐
- Jquery的deferred对象,看这2篇牛人的文章,基本就够了。
http://blog.csdn.net/ligang2585116/article/details/51589073 http://www.ruanyifeng.com/blog/2011/08/a ...
- Django之路由控制配置
路由控制配置 简单的路由配置 Django即支持1.x版本的路由配置也支持2.x的路由配置 1.x版本的路由配置是使用re进行路由配置(re_path) 2.x版本的路由配置使用(path)进行路由配 ...
- JavaBasic_07
面向对象三大特征 1.封装 封装是一种信息隐藏技术 a.是指数据和基于数据的操作封装在一起,数据被保护在内部(类的内部(对象)) b.系统的其他部分只有通过在数据外面的被授权的操作才能进行交互(没有授 ...
- [LeetCode&Python] Problem 860. Lemonade Change
At a lemonade stand, each lemonade costs $5. Customers are standing in a queue to buy from you, and ...
- 将Myeclipse非maven项目,导入到IDEA
# 将Myeclipse非maven项目,导入到IDEA 1. 打开原项目,复制“.classpath”文件路径,在IDEA中打开项目时,选此文件路径 2. 进入项目转换界面,默认一步步完成 3. 导 ...
- 使用NATS替换NSQ为后台服务解耦
简介 满世界的后台都在向微服务架构发展,我对微服务的理解是将一个复杂的业务分拆为多个服务,由多个服务协作完成一个服务:在后台微服务架构时需要考虑高可用.一致性等问题,也要考虑在实现上.编码上的复杂程度 ...
- linux lamp编译环境安装
apache 安装:http://blog.csdn.net/wplblog/article/details/52172128 编译安装 mysql安装:http://www.centoscn.com ...
- Spark各个版本新特性
后续会添加spark生态系统中各个组件的兼容支持情况... Spark2.0.0 * 2016-07-27正式发布 * 它是2.x版本线的上的第一个版本. * 300位contributors的超过2 ...
- 【java编程】ServiceLoader使用看这一篇就够了
转载:https://www.jianshu.com/p/7601ba434ff4 想必大家多多少少听过spi,具体的解释我就不多说了.但是它具体是怎么实现的呢?它的原理是什么呢?下面我就围绕这两个问 ...
- Redis怎么保持缓存与数据库一致性?
将不一致分为三种情况: 1. 数据库有数据,缓存没有数据: 2. 数据库有数据,缓存也有数据,数据不相等: 3. 数据库没有数据,缓存有数据. 在讨论这三种情况之前,先说明一下我使用缓存的策略,也是大 ...