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产品。

Ubuntu和DebianRed Hat&CentOSSLES&openSUSEFreeBSD / PC-BSDmacOS

有关如何从文件安装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.confinfluxd
    

InfluxDB首先检查-config选项,然后检查环境变量。

有关更多信息,请参阅配置文档。

数据和WAL目录权限

确保存储数据和预写日志(WAL)的目录对于运行该influxd服务的用户是可写的。

注意:如果数据和WAL目录不可写,则influxd服务将无法启动。

有关datawal目录路径的信息,请参阅配置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通信。

注意:也可以通过生成原始HTTP请求来使用数据库。有关应用程序的 示例,请参阅编写数据和查询数据curl

创建数据库

如果您已在本地安装InfluxDB,则该influx命令应通过命令行提供。执行influx将启动CLI并自动连接到本地InfluxDB实例(假设您已经启动了服务器service influxdb startinfluxd直接运行)。输出应如下所示:

$ influx -precision rfc3339
Connected to http://localhost:8086 version 1.4.x
InfluxDB shell 1.4.x
>

笔记:

  • InfluxDB HTTP API 8086默认在端口上运行。因此,influx将连接到端口8086localhost默认。如果您需要更改这些默认值,请运行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和标记的点hostregion现在已经写入数据库,测量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概念的更多信息,请查看“ 关键概念”页面。

 

 

转载于:https://www.cnblogs.com/zouhao/p/9865073.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/396328.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

incc与oracle连接_Oracle 连接和会话的区别

连接并不是会话的同义词&#xff0c;发现这一点时很多人都很诧异。在大多数人眼里&#xff0c;它们都是一样的&#xff0c;但事实上并不一定如此。在一条连接上可以建立0个、一个或多个会话。各个会话是单独而且独立的&#xff0c;即使它们共享同一条数据库物理连接也是如此。一…

CodeForces 176B Word Cut(DP)

题意&#xff1a;给你a串和b串&#xff0c;你能切k次&#xff0c;每次切完将尾部分放在头的前面&#xff0c;问有多少种方案切k次从a串变为b串 思路&#xff1a;令dp[i][0]为砍了i次变成b串的方案数&#xff0c;dp[i][1]为砍了i次变成非b串的方案数&#xff0c;然后预处理一下前…

如何将React App转换为React Native

I have been working on a lot of mobile projects lately — including Cordova, PhoneGap, React Native, some Ionic and Swift — but I have to say, React Native is by far the best experience in mobile development I have had so far. It has great, web-like d…

HTTP状态码:400\500 错误代码

转自&#xff1a;http://blog.sina.com.cn/s/blog_59b052fa0100it74.html一些常见的状态码为&#xff1a;200 - 服务器成功返回网页404 - 请求的网页不存在503 - 服务不可用详细分解&#xff1a;1xx&#xff08;临时响应&#xff09;表示临时响应并需要请求者继续执行操作的状态…

dhcp服务

安装与配置 配置文件 修改配置文件 复制这个文件到另一端 打开另一端的配置文件 原端输入这些命令可以去掉英文 然后vim进入另一端配置文件 全局配置不在{}内的 分发范围是指哪个ip到哪个ip的范围 指定固定电脑获取固定位置 原端修改配置文件 下面进行启动dhcp 克隆一台虚拟机&…

python数据结构与算法40题_Python数据结构与算法40:递归编程练习题3:ASCII谢尔宾斯基地毯...

注&#xff1a;本文如涉及到代码&#xff0c;均经过Python 3.7实际运行检验&#xff0c;保证其严谨性。本文阅读时间约为7分钟。递归编程练习题3&#xff1a;ASCII谢尔宾斯基地毯谢尔宾斯基地毯谢尔宾斯基地毯是形如上图的正方形分形图案&#xff0c;每个地毯可分为等大小的9份…

使用Python发送电子邮件

by Arjun Krishna Babu通过Arjun Krishna Babu 如何使用Python发送电子邮件 (How to send emails using Python) As a learning exercise, I recently dug into Python 3 to see how I could fire off a bunch of emails. There may be more straightforward methods of doing…

此blog不更了

1转载于:https://www.cnblogs.com/ybai62868/p/5384097.html

Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart)

在接触WebService时值得收藏的一篇文章&#xff1a; 在调试Axis1.4访问WebService服务时&#xff0c;出现以下错误&#xff1a; Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart) 有错误找到错误原因以及发现值得收藏的…

java遍历树结构数据_Java数据结构——二叉树的遍历(汇总)

二叉树的遍历分为深度优先遍历(DFS)和广度优先遍历(BFS)DFS遍历主要有&#xff1a;前序遍历中序遍历后序遍历一、递归实现DFSNode.java:public class Node {private Object data;Node richild;Node lechild;public Object getData() {return data;}public void setData(Object …

vue 移动端头像裁剪_使用vue-cropper裁剪正方形上传头像-阿里云开发者社区

引用方式在组件内使用import { VueCropper } from vue-croppercomponents: {VueCropper,},main.js里面使用import VueCropper from vue-cropperVue.use(VueCropper)基本使用方法ref"cropper":img"option.img":autoCrop"true":fixedNumber"[…

规则引擎 设计 git_引擎盖下的Git

规则引擎 设计 gitby Wassim Chegham由Wassim Chegham 引擎盖下的Git (Git under the hood) Let’s explore some common Git commands, and dive into its internals to see what Git does when you run them.让我们探索一些常见的Git命令&#xff0c;并深入了解其内部&#…

练习题之死锁

public class PrintMain {public static String obj1"obj1";public static String obj2"obj2";public static void main(String[] args) {new Thread(new Runnable() {public void run() {System.out.println(new Date().toString "LockA开始执行&qu…

启用或禁用对 Exchange Server 中的邮箱的 POP3 或 IMAP4 访问

https://docs.microsoft.com/zh-cn/Exchange/clients/pop3-and-imap4/configure-mailbox-access?viewexchserver-2019 记录下转载于:https://www.cnblogs.com/amoy9812/p/9875426.html

java有什么压力_编程语言的心智负担!你学编程得有多大的压力快来测试一下...

很多编程语言对比的文章&#xff0c;总喜欢比较各种编程语言的性能、语法、IO模型。本文将从心智负担这个角度去比较下不同的编程语言和技术。内存越界如&#xff1a;C语言、C(C with class)C/C可以直接操作内存&#xff0c;但编程必须要面对内存越界问题。发生内存越界后&…

什么叫有效物理网卡_如何区分虚拟网卡和物理网卡?-阿里云开发者社区

一、什么是物理网卡和虚拟网卡&#xff1f;图示如下&#xff1a;红色部分包含VMWare的为虚拟网卡。通常&#xff0c;我们部署VMWare虚拟机、VMSphere虚拟集群、XenCenter虚拟集群是都会涉及虚拟网卡。二、辨别物理网卡和虚拟网卡的应用场景场景一&#xff1a;一般部署虚拟集群的…

算法复杂度的表示法_用简单的英语算法:时间复杂度和Big-O表示法

算法复杂度的表示法by Michael Olorunnisola通过Michael Olorunnisola 用简单的英语算法&#xff1a;时间复杂度和Big-O表示法 (Algorithms in plain English: time complexity and Big-O notation) Every good developer has time on their mind. They want to give their us…

Android Studio 开始运行错误

/********************************************************************************* Android Studio 开始运行错误* 说明&#xff1a;* 打开Android Studio就抛出这个错误。* * 2017-4-1 深圳 南…

IOS 计步器

这篇博客介绍的是当前比较流行的“计步器”-只是简单的知识点 计步器的实现在IOS8开始进行了改变。 但是我会对之前之后的都进行简单介绍。 IOS 8 - // // ViewController.m // CX 计步器 // // Created by ma c on 16/4/12. // Copyright © 2016年 bjsxt. All rights…

vue学习之二ECMAScript6标准

一、ECMAScript6标准简述 ECMAScript 6.0&#xff08;以下简称 ES6&#xff09;是 JavaScript 语言的下一代标准&#xff0c;已经在 2015 年 6 月正式发布了。它的目标&#xff0c;是使得 JavaScript 语言可以用来编写复杂的大型应用程序&#xff0c;成为企业级开发语言。 1.1E…