集群扩容

以下过程参考标准生产环境,使用的是安全模式。如未采用安全模式,可省略生成证书的步骤。

新节点准备

参考集群环境服务配置,做免密及用户配置

目录准备

在新节点上,使用root用户操作

    mkdir /var/lib/hubble 
    mkdir /var/lib/hubble/certs 
    mkdir /var/lib/hubble/mysafedirectory 
    chown hubble:hubble -R /var/lib/hubble
    mkdir -p /data/hubbledir    ## 数据存储目录,按集群存储规划创建
    chown -R hubble:hubble /data/hubbledir 

证书配置

在现役节点上,使用hubble用户操作

  • 传输现有服役节点的程序及节点证书和key传输到新节点对应得目录下:
scp /usr/local/bin/hubble <new node>:/usr/local/bin/
scp /var/lib/hubble/certs/ca.crt <new node>:/var/lib/hubble/certs/
scp /var/lib/hubble/mysafedirectory/ca.key <new node>:/var/lib/hubble/mysafedirectory/
  • 登录到新节点,生成该节点证书,证书目录分配与现有一致
cd /var/lib/hubble && hubble cert create-node <new node hostname> <new node ip> --certs-dir=certs --ca-key=mysafedirectory/ca.key --overwrite

添加hubble数据库配置文件

在新节点上,使用root用户操作

vi /etc/systemd/system/hubble.service
[Unit]
Description=Hubble Database cluster
Requires=network.target
[Service]
Type=notify
WorkingDirectory=/var/lib/hubble
ExecStart=/usr/local/bin/hubble start --locality=country=cn,region=ch-beijin,datacenter=tianyun,rack=1,node=<new node id> --certs-dir=certs --listen-addr=<new node>:15432 --advertise-host=<new node> --join=hubble01:15432,hubble02:15432,hubble03:15432,hubble04:15432,hubble05:15432,<new node>:15432 --cache=30GiB --max-sql-memory=10GiB --store=path=/data3/hubbledir/hubble,attrs=ssd,size=350GiB,rocksdb=write_buffer_size=134217728 --store=path=/data4/hubbledir/hubble,attrs=ssd,size=350GiB,rocksdb=write_buffer_size=134217728 --store=path=/data5/hubbledir/hubble,attrs=ssd,size=350GiB,rocksdb=write_buffer_size=134217728 --http-addr=0.0.0.0:48080 --log-config-file=certs/logs.yaml --max-disk-temp-storage=10GiB --external-io-dir=/data_shares
TimeoutStopSec=60
Restart=always
RestartSec=10
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=hubble
User=hubble
LimitNOFILE=1000000
[Install]
WantedBy=default.target

注意: 上述 hubble.service 文件中的 <new node> 相关内容修改为当前节点内容

添加普通用户启停特权

在新节点上,使用root用户操作

修改 hubble.service 文件的用户权限

chown hubble:hubble /etc/systemd/system/hubble.service

添加普通用户权限

vi /etc/sudoers
## Same thing without a password 
hubble ALL=(root) NOPASSWD:/usr/bin/systemctl start hubble,/usr/bin/systemctl stop hubble,/usr/bin/systemctl restart hubble,/usr/bin/systemctl enable hubble,/usr/bin/systemctl disable hubble,/usr/bin/systemctl daemon-reload

添加完成后,输入 :wq! 保存退出

:wq!

启动服务

使用hubble用户操作

sudo systemctl daemon-reload 
sudo systemctl start hubble

测试验证

  • 页面访问,查看集群状态
https://192.168.1.11:48080/
  • 查看进程
systemctl status hubble
  • 命令行连接新节点
hubble sql --certs-dir=/var/lib/hubble/certs --host=<new node>

设置开机自启动

systemctl enable hubble  ## root用户操作
sudo systemctl enable hubble  ## hubble用户操作