influxdb-cluster安装部署「终于解决」

influxdb-cluster安装部署「终于解决」参考资料 Influx Proxy 是一个基于高可用、一致性哈希的 InfluxDB 集群代理服务,实现了 InfluxDB 高可用集群的部署方案,具有动态扩/缩容、故障恢复、数据同步等能力。 相关…

	influxdb-cluster安装部署[数据库教程]

参考资料

Influx Proxy 是一个基于高可用、一致性哈希的 InfluxDB 集群代理服务,实现了 InfluxDB 高可用集群的部署方案,具有动态扩/缩容、故障恢复、数据同步等能力。

相关文档:https://github.com/chengshiwen/influx-proxy
下载地址:https://golang.org/dl/

架构

image

所需资源:

  • 3台服务器
  • 系统:centos 7.x

软件版本:

  • influxdb-proxy 2.5.5
  • go 1.15.7
  • influxdb 1.8.2

部署

influxdb-node12运行

#下载influxdb软件
wget -c https://dl.influxdata.com/influxdb/releases/influxdb-1.8.2.x86_64.rpm
#安装influxdb
yum install -y influxdb-1.8.2.x86_64.rpm
#创建influxdb所使用的的目录
mkdir -p /data/influxdb/{meta,data,wal}
#配置系统启动命令
# cat influxdb-cluster@.service
[Unit]
Description=influx-cluster
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/influxd -config /etc/influxdb/influxdb.conf.%i
Restart=on-failure

[Install]
WantedBy=multi-user.target
#将文件influxdb-cluster@.service复制到/etc/systemd/system/
cp influxdb-cluster@.service /etc/systemd/system/

编辑配置文件

  • influxdb-node1操作
# cat influxdb.conf.1
reporting-disabled = true         # 禁用报告,默认为 false
bind-address = ":8088"
[meta]
dir = "/data/influxdb/meta"    # 元信息目录
[data]
dir = "/data/influxdb/data"    # 数据目录
wal-dir = "/data/influxdb/wal" # 预写目录
wal-fsync-delay = "10ms"          # SSD 设置为 0s,非 SSD 推荐设置为 0ms-100ms
index-version = "tsi1"            # tsi1 磁盘索引,inmem 内存索引需要大量内存
query-log-enabled = true          # 查询的日志,默认是 true
[coordinator]
write-timeout = "20s"             # 写入请求超时时间,默认为 10s
[http]
enabled = true
bind-address = ":8086"
auth-enabled = true
log-enabled = true                 # http 请求日志,默认是 true
[logging]
level = "info"                    # 日志等级,error、warn、info(默认)、debug

# cat influxdb.conf.2
reporting-disabled = true         # 禁用报告,默认为 false
bind-address = ":8089"
[meta]
dir = "/data/influxdb/meta"    # 元信息目录
[data]
dir = "/data/influxdb/data"    # 数据目录
wal-dir = "/data/influxdb/wal" # 预写目录
wal-fsync-delay = "10ms"          # SSD 设置为 0s,非 SSD 推荐设置为 0ms-100ms
index-version = "tsi1"            # tsi1 磁盘索引,inmem 内存索引需要大量内存
query-log-enabled = true          # 查询的日志,默认是 true
[coordinator]
write-timeout = "20s"             # 写入请求超时时间,默认为 10s
[http]
enabled = true
bind-address = ":8087"
auth-enabled = true
log-enabled = true                 # http 请求日志,默认是 true
[logging]
level = "info"                    # 日志等级,error、warn、info(默认)、debug
  • influxdb-node2节点操作
# cat influxdb.conf.3
reporting-disabled = true         # 禁用报告,默认为 false
bind-address = ":8088"
[meta]
dir = "/data/influxdb/meta"    # 元信息目录
[data]
dir = "/data/influxdb/data"    # 数据目录
wal-dir = "/data/influxdb/wal" # 预写目录
wal-fsync-delay = "10ms"          # SSD 设置为 0s,非 SSD 推荐设置为 0ms-100ms
index-version = "tsi1"            # tsi1 磁盘索引,inmem 内存索引需要大量内存
query-log-enabled = true          # 查询的日志,默认是 true
[coordinator]
write-timeout = "20s"             # 写入请求超时时间,默认为 10s
[http]
enabled = true
bind-address = ":8086"
auth-enabled = true
log-enabled = true                 # http 请求日志,默认是 true
[logging]
level = "info"                    # 日志等级,error、warn、info(默认)、debug
# cat influxdb.conf.4
reporting-disabled = true         # 禁用报告,默认为 false
bind-address = ":8089"
[meta]
dir = "/data/influxdb/meta"    # 元信息目录
[data]
dir = "/data/influxdb/data"    # 数据目录
wal-dir = "/data/influxdb/wal" # 预写目录
wal-fsync-delay = "10ms"          # SSD 设置为 0s,非 SSD 推荐设置为 0ms-100ms
index-version = "tsi1"            # tsi1 磁盘索引,inmem 内存索引需要大量内存
query-log-enabled = true          # 查询的日志,默认是 true
[coordinator]
write-timeout = "20s"             # 写入请求超时时间,默认为 10s
[http]
enabled = true
bind-address = ":8087"
auth-enabled = true
log-enabled = true                 # http 请求日志,默认是 true
[logging]
level = "info"                    # 日志等级,error、warn、info(默认)、debug

启动influxdb–node1节点操作

systemctl start influxdb-cluster@1 influxdb-cluster@2
systemctl status influxdb-cluster@1 influxdb-cluster@2
systemctl enable influxdb-cluster@1 influxdb-cluster@2

启动influxdb–node2节点操作

systemctl start influxdb-cluster@3 influxdb-cluster@4
systemctl status influxdb-cluster@3 influxdb-cluster@4
systemctl enable influxdb-cluster@3 influxdb-cluster@4

所有节点创建用户

influx -port 8086
CREATE USER admin with PASSWORD ‘****‘ WITH ALL PRIVILEGES
influx -port 8087
CREATE USER admin with PASSWORD ‘*****‘ WITH ALL PRIVILEGES

以下操作请在influxdb-master1节点上操作

配置go环境

wget -c https://dl.google.com/go/go1.15.7.linux-amd64.tar.gz
tar -C /usr/local -xf go1.15.7.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
go version
#vim /etc/profile

export PATH=$PATH:/usr/local/go/bin
export GOPROXY=https://goproxy.io

配置influxdb-proxy服务

  • 配置文件
# cat proxy.json
{
    "circles": [
        {
            "name": "circle-1",
            "backends": [
                {
                    "name": "influxdb-1-1",
                    "url": "http://172.*.*.*:8086",
                    "username": "admin",
                    "password": "123456",
                    "auth_secure": false
                },
                {
                    "name": "influxdb-1-2",
                    "url": "http://172.*.*.*:8087",
                    "username": "admin",
                    "password": "123456",
                    "auth_secure": false
                }
            ]
        },
        {
            "name": "circle-2",
            "backends": [
                {
                    "name": "influxdb-2-1",
                    "url": "http://172.*.*.*:8086",
                    "username": "admin",
                    "password": "****",
                    "auth_secure": false
                },
                {
                    "name": "influxdb-2-2",
                    "url": "http://172.*.*.*:8087",
                    "username": "admin",
                    "password": "****",
                    "auth_secure": false
                }
            ]
        }
    ],
    "listen_addr": ":7076",
    "db_list": [],
    "data_dir": "/data/influx-pr/data",
    "tlog_dir": "/data/influx-pr/log",
    "hash_key": "idx",
    "flush_size": 10000,
    "flush_time": 1,
    "check_interval": 1,
    "rewrite_interval": 10,
    "conn_pool_size": 20,
    "write_timeout": 10,
    "idle_timeout": 10,
    "username": "admin",
    "password": "*****",
    "auth_secure": false,
    "write_tracing": false,
    "query_tracing": false,
    "https_enabled": false,
    "https_cert": "",
    "https_key": ""
}
  • 下载influx-proxy
wget -c https://github.com/chengshiwen/influx-proxy/releases/download/v2.5.5/influx-proxy-2.5.5.tar.gz
#解压
tar xf influx-proxy-2.5.5.tar.gz
#cp
cp influx-proxy-2.5.5/influx-proxy /usr/local/bin/
  • 系统启动服务
# cat influx-proxy.service
[Unit]
Description=influx-proxy
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/influx-proxy -config /usr/local/influx-proxy/proxy.json
KillSignal=SIGTERM

[Install]
WantedBy=multi-user.target
cp influx-proxy.service /etc/systemd/system/

启动influx-proxy

# 启动集群(三种都可以)
① influx-proxy -config /opt/influx-proxy/proxy.json
② systemctl start influx-proxy
③ nohup influx-proxy -config /opt/influx-proxy/proxy.json > /dev/null 2>&1 &
#配置开机启动
systemctl enable influx-proxy

查看集群状态

curl http://127.0.0.1:7076/health -u admin:***** 
[{"circle":{"id":0,"name":"circle-1","active":true,"write_only":false},"backends":[{"name":"influxdb-1-1","url":"http://172.*.*.*:8086","active":true,"backlog":false,"rewrite":false},{"name":"influxdb-1-2","url":"http://172.*.*.*:8087","active":true,"backlog":false,"rewrite":false}]},{"circle":{"id":1,"name":"circle-2","active":true,"write_only":false},"backends":[{"name":"influxdb-2-1","url":"http://172.*.*.*:8086","active":true,"backlog":false,"rewrite":false},{"name":"influxdb-2-2","url":"http://172.*.*.*:8087","active":true,"backlog":false,"rewrite":false}]}]

influxdb-cluster安装部署

原文地址:https://www.cnblogs.com/huyuhao/p/14475621.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/6503.html

(0)
上一篇 2023-04-08
下一篇 2023-04-08

相关推荐

  • Python Button定义及其应用场景

    Python Button定义及其应用场景Button是一种图形用户界面组件,可以让用户在执行某些任务时点击它,从而触发操作。Python的Button组件通常用于创建按钮,以进行某些操作或触发事件,如打开文件或关闭窗口等。它通常用于Tkinter模块中,可以与其他组件一起使用。

    2024-02-21
    101
  • Flask中的url_for函数详解

    Flask中的url_for函数详解Flask是一个轻量级的Web框架,它提供了灵活的URL规则和模板引擎等功能。在Flask中,url_for函数是一个非常重要的函数,它可以帮助我们生成URL地址,这对于实现页面跳转、重定向等功能非常有帮助。在本文中,我们将详细介绍Flask中的url_for函数,包括使用方法、参数说明等内容。

    2024-07-22
    37
  • 怎么把表结构导入数据库_将表导入数据库

    怎么把表结构导入数据库_将表导入数据库表已经建立好了,但是必须更新到 PowerDesigner, 如果一个表手动建,那么得多累啊。 只是用的时候,需要注意,如果是通过 脚本 sql file 文件 去 上传的话,必须是表 设计 内容,…

    2023-02-04
    155
  • Python:如何刷新缓存内容?

    Python:如何刷新缓存内容?在Web开发中,我们常常会用到缓存,以提高网站的访问速度。但有时候,当我们修改了源代码或者数据库的内容之后,我们需要刷新缓存,以便让修改立即生效。本文主要介绍在Python Web开发中如何刷新缓存。

    2024-04-12
    94
  • TIDB 自增ID 后插入数据ID小[通俗易懂]

    TIDB 自增ID 后插入数据ID小[通俗易懂]业务同学遇见这样的一个问题 select * from t where id>100 order by id asc limit 200; 发现只查到了10个数据 最小的id是101,最大的id是1…

    2022-12-20
    163
  • MySQL 性能优化小结

    MySQL 性能优化小结基础概念简述 锁 数据库通过锁机制来解决并发场景 — 共享锁(读锁)和排他锁(写锁)。读锁是不阻塞的,多个客户端可以在同一时刻读取同一个资源;写锁是排他的,并且会阻塞其他的读锁和写锁。 简单提下乐观锁

    2023-02-17
    148
  • 使用Python进行MongoDB计数操作

    使用Python进行MongoDB计数操作MongoDB是一个非关系型数据库(NoSQL),它支持非常灵活的文档模型,很容易进行水平扩展。作为一种流行的数据库,它提供了非常便捷的Python API,可以使开发人员在Python中轻松访问和管理MongoDB数据。在本文中,我们将介绍如何使用Python通过MongoDB进行计数操作。

    2024-05-17
    82
  • “mysql”_MySQL入门

    “mysql”_MySQL入门MYSQL(基本篇)——一篇文章带你走进MYSQL的奇妙世界 MYSQL算是我们程序员必不可少的一份求职工具了 无论在什么岗位,我们都可以看到应聘要求上所书写的”精通MYSQL等数据库及优化“ 那么我

    2023-05-29
    140

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注