influxdb数据库集群与高可用服务体验,提到了0.11是最后一个包含集群服务的开源版本。

Influxdb Cluster集群部署 Influxdb集群部署方案,几乎与 InfluxDB Enterprise 一模一样,基于nfluxDB 1.8.10 阅读详情


influxdb是一个什么样的数据库呢?在官网上https://influxdata.com/ 是这样介绍的,“An open source time-series database designed for high-performance writes and compact disk storage. Supports open source high-availability architectures and native clustering is available through an Influx Enterprise subscription.”influxdb是一个开源时序数据库,常用来存放监控数据,在这段官网的介绍中特别提到了开源高可用架构和原生的集群服务。本文会介绍influxdb目前开源的集群以及高可用服务。

influxdb集群

在influxdb 0.12发布的同时,也宣告了influxdb开源集群服务的结束,在官方文档0.12与0.11的差别中的clustering updates部分

https://docs.influxdata.com/influxdb/v0.12/concepts/011_vs_012/ ,

提到了0.11是最后一个包含集群服务的开源版本。

influxdb集群安装

在3个节点上安装influxdb 0.11

yum install influxdb-0.11.1-1.x86_64

分别修改配置文件,使用默认端口、地址绑定即可,我的做法是修改hostname

vim /etc/influxdb/influxdb.conf

配置集群

vim /etc/default/influxdb
INFLUXD_OPTS="-join ysm-test1:8091,ysm-test2:8091,ysm-test3:8091"

全部修改完以后重启服务即可

systemctl restart influxdb

进入influxdb交互模式,查看集群情况

influx

Visit https://enterprise.influxdata.com to register for updates, InfluxDB server management, and monitoring.
Connected to http://localhost:8086 version 0.11.1
InfluxDB shell 0.11.1
> show servers
name: data_nodes
----------------
id  http_addr   tcp_addr
1   ysm-test1:8086  ysm-test1:8088
2   ysm-test3:8086  ysm-test3:8088
3   ysm-test2:8086  ysm-test2:8088

name: meta_nodes
----------------
id  http_addr   tcp_addr
1   ysm-test1:8091  ysm-test1:8088
2   ysm-test3:8091  ysm-test3:8088
3   ysm-test2:8091  ysm-test2:8088

验证集群
> create database test

在集群中的其他节点里也能看到新建的test数据库
> show databases
name: databases
---------------
name
_internal
test
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51

influxdb高可用

influxdb 0.12发布的时候,也公开了influxdb-relay项目,用来实现influxdb的高可用。从官方推荐的架构https://docs.influxdata.com/influxdb/v0.12/high_availability/relay/ ,可以看到influxdb-relay在influxdb上面又加了一层,用来处理/write和UDP的请求,而/query请求则是直接访问influxdb。

安装golang环境

influxdb release的rpm包本身是已经编译好的,并不需要golang的环境。而influxdb-relay目前还只是存放在github上,因此需要先安装golang环境。 
Centos的base源里是有golang的

yum list|grep golang 
golang.x86_64 1.4.2-9.el7 base

不过版本较低,只有1.4.2在编译influxdb-relay的时候,很有可能会出现以下问题。

/usr/lib/golang/src/github.com/influxdata/influxdb-relay/relay/udp.go:210: undefined: bytes.LastIndexByte
  • 1

这是因为/srv/influxdb-relay/relay/udp.go中的以下这个函数中,用到了bytes库的LastIndexByte 函数,这个功能于2015年4月merge, 
https://github.com/golang/go/commit/0fb5475bdf0e5352d7aac67d2ec97c0513ee0af3 是个golang 1.5+ 的功能。于是,手动下载更高版本的golang是需要的。

func (b *udpBackend) post(data []byte) error {
        var err error
        for len(data) > b.mtu {
                // find the last line that will fit within the MTU
                idx := bytes.LastIndexByte(data[:b.mtu], '\n')
                if idx < 0 {
                        // first line is larger than MTU
                        return errPacketTooLarge
                }
                _, err = b.u.c.WriteToUDP(data[:idx+1], b.addr)
                if err != nil {
                        return err
                }
                data = data[idx+1:]
        }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

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

wget http://www.golangtc.com/static/go/1.6.2/go1.6.2.linux-amd64.tar.gz
tar -zxf go1.6.2.linux-amd64.tar.gz -C /usr/local/ 
  • 1
  • 2

设置环境变量

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 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

至此,golang环境已经安装完成,执行go help,确认go命令已经可以使用。 
go help

安装influxdb-relay

go install github.com/influxdata/influxdb-relay 
  • 1

执行这条命令的时候很有可能会报以下的错误,

can't load package: package github.com/influxdata/influxdb-relay: cannot find package "github.com/influxdata/influxdb-relay" in any of:
    /usr/lib/golang/src/github.com/influxdata/influxdb-relay (from $GOROOT)
  • 1
  • 2

通过google搜索以后,意外地发现了天才程序员TJ Holowaychuk 2013年8月在vegeta项目下报的类似的issue https://github.com/tsenart/vegeta/issues/1 , 
看来使用golang项目的文档撰写者需要注意一下这个部分文档的完善。直接使用go install命令是无法安装远程代码的,需要执行go get命令先将远程的代码拷贝到本地的$GOPATH下。

go get github.com/influxdata/influxdb-relay
go install github.com/influxdata/influxdb-relay
  • 1
  • 2

安装完成以后,配置配置文件relay.toml

cp $GOPATH/src/github.com/influxdata/influxdb-relay/sample.toml ./relay.toml
  • 1

这是我的配置文件,只采用了http协议连接方式,如果influxdb /etc/influxdb/influxdb.conf的配置里开启了udp的配置也可以使用udp协议的连接方式。

vim relay.toml
[[http]]
name = "example-http"
bind-addr = "127.0.0.1:9096"
output = [
    { name="ysm-test1", location = "ysm-test1:8086/write" },
{ name="ysm-test2", location = "ysm-test2:8086/write" },
{ name="ysm-test3", location = "ysm-test3:8086/write" },
]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

接下来就可以使用influxdb-relay的HA了

/usr/local/go/bin/influxdb-relay -config ./relay.toml
2016/05/05 09:42:11 starting relays...
2016/05/05 09:42:11 Starting HTTP relay " example-http " on :9096
  • 1
  • 2
  • 3

将这台机器的influxdb服务关闭

systemctl stop influxdb
  • 1

再使用influx命令,就会发现无法进入交互模式

Failed to connect to http://localhost:8086
Please check your connection settings and ensure 'influxd' is running.
  • 1
  • 2

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

influx -port 9096
Visit https://enterprise.influxdata.com to register for updates, InfluxDB server management, and monitoring.
Connected to http://localhost:9096 version 0.11.1
InfluxDB shell 0.11.1
>
  • 1
  • 2
  • 3
  • 4
  • 5

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

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

进入influxdb验证数据写入

> use test
Using database test
> select * from cpu_load_short
name: cpu_load_short
--------------------
time            host        region  value
1434055562000000000 server01    us-west 0.64
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

至此,基于influxdb 0.11的集群高可用介绍已经完成,influxdb开源的集群以及高可用服务都不是很完善,不建议在生产环境中使用,如需更详细的了解,可以参考官方文档https://docs.influxdata.com/influxdb 。

InfluxDB下载安装教程 InfluxDB在windows和linux下的离线和在线的安装及配置教程,以及一些简单的使用介绍 阅读详情

相关推荐

linux安装influxdb

influxdb安装

mijichui2153的博客 1万+

influxdb-cluster集群部署

influxdb-cluster集群部署

anguoan的博客 3843

influxDB v0.11 集群配置

1.首先下载安装0.11版本之前的influxdb

seijia的博客 5031

InfluxDB集群

InfluxDB Cluster 是一个开源的时间序列数据库,没有外部依赖。它对于记录指标、事件和执行分析很有用。InfluxDB Cluster 启发于和,旨在替代 InfluxDB Enterprise。InfluxDB Cluster 易于维护,可以与上游保持实时更新。

学而时习之,不亦说乎?温故而知新,可以为师矣! 2585

千云物流 -influxdb了解和应用

InfluxDB Cluster 是一个开源的 时间序列数据库,没有外部依赖。它对于记录指标、事件和执行分析很有用。InfluxDB Cluster 启发于 InfluxDB Enterprise、InfluxDB v1.8.10 和 InfluxDB v0.11.1,旨在替代 InfluxDB Enterprise。InfluxDB Cluster 易于维护,可以与上游 InfluxDB 1.x 保持实时更新。

Hello Word 1276

InfluxDB Cluster - InfluxDB Enterprise 的开源替代方案

InfluxDB Cluster - 一个开源分布式时间序列数据库,InfluxDB Enterprise 集群的开源替代方案。完全依照 InfluxDB Enterprise 实现,基于 InfluxDB v1.8.10 开发,支持集群(数据分片)、高可用(容错)、数据一致性(Raft,Hinted Handoff)、配套工具(扩缩容、数据同步等)等特性,Telegraf、Chronograf、Kapacitor 也完全支持,生产环境已就绪

Neohet的博客 1486

OpenStack influxdb数据库集群与高可用服务体验

influxdb是一个什么样的数据库呢?在官网上https://influxdata.com/ 是这样介绍的,“An open source time-series database designed for high-performance writes and compact disk storage. Supports open source high-availability archit...

karamos的专栏 2382

Dataworks实现接口调用

在本地linux虚拟机(不用在意linux版本),安装Anaconda后配置对应的虚拟环境,将虚拟环境的python包整体打包(路径一般为:~/anaconda/envs/env_name/lib/pyyhon3.7/site-packages):上传资源,将第三方包上传至dataworks(注意:所有上传文件均要打包上传,直接上传文件会乱码导致无法使用):PyODPS,其中PyODSP2的python版本为2.7,PyODSP3的python版本为3.7。:在PyODPS中引用资源,然后开发接口。

hutc_Alan的博客 1680

Prometheus+influxdb1.8实现高可用监控系统

Prometheus+influxdb1.8实现高可用监控体系

热气球 2319

Tomcat启动过程中cmd窗口(控制台)中文乱码的问题

tomcat启动时,启动过程日志中文乱码的处理方法。

寻码启示 1942

POWER(十一)charge pump原理

电荷泵是一种基于电容充放电原理的DC-DC转换电路,通过开关控制实现电压转换,包括升压、降压和负压输出。其核心是利用电荷守恒原理,通过电容存储和转移电荷来改变输出电压。典型拓扑结构包括倍压电路和多阶升压电路,具有结构简单、体积小等优势。关键参数包括转换效率、输出电流能力和开关频率,适用于芯片供电、显示屏驱动等低功耗场景。LVDS部分补充说明了自举电路在驱动电路中的应用及其自同步特性。

zhlwsh的博客 2795

InfluxDB Cluster:开源分布式时序数据库的佼佼者

在数据爆炸的时代,时序数据库成为了处理海量时间序列数据的关键工具。今天,我们要向大家推荐的是一款强大的开源分布式时序数据库——InfluxDB Cluster。它不仅继承了InfluxDB的优秀特性,还提供了企业级的集群支持,是InfluxDB Enterprise的理想替代品。 ## 项目介绍 InfluxDB Cluster是一个开源的分布式时序数据库,没有任何外部依赖。它专为记录指标、事...

gitblog_00848的博客 966

PCB设计必看:铜皮厚度与载流能力对照表(附Excel计算工具)

本文深入解析了PCB设计中铜皮厚度与载流能力的核心关系,提供了基于IPC-2152标准的动态计算逻辑与实用Excel工具。文章不仅分享了载流对照表,更重点剖析了影响载流能力的关键因素(如铜厚、线宽、温升、布线层),并给出了高电流设计的实战技巧与测试验证方法,帮助工程师规避常见陷阱,实现从理论到实践的闭环设计。

weixin_29228781的博客 719

【运维监控】influxdb 2.0 + grafana 11 监控jmeter 5.6.3 性能指标(2)

通过jmeter的插件暴露jmeter的监控指标,通过插件将监控指标数据写入influxdb中,然后利用grafana的dashboard模板来监控jmeter的性能指标

alanchanchn的专栏 3万+

从零搭建UVM验证环境:新手入门实践指南

在数字芯片验证领域,SystemVerilog和UVM(Universal Verification Methodology)是构建高效验证环境的核心技术。其原理基于面向对象编程和事务级建模,通过组件化架构实现验证的复用性和自动化。这一方法学的技术价值在于显著提升验证效率与质量,广泛应用于处理器、通信芯片等复杂设计的验证场景。本文聚焦于UVM验证环境的搭建实践,通过一个加法器实例,详细解析了uvm_driver、uvm_monitor、uvm_sequence等关键组件的协同工作机制,并提供了基于Quest

weixin_30015371的博客 445

高通MBIM拨号流程简述

高通平台MBIM流程简述

不秃头的程序猿Gabriel的博客 5070

(一)认识InfluxDB

通常,关系型数据库会采用B+树数据结构,在数据写入时,有可能会触发叶裂变,从而产生了对磁盘的随机读写,降低写入速度。差别主要是在,权限管理方式不同, 2 .x TICK的集成性比 1 .x好, 1 .x中的database到了 2 .x中变成了bucket等。这样一看,只给一个数据库其实只能完成数据的存储和查询功能,上游的采集和下游的报警都需要自己来实现。到了 2 .x,TICK进一步融合,ICK的功能全部融入了InfluxDB,仅需安装InfluxDB就能得到一个管理页面,而且附带了定时任务和报警功能。

卷心菜投手 1600

OpenClaw 多机器人多 Agent 模式:打造你的 AI 助手团队

OpenClaw多Agent模式为企业提供高效的AI助手团队解决方案。通过创建4个独立的飞书机器人(主助理、内容创作、技术开发、AI资讯),每个连接专属Gateway和Agent模型(如Claude Opus/Sonnet、Gemini 2.5),实现专业分工。相比单Agent模式,多Gateway架构具有配置清晰、互不干扰、无需手动切换等优势。系统采用Profile隔离机制,各Agent拥有独立配置和端口。部署过程包括创建机器人应用、配置Agent、运行自动化脚本等步骤,支持私聊或群组@使用。日常提供状态

Maynor的博客 5096

2022-03-08 influxdb高可用raft-三个raft节点内部自动转发客户端无感知-功能校验

目录 摘要: 环境准备: 三节点的influxdb高可用部署 raft集群信息: leader: 功能校验: 在任意一个节点上创建数据库: 在其他节点查看: 在任意节点创建用户: 在其他节点查看用户: 在任意节点写入数据: 在任意节点查询数据: 摘要: 组建influxdb三节点的主从关系高可用部署架构, 为了增强读写性能, 简化客户端保持leader的繁琐操作, 在内部由张世龙亲自实现自动转发逻辑. 本文校验是否可实现客户端无感知功能 环境准备: 三节

悟世之路 1017

LIS2DH三轴加速度传感器原理图设计,已量产(加速度传感器)

最近在做一款可穿戴设备原型时,选了 LIS2DH 这款加速度计 —— 比起之前常用的 ADXL345,它在低功耗和稳定性上的优化刚好戳中了可穿戴设备 “续航 + 可靠” 的核心需求。下面结合这次画的原理图,聊聊这个小模块的硬件设计细节。

不脱发的程序猿 387

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

emqx开源版本-集群架构设计

emqx开源版本集群架构设计

weixin_44645022的博客 1950

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

InfluxDB的安装与配置

InfluxDB的安装 写在前面 InfluxDB是一个时间序列数据库,旨在处理较高的写入和查询负载。它是TICK堆栈的组成部分 。InfluxDB旨在用作涉及大量时间戳数据的任何用例的后备存储,包括DevOps监控,应用程序指标,IoT传感器数据和实时分析。 主要特点 GO语言编写,无其他依赖项 专为时间序列数据编写的定制高性能数据存储。TSM引擎可实现高摄取速度和数据压缩 无结构,列式存储,可动态扩展列 支持一系列的聚合函数 支持HTTP API访问 具有类SQL语法 安装包下载 InfluxDB下

jingcc的博客 9881

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

阿里云的自研InfluxDB集群方案剖析

2年前写的一篇旧文,文中的分析,以及探讨的问题和观点,至今仍有意义。 本文将以阿里云在GIAC的分享《云原生InfluxDB高可用架构设计》为例,剖析阿里云的自研InfluxDB集群方案的当前实现,在分析中会尽量聚焦的相对确定的技术、架构等,考虑到非一线信息,在个别细节上难免存在理解偏差,欢迎私聊讨论: 微信公众号:influxdb-dev FreeTSDB技术交流群(QQ):663274123 0x0 初步结论 目前是一个过渡性质的公测方案,具备数据一致性,但接入性能有限,缺乏水平扩..

gohacking 3066

时序数据库InfluxDB

物联网平台需要对开门记录、电量和信号等IOT监控的时序数据进行存储,目前就关系型数据库mysql无法提供足够的性能,因此引入时序数据库InfluxDB。

Marty James的博客 1010
上一篇: 关于weget “无法建立SSL连接”的解决方法
下一篇: influxDB v0.11 集群配置
王树民
博客等级 码龄10年 912粉丝 560原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值