zoukankan      html  css  js  c++  java
  • InfluxDB:集群版使用指南(Influx-proxy)

    Influx-proxy的使用指南

    来源:https://www.cnblogs.com/enobear/p/13595712.html

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

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

    1.安装

    安装依赖

    Influx-proxy编译时需要go语言环境。
    

    服务器

    系统:centos 7.x
    网络:支持访问公网
    服务器:两台
    

    架构

            ┌──────────────────┐
            writes & queries └──────────────────┘
                     ┌──────────────────┐
            InfluxDB Proxy  (only http)    └──────────────────┘
                     ┌──────────────────┐
            db,measurement  consistent hash  └──────────────────┘
              |              |
            ┌─┼──────────────┘
            │ └────────────────┐
            ▼                  ▼
         Circle 1          Circle 2
      ┌────────────┐    ┌────────────┐
      InfluxDB 1 InfluxDB 3 InfluxDB 2 InfluxDB 4 └────────────┘    └────────────┘
    

    配置示例

    # 配置文件
    /opt/influx-proxy/proxy.json
    
    {
        "circles": [
            {
                "name": "circle-1",
                "backends": [
                    {
                        "name": "influxdb-1-1",
                        "url": "http://192.168.1.11:8086",
                        "username": "root",
                        "password": "123456",
                        "auth_secure": false
                    },
                    {
                        "name": "influxdb-1-2",
                        "url": "http://192.168.1.11:8087",
                        "username": "root",
                        "password": "123456",
                        "auth_secure": false
                    }
                ]
            },
            {
                "name": "circle-2",
                "backends": [
                    {
                        "name": "influxdb-2-1",
                        "url": "http://192.168.1.12:8086",
                        "username": "root",
                        "password": "123456",
                        "auth_secure": false
                    },
                    {
                        "name": "influxdb-2-2",
                        "url": "http://192.168.1.12:8087",
                        "username": "root",
                        "password": "123456",
                        "auth_secure": false
                    }
                ]
            }
        ],
        "listen_addr": ":7076",
        "db_list": [],
        "data_dir": "/mnt/data/influx-pr/data",
        "tlog_dir": "/mnt/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": "root",
        "password": "123456",
        "auth_secure": false,
        "write_tracing": false,
        "query_tracing": false,
        "https_enabled": false,
        "https_cert": "",
        "https_key": ""
    }
    
    # 配置文件
    /etc/influxdb/influxdb.conf.1
    
    reporting-disabled = true         # 禁用报告,默认为 false
    bind-address = ":8088"
    [meta]
    dir = "/mnt/data/influxdb/meta"    # 元信息目录
    [data]
    dir = "/mnt/data/influxdb/data"    # 数据目录
    wal-dir = "/mnt/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
    
    # 配置文件
    /etc/influxdb/influxdb.conf.2
    
    reporting-disabled = true         # 禁用报告,默认为 false
    bind-address = ":8089"
    [meta]
    dir = "/mnt/data/influxdb/meta"    # 元信息目录
    [data]
    dir = "/mnt/data/influxdb/data"    # 数据目录
    wal-dir = "/mnt/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
    
    # 系统服务文件
    /etc/systemd/system/influxd-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
    
    # 系统服务文件
    /etc/systemd/system/influx-proxy.service
    
    [Unit]
    Description=influx-proxy
    After=network.target
    
    [Service]
    Type=simple
    ExecStart=/usr/local/bin/influx-proxy -config /opt/influx-proxy/proxy.json
    KillSignal=SIGTERM
    
    [Install]
    WantedBy=multi-user.target
    

    Influx-proxy 版本安装

    服务器1:Circle 1 、influx-proxy
    服务器2:Circle 2 
    
    # 下载influx-proxy(服务器1)
    cd /opt
    git clone https://github.com/chengshiwen/influx-proxy.git
    
    # 安装go环境(服务器1)
    tar -zxvf go1.15.linux-amd64.tar.gz -C /usr/local
    echo "export PATH=$PATH:/usr/local/go/bin" >> /etc/profile
    echo "export GOPROXY=https://goproxy.io" >> /etc/profile
    source /etc/profile
    
    # 编译influx-proxy(服务器1)
    cd influx-proxy
    make
    
    cp /opt/influx-proxy/bin/influx-proxy /usr/local/bin/
    
    # 配置influx-proxy(服务器1)
    vim /opt/influx-proxy/proxy.json
    vim /etc/systemd/system/influx-proxy.service
    
    # 安装influxdb(多实例)(服务器1)(服务器2)
    wget https://dl.influxdata.com/influxdb/releases/influxdb-1.8.2.x86_64.rpm
    yum -y localinstall influxdb-1.8.2.x86_64.rpm
    vim /etc/influxdb/influxdb.conf.1
    vim /etc/influxdb/influxdb.conf.2
    vim /etc/systemd/system/influxd-cluster@.service
    
    # 设置权限(服务器1)(服务器2)
    mkdir -p /mnt/data/influxdb
    chown influxdb:influxdb /mnt/data/influxdb
    
    mkdir -p /mnt/data/influx-pr
    chown influxdb:influxdb /mnt/data/influx-pr
    
    # 启动influxDB、influx-proxy(服务器1)(服务器2)
    systemctl start influxd-cluster@1
    systemctl start influxd-cluster@2
    systemctl start influx-proxy
    
    # 设置用户、密码(两台服务器4个实例都需要设置)(服务器1)(服务器2)
    influx -port 8086
    create user 'username' with password 'password' with all privileges
    exit
    
    influx -port 8087
    create user 'username' with password 'password' with all privileges
    exit
    

    2.使用

    基本命令

    # 启动集群(三种都可以)
    ① 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 &
    
    # 查看版本
    influx-proxy -version
    

    在这里插入图片描述

    # 查看集群状态
    curl http://127.0.0.1:7076/health -u root:123456 
    

    在这里插入图片描述

     
  • 相关阅读:
    “XXXXX” is damaged and can’t be opened. You should move it to the Trash 解决方案
    深入浅出 eBPF 安全项目 Tracee
    Unity3d开发的知名大型游戏案例
    Unity 3D 拥有强大的编辑界面
    Unity 3D物理引擎详解
    Unity 3D图形用户界面及常用控件
    Unity 3D的视图与相应的基础操作方法
    Unity Technologies 公司开发的三维游戏制作引擎——Unity 3D
    重学计算机
    windows cmd用户操作,添加,设备管理员组,允许修改密码
  • 原文地址:https://www.cnblogs.com/zouhao/p/14428695.html
Copyright © 2011-2022 走看看