Influxdb relay ubuntu

前端之家收集整理的这篇文章主要介绍了Influxdb relay ubuntu前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_404_63@

文件版本:

V1.0

文件编号:

R&D0031

发布日期:


编 制:

xxx

审 批:


Influxdb relay + grafana服务器

目录

1.简介4

1.1 特点4

1.2 influxdb与传统数据库的比较4

1.3 用途4

2.系统部署基础5

2.1 安装5

2.2 启动5

2.3 web界面展示6

2.4 数据库增7

2.5 数据库删与改7

2.6 数据库查询7

2.7 数据库与表的操作8

2.8 数据库保存策略(Retention Policies)8

@L_502_13@

2.9 用户管理9

3. 数据展示工具10

3.1 grafana介绍10

3.1 grafana安装,运行,启动10

3.2 grafana访问10

3.3创建Dashbord12

4. IfluxDB Relay12

4.1 简介12

4.2 拓扑介绍12

4.3 源码包安装测试13

4.4 influxdb-relay启动14

4.5 influxdb-relay数据写入同步15

4.6 influxdb-relay节点故障数据写入同步16

5. FAQ17


修订记录

版本号

发布日期

拟制人

修订描述

V1.0



首次发布

















influxdb服务器

@H_157_301@1.简介

InfluxDBGo语言编写的一个开源分布式时序、事件和指标数据库,和传统是数据库相比有不少不同的地方。类似的数据库ElasticsearchGraphite等。

1.1 特点

1.提供了Http接口的API来操作数据

2.提供了类似sql数据库语句

3.基于时间序列,支持与时间有关的相关函数(如最大,最小,求和等)

4.可度量性:你可以实时对大量数据进行计算

5.基于事件:它支持任意的事件数据

6.无结构(无模式):可以是任意数量的列

7.可拓展的支持min,max,sum,count,mean,median 等一系列函数,方便统计

8.原生的HTTP支持,内置HTTP API

9.强大的类sql语法

10.自带管理界面,方便使用

1.2 influxdb与传统数据库的比较

库、表等比较:

influxDB

传统数据库中的概念

database

数据库

measurement

数据库中的表

points

表里面的一行数据

influxdb数据的构成:

Point由时间戳(time)、数据(field)、标签tags)组成。

Point属性

传统数据库中的概念

time

每个数据记录时间,是数据库中的主索引(自动生成)

fields

各种记录值(没有索引的属性)也就是记录的值:温度, 湿度

tags

各种有索引的属性:地区,海拔

这里不得不提另一个名词:series

所有在数据库中的数据,都需要通过图表来展示,而这个series表示这个表里面的数据,可以在图表上画成几条线:通过tags排列组合算出来。具体可以通过SHOW SERIESFROM "表名" 进行查询

1.3 用途

一般用来储存实时数据,配合一套UI界面来展示信息。

@H_157_301@2.系统部署基础

2.1 安装

基本环境,准备。

root@ubuntu:~# ls

grafana_4.1.1-1484211277_amd64.deb influxdb_1.1.1_amd64.deb

root@ubuntu:~# cat /etc/issue

Ubuntu 14.04.5 LTS \n \l

root@ubuntu:~# uname -a

Linux ubuntu 3.16.0-30-generic #40~14.04.1-Ubuntu SMP Thu Jan 15 17:43:14 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

开始安装

root@ubuntu:~#dpkg -i influxdb_1.1.1_amd64.deb

Selecting prevIoUsly unselected package influxdb.

(Reading database ... 90134 files and directories currently installed.)

Preparing to unpack influxdb_1.1.1_amd64.deb ...

Unpacking influxdb (1.1.1-1) ...

Setting up influxdb (1.1.1-1) ...

Adding system startup for /etc/init.d/influxdb ...

/etc/rc0.d/K20influxdb -> ../init.d/influxdb

/etc/rc1.d/K20influxdb -> ../init.d/influxdb

/etc/rc6.d/K20influxdb -> ../init.d/influxdb

/etc/rc2.d/S20influxdb -> ../init.d/influxdb

/etc/rc3.d/S20influxdb -> ../init.d/influxdb

/etc/rc4.d/S20influxdb -> ../init.d/influxdb

/etc/rc5.d/S20influxdb -> ../init.d/influxdb

Processing triggers for man-db (2.6.7.1-1ubuntu1) ...

2.2 启动

root@ubuntu:~# /etc/init.d/influxdb start

Starting the process influxdb [ OK ]

influxdb process was started [ OK ]

root@ubuntu:~# netstat -lnp|grep influ

tcp6 0 0 :::8083 :::* LISTEN 5057/influxd

tcp6 0 0 :::8086 :::* LISTEN 5057/influxd

tcp6 0 0 :::8088 :::* LISTEN 5057/influxd

8083 web管理端 http://ip:8083用户名和密码都是admin,InfluxDB Web 管理界面端口是 8083

8086 HTTP API 监听端口是 8086

8088 集群端口(目前还不是很清楚,配置在全局的bind-address,默认不配置就是开启的)

启动成功之后,我们就可以开始使用influxdb啦!

2.3 web界面展示

root@ubuntu:~# which influx

/usr/bin/influx

root@ubuntu:~# influx

Visit https://enterprise.influxdata.com to register for updates,InfluxDB server management,and monitoring.

Connected to http://localhost:8086 version 0.13.0

InfluxDB shell version: 0.13.0

>

>show databases

name: databases

name

----

_internal

> CREATE DATABASE "testDB"#创建数据库

>show databasestestDB

use testDB#使用testDB数据库MysqL

Using database testDB

Web界面访问http://ip:8083

注意:新版本默认是关闭web展示,详见后面FAQ具体解决方法

wKiom1iYJ2HSURtvAAAeBkCaQ4Q618.png-wh_50

wKioL1iYJ2LgqTPMAACpor5RT-w595.png-wh_50


通过界面操作命令。

2.4 数据库

> use testDB

Using database testDB

> insert weather,altitude=1000,area=temperature=11,humidity=-4

或者通过HTTP接口增加

curl -i -XPOST 'http://localhost:8086/write?db=testDB' --data-binary 'weather,humidity=-4'

Line Protocol格式

插入数据的格式似乎比较奇怪,这是因为influxDB储存数据所采用的是Line Protocol格式。

在上面两个插入数据的方法中,都有一样的部分。

weather,humidity=-4

其中:

1. weather : 表名

2. altitude=1000,area=北 : tag

3. temperature=11,humidity=-4 field

参考官方文档:

https://docs.influxdata.com/influxdb/v0.10/write_protocols/line/

2.5 数据库删与改

2.6 数据库查询

use testDB

Using database testDB

SELECT * FROM weather ORDER BY time

name: weather

timealtitudeareahumiditytemperature

-----------------------------------

14850746132673340411000-411

通过Http接口

curl -G 'http://localhost:8086/query?pretty=true' --data-urlencode "db=testDB" --data-urlencode "q=SELECT * FROM weather ORDER BY time DESC LIMIT 3"

InfluxDB支持sql语句的,具体的查询语法都差不多,就不再详细描述了。详见官方文档

2.7 数据库与表的操作

#创建数据库,库名为db_name

> CREATE DATABASE "db_name"

#显示所有数据库

> SHOW DATABASES

name: databases

name

----

_internal

testDB

db_name

#删除库名字为db_name的库

> DROP DATABASE "db_name"

#切换到testDB数据库

> USE testDB

#显示数据库中的表

> SHOW MEASUREMENTS

name: measurements

weather

#创建表

#直接在插入数据的时候指定表名字(weather就是表名)

#删除weather

> DROP MEASUREMENT "weather"

2.8 数据库保存策略(Retention Policies)

InfluxDB没有提供直接删除Points方法,但是它提供了Retention Policies。主要用于指定数据的保留时间:当数据超过了指定的时间之后,就会被删除

#1.查看当前数据库Retention Policies

> SHOW RETENTION POLICIES ON "testDB"

namedurationshardGroupDurationreplicaNdefault

---------------------------------------------

autogen0s168h0m0s1true

#2.创建新的Retention Policies

> CREATE RETENTION POLICY "rp_name" ON "testDB" DURATION 30d REPLICATION 1 DEFAULT

说明:

1. rp_name:策略名

2. testDB:具体的数据库

3. 30d:保存30天,30天之前的数据将被删除

它具有各种时间参数,比如:h(小时),w(星期)

4. REPLICATION 1:副本个数,这里填1就可以了

5. DEFAULT 设为默认的策略

#2.修改Retention Policies

> ALTER RETENTION POLICY "rp_name" ON "testDB" DURATION 3w DEFAULT

#3.删除Retention Policies

> DROP RETENTION POLICY "rp_name" ON "testDB"

2.9 连续查询

当数据超过保存策略里指定的时间之后,就会被删除。如果我们不想完全删除掉,比如做一个数据统计采样:把原先每秒的数据,存为每小时的数据,让数据占用的空间大大减少(以降低精度为代价)。这就需要InfluxDB提供的:连续查询Continuous Queries)。

#1.当前数据库continus Queries

> SHOW CONTINUOUS QUERIES

name: _internal

namequery

---------

name: testDB

---------

#2.创建新的continus Queries

2.9 用户管理

#显示用户

> SHOW USERS

useradmin

---------

#创建用户

> CREATE USER "realcloud" WITH PASSWORD '123456'

#创建管理员权限的用户

> CREATE USER "cmz" WITH PASSWORD 'cmz' WITH ALL PRIVILEGES

#删除用户

> DROP USER "cmz"

#设置登录密码

@H_157_301@3.数据展示工具

3.1 grafana介绍

数据最终是需要一套UI来展示的,而这种实时数据的展示,已经有不少项目了。 比如:

1. 官方的Chronograf

2. Grafana

3. 其它...

3.1 grafana安装,运行,启动

此时我选择的使用Grafana

root@ubuntu:~# ls

grafana_4.1.1-1484211277_amd64.deb influxdb_1.1.1_amd64.deb

#安装

root@ubuntu:~# dpkg -i grafana_4.1.1-1484211277_amd64.deb

Selecting prevIoUsly unselected package grafana.

(Reading database ... 61968 files and directories currently installed.)

Preparing to unpack grafana_4.1.1-1484211277_amd64.deb ...

Unpacking grafana (4.1.1-1484211277) ...

Setting up grafana (4.1.1-1484211277) ...

Adding system user `grafana' (UID 106) ...

Adding new user `grafana' (UID 106) with group `grafana' ...

Not creating home directory `/usr/share/grafana'.

### NOT starting grafana-server by default on bootup,please execute

sudo update-rc.d grafana-server defaults 95 10

### In order to start grafana-server,execute

sudo service grafana-server start

Processing triggers for ureadahead (0.100.0-16) ...

ureadahead will be reprofiled on next reboot

#启动

root@ubuntu:~# /etc/init.d/grafana-server start

* Starting Grafana Server [ OK ]

安装步骤参考:http://grafana.org/download/

3.2 grafana访问

1)Web登录,直接访问:http://your_ip:3000

默认帐号:admin
默认密码:admin

wKiom1iYJ6uwmhSRAACPipeqI0E794.png-wh_50

wKioL1iYJ6zAuQiYAADqBPL_yvY608.png-wh_50

2)Data Sources添加数据库testDB

wKiom1iYJ7-gI9ZtAACf_UW9wuI226.png-wh_50

wKioL1iYJ-yhyYmbAACIh6bedKQ001.png-wh_50

wKiom1iYJ-zQYMblAAB4zwyU1GU703.png-wh_50

wKioL1iYJ-yCtQkuAAB1B0UKexs032.png-wh_50


其中userpassword,如果没有设置过,可以随便填下。
保存之后,可以通过Test Connection来测试,是否填写正确。

3.3创建Dashbord

点击New按钮就可以了。

wKiom1iYKAqzzXmJAAChYZyqdVM148.png-wh_50

@H_157_301@4.IfluxDB Relay

4.1 简介

该项目为influxdb添加了一个基本的高可用性层。通过正确的体系结构和灾难恢复过程,实现了高度可用的设置。

提示:influxdb-relaymust be built with Go 1.5+

参考链接

https://github.com/influxdata/influxdb-relay/blob/master/README.md

4.2 拓扑介绍

体系结构相当简单,包括负载平衡器、两个或多个influxdb中继进程和两个或多个influxdb进程。负载平衡器应使用路径/写入将UDP通信和http post请求指向两个继电器,同时将路径/查询指向两个influxdb服务器。安装程序应该如下:

wKioL1iYKDKTwyY2AAApE2ud6GI011.png-wh_50

给我的感觉,这个 influxdb-relay是一个数据库中间件的角色,起到了一个代理的作用

4.3 源码包安装测试

1.实验环境

IP

系统环境

安装软件

192.168.5.200

Ubuntu14.04 x64

influxdb

influxdb-relay

192.168.5.202

Ubuntu14.04 x64

influxdb


此时上文只在200机器上安装了influxdb,此时要在202上也要安装influxdb。也可以只安装在一个机器上,我分开安装了,更贴切实际生产情况。

2. 安装golang环境

influxdb releasedeb包本身是已经编译好的,并不需要golang的环境。而influxdb-relay目前还只是存放在github上,因此需要先安装golang环境。手动下载更高版本的golang是需要的。

3. 下载并解压1.6.2版本的golang压缩包

root@ubuntu:~# apt-get install git

root@ubuntu:~#wget http://www.golangtc.com/static/go/1.6.2/go1.6.2.linux-amd64.tar.gz

root@ubuntu:~# ls go1.6.2.linux-amd64.tar.gz

go1.6.2.linux-amd64.tar.gz

root@ubuntu:~# tar -zxf go1.6.2.linux-amd64.tar.gz -C /usr/local/

4. 配置环境变量

root@ubuntu:~# tail -9 /etc/profile

#add by caimengzhi at 2017-01-23 for go. start

export GOROOT=/usr/local/go

export GOBIN=$GOROOT/bin

export GOPKG=$GOROOT/pkg/tool/linux_amd64

export GOARCH=amd64

export GOOS=linux

export GOPATH=$HOME

export PATH=$PATH:$GOBIN:$GOPKG:$GOPATH/bin

#add by caimengzhi at 2017-01-23 for go. End

root@ubuntu:~# source /etc/profile

root@ubuntu:~# go version

go version go1.6.2 linux/amd64

root@ubuntu:~# GOPATH=/root/go

root@ubuntu:~# go get github.com/influxdata/influxdb-relay

root@ubuntu:~# ls

gogo1.6.2.linux-amd64.tar.gz grafana_4.1.1-1484211277_amd64.deb influxdb_1.1.1_amd64.debsrc

#此时会在/root发现go文件

root@ubuntu:~# cp $GOPATH/src/github.com/influxdata/influxdb-relay/sample.toml ./relay.toml

root@ubuntu:~# vim relay.toml

-bash: /root/go/bin/influxdb-relay: No such file or directory

root@ubuntu:~# which influxdb-relay

/usr/local/go/bin/influxdb-relay

5. 配置文件解释

root@ubuntu:~# cat relay.toml

[[http]]

name = "example-http"

bind-addr = "192.168.5.200:9096"

output = [

{ name="local1",location = "http://192.168.5.200:8086/write" },

{ name="local2",location = "http://192.168.5.202:8086/write" },215);">]

[[udp]]

name = "example-udp"

read-buffer = 0 # default

]

4.4 influxdb-relay启动

root@ubuntu:~# /usr/local/go/bin/influxdb-relay -config relay.toml >/tmp/influxdb_relay.log 2>/dev/null &

[1] 10943

再指定之前influxdb-relay配置的端口9096,成功进入其他的influxdb

root@ubuntu:~# influx -port 9096

Visit https://enterprise.influxdata.com to register for updates,190);">Connected to http://localhost:9096 version relay

InfluxDB shell version: 1.1.1

4.5 influxdb-relay数据写入同步

验证可以通过influxdb-relay写数据

root@ubuntu:~#

curl -i -XPOST 'http://localhost:9096/write?db=testDB' --data-binary 'cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000'

2017/01/23 17:53:43 Problem posting to relay "example-http" backend "local2": Post http://127.0.0.1:7086/write?db=testDB: dial tcp 127.0.0.1:7086: getsockopt: connection refused

HTTP/1.1 204 No Content

Date: Mon,23 Jan 2017 09:53:43 GMT

1. 进入节点1influxdb验证数据写入

root@ubuntu:~# influx

Connected to http://localhost:8086 version 1.1.1

InfluxDB shell version: 1.1.1

> select * from cpu_load_short

name: cpu_load_short

timehostregionvalue

-------------------

1434055562000000000server01us-west0.64

2. 进入节点2influxdb验证数据写入

> use testDB;

Using database cmz

1434055562000000000server01us-west0.64

从上可以看出通过调用relay的端口9096.写入数据,两个节点都会有相对数据写入。

注意点:

### 缺陷,不知道是不是坑,反正在官网的github上没看到这个注意点
# 手动在所有节点上创建数据库write操作并不包含创建数据库,所以需要手动在所有节点上提前创建数据库

4.6 influxdb-relay节点故障数据写入同步

# 故障节点操作

1.停止节点1influxdb

root@loocha15:~# /etc/init.d/influxdb stop

Stopping influxdb...

influxdb process was stopped [ OK ]

2.此时继续写入数据

curl -i -XPOST 'http://localhost:9096/write?db=cmz' --data-binary 'cpu_load_short,host=beijing,region=east value=2 2222222222'

2017/02/06 15:19:26 Problem posting to relay "example-http" backend "local1": Post http://192.168.3.35:8086/write?db=cmz: dial tcp 192.168.3.35:8086: getsockopt: connection refused

3.节点2 验证数据

> use cmz;

1111111111nanjingeast123

2222222222beijingeast2 #这一条就是节点1故障后,写入的数据

1434055562000000000server01us-west0.64

到此截止influxdbHA已经测试完毕。

@H_157_301@5.FAQ

1.WEB展示404

root@ubuntu:~# curl localhost:8086 -I

HTTP/1.1 404 Not Found

Content-Type: text/plain; charset=utf-8

X-Content-Type-Options: nosniff

X-Influxdb-Version: 1.1.1

Date: Sun,22 Jan 2017 09:36:48 GMT

Content-Length: 19

Influxdb新版本web界面不展示解决方法

1.新安装influxdb web界面不展示

wKiom1iYKGaS3ac3AABE2yQs7mg782.png-wh_50

访问的时候404.

解决方法

一、问题原因

InfluxDB0.13版本以后,就默认关闭web管理页面,而国内的文档大多都以旧版的InfluxDB为标准写的,所以下载安装好最新版本以后,就会出现8083端口的web管理页面访问不了的问题。

二、解决方

新版的InfluxDB虽然默认关闭web管理页面,但我们可以通过很简单的方式进行开启。

打开配置文件vim /etc/influxdb/influxdb.conf 找到如下几行:

wKioL1iYKHHzzif-AAI6IUXobxI426.png-wh_50

修改后如下:

spacer.gif图片2.png" src="http://s4.51cto.com/wyfs02/M00/8D/57/wKiom1iYKHyT_3IeAABQgAFgU_U781.png-wh_500x0-wm_3-wmp_4-s_314901785.png">

重启服务

root@ubuntu:~# /etc/init.d/influxdb restart

influxdb process already stopped [ OK ]

Starting influxdb...

influxdb process was started [ OK ]

查看端口号8083(之前是没有的)

root@ubuntu:~# netstat -lnp|grep influ

tcp6 0 0 :::8083 :::* LISTEN 5057/influxd

tcp6 0 0 :::8086 :::* LISTEN 5057/influxd

tcp6 0 0 :::8088 :::* LISTEN 5057/influxd

Web界面访问展示:

http://ip:8083

spacer.gif图片1.png" src="http://s1.51cto.com/wyfs02/M00/8D/57/wKiom1iYKJbQx5neAAHm-t5HKAA662.png-wh_500x0-wm_3-wmp_4-s_4013767199.png">

OK.

2. command

root@ubuntu:~# go get -u github.com/influxdata/influxdb-relay

go: missing Git command. See https://golang.org/s/gogetcmd

package github.com/influxdata/influxdb-relay: exec: "git": executable file not found in $PATH

解决

root@ubuntu:~# apt-get install git

3.relay命令行管理不了

root@ubuntu:~# !net

netstat -lnp|grep 9096

tcp 0 0 127.0.0.1:9096 0.0.0.0:* LISTEN 3502/influxdb-relay

udp 0 0 127.0.0.1:9096 0.0.0.0:* 3502/influxdb-relay

root@ubuntu:~# influx -port 9096

Visit https://enterprise.influxdata.com to register for updates,and monitoring.

Connected to http://localhost:9096 version relay

InfluxDB shell version: 1.1.1

> show database;

ERR: invalid write endpoint

Warning: It is possible this error is due to not setting a database.

Please set a database with the command "use <database>".

原文链接:https://www.f2er.com/ubuntu/354699.html

猜你在找的Ubuntu相关文章