Influxdb Cluster集群部署

这篇具有很好参考价值的文章主要介绍了Influxdb Cluster集群部署。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

准备工作

确定安装版本

1、此次安装选择的是influxdb-cluster集群部署方案,参考项目开源地址为:https://github.com/chengshiwen/influxdb-cluster/wiki,选择的版本为v1.8.10-c1.2.0。

下载地址

https://github.com/chengshiwen/influxdb-cluster/releases

下载命令

# 注意机器版本
wget https://github.com/chengshiwen/influxdb-cluster/releases/download/v1.8.10-c1.1.2/influxdb-cluster_1.8.10-c1.1.2_linux_amd64.tar.gz

验证端口是否占用

1、influxdb使用的默认端口号为分别为用于meta集群内部服务的8091端口,meta节点通信的8089端口,data集群内部服务的8088端口,以及data节点对外提供http服务的8086端口。
2、通过 lsof -i :端口号 命令检查端口占用情况,如果存在占用需要进行修改
3、如果存在修改端口后发现在添加meta节点进入集群时出现报错并提示出修改前的端口,需要手动删除指定存放meta数据的目录再进行添加。

注意以上端口都为默认端口,可以在配置文件中进行修改

Meta节点说明和要求

1、确定部署机器数量,Meta节点至少需要三个,如果超过三个也必须为奇数个节点(官方不建议超过三个)。如果只有一个Meta节点那需要在启动该单个Meta节点时添加-single-server标志。
2、建议不要在同一服务器上部署多个Meta节点,因为如果该特定服务器无响应,它会产生更大的潜在故障。InfluxDB Cluster建议在占用空间相对较小的服务器上部署Meta节点。
3、Meta节点可以与Data节点部署在同一台物理机上,不过最好的情况是都分开部署

Data节点说明和要求

1、InfluxDB Cluster需要至少两个Data节点才能实现高可用性和冗余。
2、InfluxDB Cluster没有负载均衡功能,所以需要借助Nginx或其他有相同功能的应用进行负载均衡,在负载均衡应配置data节点对外提供http服务的8086端口。

主机配置

修改主机名
1、确定集群机器后,在每一台主机的/etc/hosts文件添加主机ip与主机名的映射(当然如果您希望使用IP地址,可忽略该步骤),示例如下:
	172.168.1.176 influxdb-cluster-1
	172.168.1.167 influxdb-cluster-15
	172.168.1.182 influxdb-cluster-18
	172.168.1.171 influxdb-cluster-5
验证主机间连通性
1、使用ping命令进行验证,示例如下:
	ping -qc 1 influxdb-cluster-1
	ping -qc 1 influxdb-cluster-15
	ping -qc 1 influxdb-cluster-18
	ping -qc 1 influxdb-cluster-5
目录创建
# 创建influxdb所需目录
mkdir -p influx/{meta,data,wal,hh}

配置Meta节点集群

确定配置机器

influxdb-cluster-1
influxdb-cluster-15
influxdb-cluster-5

配置步骤

注:确定部署Meta节点的每台机器都需做如下配置
1、编辑meta节点配置文件 vim influxdb-cluster-1.8.10-c1.1.2-1/etc/influxdb/influxdb-meta.conf
2、主要修改的项为以下几处:
    bind-address = ":8091"
    hostname = "influxdb-cluster-1"
        [meta]
        # Directory where cluster meta data is stored.
        dir = "/data/ops/home-influxdb/influx/meta"

        # The default address for meta node communication
        bind-address = ":8089"

        # The default address to bind the API to.
        http-bind-address = ":8091"
            
3、修改完成后启动Meta节点, 启动命令如下:
	nohup ./influxdb-cluster-1.8.10-c1.1.2-1/usr/bin/influxd-meta -config influxdb-cluster-1.8.10-c1.1.2-1/etc/influxdb/influxdb-meta.conf > nohup.out 2>&1 &
	
4、验证各机器上data节点是否正常启动,命令如下:
	ps -ef | grep meta
	
5、启动完成后,在任意一个Meta节点上,加入所有Meta节点,包括它自己。加入的命令如下(下列命令都在hebsjzx-1plusn-86-qt-1执行):
	./influxdb-cluster-1.8.10-c1.1.2-1/usr/bin/influxd-ctl add-meta influxdb-cluster-1:8091
	./influxdb-cluster-1.8.10-c1.1.2-1/usr/bin/influxd-ctl add-meta influxdb-cluster-15:8091
	./influxdb-cluster-1.8.10-c1.1.2-1/usr/bin/influxd-ctl add-meta influxdb-cluster-5:8091
	
	预期的输出为:Added meta node 1 at influxdb-cluster-1:8091
6、验证节点是否正确加入,在任意一台Meta节点机器上使用如下命令:
	 ./influxdb-cluster-1.8.10-c1.1.2-1/usr/bin/influxd-ctl show
   预期的输出为:
   	Data Nodes
    ==========
    ID      TCP Address     Version

    Meta Nodes
    ==========
    ID      TCP Address                     Version
    1       influxdb-cluster-1:8091    1.8.10-c1.1.2
    2       influxdb-cluster-15:8091   1.8.10-c1.1.2
    3       influxdb-cluster-5:8091    1.8.10-c1.1.2
7、至此Meta集群搭建完成

配置Data节点集群

确定配置机器

influxdb-cluster-1
influxdb-cluster-15
influxdb-cluster-18
influxdb-cluster-5

配置步骤

注:确定部署Data节点的每台机器都需做如下配置
1、编辑Data节点配置文件 vim influxdb-cluster-1.8.10-c1.1.2-1/etc/influxdb/influxdb.conf
2、主要修改的项为以下几处:
 	# The TCP bind address to use for cluster-internal services.
	bind-address = ":8088"

	# Hostname advertised by this host for remote addresses. This must be resolvable by all
	# other nodes in the cluster.
	hostname = "influxdb-cluster-1"
	[meta]
    	# Directory where the cluster metadata is stored.
    	dir = "/data/ops/home-influxdb/influx/meta"
    	
    [data]
  		# The directory where the TSM storage engine stores TSM files.
 		dir = "/data/ops/home-influxdb/influx/data"

  		# The directory where the TSM storage engine stores WAL files.
 		wal-dir = "/data/ops/home-influxdb/influx/wal"
 	[http]
 		# The bind address used by the HTTP service.
 	 	bind-address = ":8086"
  		
  	[hinted-handoff]
        # The directory where the hinted handoff queues are stored.
        dir = "/data/ops/home-influxdb/influx/hh"
3、修改完成后启动Data节点, 启动命令如下:
    	nohup ./influxdb-cluster-1.8.10-c1.1.2-1/usr/bin/influxd -config influxdb-cluster-1.8.10-c1.1.2-1/etc/influxdb/influxdb.conf > datanode.out 2>&1 &

4、验证各机器上data节点是否正常启动,命令如下:
	ps -ef | grep influxd
5、Data 节点在未被加入集群之前,出现 Failed to create storage,failed to store statistics 或 meta service unavailable 日志是正常情况。

6、将Data节点加入集群,在任意一台Data节点,命令如下:
	 ./influxdb-cluster-1.8.10-c1.1.2-1/usr/bin/influxd-ctl add-data influxdb-cluster-1:8088
	 ./influxdb-cluster-1.8.10-c1.1.2-1/usr/bin/influxd-ctl add-data influxdb-cluster-15:8088
	 ./influxdb-cluster-1.8.10-c1.1.2-1/usr/bin/influxd-ctl add-data influxdb-cluster-18:8088
	 ./influxdb-cluster-1.8.10-c1.1.2-1/usr/bin/influxd-ctl add-data influxdb-cluster-5:8088
	预期的输出为:Added data node 7 at influxdb-cluster-1:8088

7、验证节点是否正确加入,在任意一台Meta节点机器上使用如下命令:
	 ./influxdb-cluster-1.8.10-c1.1.2-1/usr/bin/influxd-ctl show
  	预期的输出为:
    Data Nodes
    ==========
    ID      TCP Address                     Version
    4       influxdb-cluster-1:8088    1.8.10-c1.1.2
    5       influxdb-cluster-15:8088   1.8.10-c1.1.2
    6       influxdb-cluster-18:8088   1.8.10-c1.1.2
    7       influxdb-cluster-5:8088    1.8.10-c1.1.2

    Meta Nodes
    ==========
    ID      TCP Address                     Version
    1       influxdb-cluster-1:8091    1.8.10-c1.1.2
    2       influxdb-cluster-15:8091   1.8.10-c1.1.2
    3       influxdb-cluster-5:8091    1.8.10-c1.1.2
    
8、至此Data集群搭建完成

配置Data节点JWT访问

注意:创建用户后再增加该配置
1、在未设置Jwt访问前启动Data节点并使用./influxdb-cluster-1.8.10-c1.1.2-1/usr/bin/influx 进入并创建用户,创建用户并赋权的语句如下:
	# 创建用户并赋予全部权限
	create user admin  with password 'admin' with all privileges:
	# 创建用户只服务写权限,ALL为全部权限,WRITE为写,READ为读权限,多权限以逗号分割
	create user pxq  with password 'pxq'
	GRANT WRITE ON test TO pxq
2、编辑Data节点配置文件 vim influxdb-cluster-1.8.10-c1.1.2-1/etc/influxdb/influxdb.conf
3、主要修改的项为以下几处:
	[http]
  		# Determines whether user authentication is enabled over HTTP/HTTPS.
  		# 开启
  		auth-enabled = true
		# The JWT auth shared secret to validate requests using JSON web tokens.
		# token加密字符串
  		shared-secret = "XXXX"
  		
4、生成token,网站:https://jwt.io/,生成规则如下:
	HEADER:{
  		"alg": "HS256",
  		"typ": "JWT"
	}
	PAYLOAD:{
  		"username": "pxq", # 用户名
  		"exp": 1679642512 # 过期时间
	}
	# 主要为最后那串字符使用influxdb.conf中shared-secret配置的字符串
	VERIFY SIGNATURE:
	HMACSHA256(base64UrlEncode(header) + "." + base64UrlEncode(payload),I don't even know what it is)
	
5、验证是否成功
		curl -XPOST "http://172.168.1.176:8086/query?db=test" --data-urlencode "q=Select * from Test" --header "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.xxxx.5rcJ_-YeJsZ3XjRtxwe7kzH_4e__2btz0pEw_GQ8OJs"
		权限不足将提示:{"error":"error authorizing query: pxq not authorized to execute statement 'SELECT * FROM Test', requires READ on test"}
		正常将提示展示结果
		

配置负载均衡

由于InfluxDB Cluster 不能用作负载均衡器,故需要配置文章来源地址https://www.toymoban.com/news/detail-714569.html

1、nginx配置于/data/ops/nginx/目录
2、具体配置如下:
	upstream influxdb {

        server influxdb-cluster-1:8086;
        server influxdb-cluster-15:8086;
        server influxdb-cluster-18:8086;
        server influxdb-cluster-5:8086;
    }
    server {

        listen       8888;

        server_name  localhost;

        location /influx/ {
          proxy_set_header Host $proxy_host;
          proxy_pass   http://influxdb/;

        }

    }
3、对外统一访问地址:http://192.168.1.2:8888/influx
	例如访问查询test库Test表全部数据:curl -XPOST "http://192.168.1.2:8888/influx/query?db=test" --data-urlencode "q=Select * from Test" --header "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImFkbWluIiwiZXhwIjoxNjc5NjQyNTEyfQ.7mIPMjB60kFGFQuTSyf7KvYF921MkMmL662_icTfvRQ"

到了这里,关于Influxdb Cluster集群部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • (一)性能实时监控平台搭建(Grafana+Influxdb+Jmeter)

    主要介绍使用Docker安装Grafana+Influxdb结合Jmeter搭建可视化监控平台 使用Docker搭建influxdb数据库服务 创建influxdb容器 命令:docker run -d --name influxdb-dsp --restart=always -p 8086:8086 -e \\\"TZ=Asia/Shanghai\\\" influxdb:1.8 进入容器创建一个atp数据库,用于存储我们的压测数据 命令:docker exec -it my-i

    2023年04月08日
    浏览(34)
  • 性能技术分享|Jmeter+InfluxDB+Grafana搭建性能平台(四)

    四、Jmeter配置InfluxDB 4.1 后端监听器(BackendListener)介绍 1、什么是后端监听器(BackendListener)? 源码给出的解释是:BackendListener是一种异步监听并获取到测试结果的实现类。 也就是说发出的如http等响应请求的结果,都会被封装在SampleResult对象中并被其监听接收。 源码如下: /**

    2024年02月02日
    浏览(42)
  • 教你搭建一个Telegraf+Influxdb+Grafana 监控系统

    摘要: 本文利用华为HECS云服务器进行监控系统部署。 本文分享自华为云社区《使用华为HECS云服务器打造Telegraf+Influxdb+Grafana 监控系统【华为云至简致远】》,作者: kaliarch 。 在所有现有的现代监控工具中,TIG(Telegraf、InfluxDB和Grafana)可能是最受欢迎的工具之一。 该堆栈可

    2023年04月27日
    浏览(46)
  • docker容器监控:Cadvisor+InfluxDB+Grafana的安装部署

    目录 Cadvisor+InfluxDB+Grafan安装部署 1、安装docker-ce 2、阿里云镜像加速器 3、下载组件镜像 4、创建自定义网络 5、创建influxdb容器 6、创建Cadvisor 容器 7、查看Cadvisor 容器: (1)准备测试镜像 (2)通过http://192.168.100.132:8080端口访问测试 8、创建granafa容器 [root@huyang2 ~]# iptables -F

    2024年02月14日
    浏览(44)
  • Linux环境中InfluxDB安装与配置

    Jmeter进行性能测试一般推荐命令行运行,但是最终要生成测试结果报告,虽然没有UI界面那么大的消耗,依然会有资源的消耗,并且当测试时间很长的时候,我们并不能实时监控,所以现在大多选择使用独立服务器搭建监控大屏。这里使用InfluxDB + Grafana监控大屏,InfluxDB是一个

    2024年02月07日
    浏览(25)
  • 【Docker】性能测试监控平台搭建:InfluxDB+Grafana+Jmeter+cAdvisor

    在做性能测试时,如果有一个性能测试结果实时展示的页面,可以极大的提高我们对系统性能表现的掌握程度,进而提高我们的测试效率。 但是我们每次打开Jmeter都会有几个硕大的字提示别用GUI模式进行负载测试,而且它自带的监视器效果实在一般:在Windows下渲染效果不好

    2024年02月14日
    浏览(44)
  • 【测试开发实战】Docker+Jmeter+InfluxDB+Grafana 搭建性能监控平台

    1. 为什么要搭建性能监控平台? 1.1 需求背景 在用 Jmeter 获取性能测试结果的时候, Jmeter 本身带有聚合报告如下图所示: 这个报告有几个很明显的缺点: 只能自己看,无法实时共享; 报告信息的展示比较简陋单一,不直观; 1.2 需求方案 为了解决上述问题,必须要请出了

    2023年04月17日
    浏览(43)
  • 【Influxdb数据迁移,从windos移到linux】

    前提——保证两边的版本不要相差太多 1、windows的导出G:influxdb2为暂存的目录 导出之后会有一堆文件 全部上传到/var/lib/influxdb这个目录下。这个应该是默认的linux的存储地址 然后就可以导出 注意 1、influxdb需要是启动状态: 会在屏幕上打印日志,方便看输出内容 后台启动

    2024年02月12日
    浏览(47)
  • sitespeedio.io 前端页面监控安装部署接入influxdb 到grafana

    作用: sitespeedio.io 用于监控web页面的可用性,并且是0代码植入。可以监控我们的完全页面加载时间,分析那些接口慢等等 1.docker部署influxdb,部署1.8一下,不然语法有变化后面用不了grafana模板 重启influxdb sitespeed试着往influxdb写入数据 会在sitespeed-result下面生成html文件,可以直

    2024年02月06日
    浏览(35)
  • Docker-Compose 轻松搭建 Grafana+InfluxDb 实用 Jmeter 监控面板

    目录 前言: 1、背景 2、Granfana+InfluxDB 配置 2.1 服务搭建 2.2 配置 Grafana 数据源 2.3 配置 Grafana 面板 3、Jmeter 配置 3.1 配置 InfluxDB 监听器 3.2 实际效果 Grafana 和 InfluxDB 是两个非常流行的监控工具,它们可以帮助开发者对系统的性能和可用性进行实时监控。 前几天刚做了一个在

    2024年02月16日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包