[TSDB] Opengemini 安装指南
1 安装指南:一键安装方式(Gemix)
使用Gemix工具一键安装部署,目前只能用于集群,支持在一台或多台虚拟机或者物理机上部署openGemini集群,具体使用方式参考:
Gemix使用指南
使用openGemini-operator一键容器化部署,目前只能用于集群,支持K8s容器化部署,具体使用方式参考openGemini-operator使用指南
Gemix 概览 (了解即可)
- 在各种系统软件和应用软件的安装管理中,包管理器有着广泛的应用,包管理工具的出现大大简化了软件的安装和升级维护工作。
例如,几乎所有使用 RPM 的 Linux 都会使用 yum 来进行包管理,而 Anaconda 则可以非常方便地管理 Python 的环境和相关软件包。
-
在早期的
openGemini生态中,没有专门的包管理工具,使用者只能通过相应的配置文件和文件夹命名来手动管理,由于openGemini组件多,配置参数多,配置问题是社区收到反馈最多的问题,为此我们希望开发一款工具,帮助大家更容易安装和运维openGemini。 -
在业界,我们看到
Tiup工具做的非常好,参考之下,社区开发了Gemix,它是一款openGemini运维工具,第一阶段主要完成了openGemini集群安装、集群启停、集群卸载、集群监控(自带Grafana的监控模板)等功能,您只需规划好集群的各组件分布,无需再配置繁杂的集群配置文件,就可以实现一键安装部署。
Step0 部署架构
- 版本规划
- go : 1.23.0
- opengemini : v1.2.0
机器列表
192.168.100.102 vmw-b.servers.com
cpu架构 = x86_64bit / cpu=1c / memory=2g / disk=20g
os = centos7.9
192.168.100.103 vmw-c.servers.com
cpu架构 = x86_64bit / cpu=1c / memory=2g / disk=20g
os = centos7.9
192.168.100.104 vmw-d.servers.com
cpu架构 = x86_64bit / cpu=1c / memory=2g / disk=20g
os = centos7.9
192.168.100.105 vmw-e.servers.com
cpu架构 = x86_64bit / cpu=1c / memory=2g / disk=20g
os = centos7.9
部署架构
ts-sql: 主要端口`8086:*`
vmw-b / vmw-c / vmw-d
ts-store: 主要端口`8401:*`
vmw-b / vmw-c / vmw-d
ts-meta: 主要端口`8091:*`
vmw-b / vmw-c / vmw-d
ts-monitor: 主要端口`*:8086`
vmw-b / vmw-c / vmw-d / vmw-e
ts-server: 使用端口`8186:*`
vmw-e

拓扑配置文件(topology.yaml)
- 拓扑配置文件(
topology.yaml):
/usr/local/opengemini/topology.yaml
# reference-doc:
## https://docs.opengemini.org/zh/guide/reference/gemix_manual.html#%E9%85%8D%E7%BD%AE%E7%A4%BA%E4%BE%8B
## https://github.com/openGemini/gemix/blob/v1.0.1/embed/examples/cluster/topology.example.yaml
## https://github.com/openGemini/gemix/blob/v1.0.0/embed/examples/cluster/topology.example.yaml
## 特别注意: 亲测,不支持配置域名方式,如: "vwc-d.servers.com"
### Global variables are applied to all deployments and used as the default value of
### the deployments if a specific deployment value is missing.
global:
### SSH port of servers in the managed cluster.
ssh_port: 22
### The user who runs the openGemini cluster.
user: "root"
### group is used to specify the group name the user belong to if it's not the same as user.
# group: "root"
### Storage directory for cluster deployment files, startup scripts, and configuration files.
# deploy_dir: "/usr/local/openGemini" # [官方文档的默认路径]
# deploy_dir: "/gemini-deploy" # [v1.0.1/template 的默认路径]
deploy_dir: "/usr/local/opengemini/gemini-deploy/"
### openGemini Cluster data storage directory
# data_dir: "/gemini-data" # [v1.0.1/template 的默认路径] 完全注释掉、不配置的原因:下面各组件有具体的路径配置
#log_dir: "/var/openGemini/logs" # [官方文档的默认路径]
log_dir: "/usr/local/opengemini/gemini-log/logs"
### operating system, linux/darwin.
os: "linux"
### Supported values: "amd64", "arm64" (default: "amd64").
arch: "amd64"
### Resource Control is used to limit the resource of an instance.
### See: https://www.freedesktop.org/software/systemd/man/systemd.resource-control.html
### Supports using instance-level `resource_control` to override global `resource_control`.
# resource_control:
### See: https://www.freedesktop.org/software/systemd/man/systemd.resource-control.html#MemoryLimit=bytes
# memory_limit: "2G"
### See: https://www.freedesktop.org/software/systemd/man/systemd.resource-control.html#CPUQuota=
### The percentage specifies how much CPU time the unit shall get at maximum, relative to the total CPU time available on one CPU. Use values > 100% for allotting CPU time on more than one CPU.
### Example: CPUQuota=200% ensures that the executed processes will never get more than two CPU time.
# cpu_quota: "200%"
### See: https://www.freedesktop.org/software/systemd/man/systemd.resource-control.html#IOReadBandwidthMax=device%20bytes
# io_read_bandwidth_max: "/dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 100M"
# io_write_bandwidth_max: "/dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 100M"
### Monitored variables are applied to all the machines.
monitored: # 被监控的节点(推送监控数据)
### Enable ts-monitor instance for all the machines
ts_monitor_enabled: true
### Storage directory for deployment files, startup scripts, and configuration files of monitoring components.
# deploy_dir: "/gemini-deploy/ts-monitor" # [v1.0.1/template 的默认路径]
deploy_dir: "/usr/local/opengemini/gemini-deploy/ts-monitor/" #自定义路径
### Log storage directory of the ts-monitor component.
# log_dir: "/gemini-deploy/ts-monitor/logs" # [v1.0.1/template 的默认路径]
log_dir: "/usr/local/opengemini/gemini-log/logs/ts-monitor/" #自定义路径
### Server configs are used to specify the runtime configuration of openGemini components.
### All configuration items can be found in openGemini docs:
### - ts-meta: https://docs.opengemini.org/
### - ts-sql: https://docs.opengemini.org/
### - ts-store: https://docs.opengemini.org/
###
### All configuration items use points to represent the hierarchy, e.g:
### common.ha-policy
### ^
### - example: https://github.com/openGemini/openGemini-UP/blob/main/embed/examples/cluster/topology.example.yaml
### You can overwrite this configuration via the instance-level `config` field.
# server_configs:
# ts-meta:
# ts-sql:
# ts-store:
### Server configs are used to specify the configuration of ts-server Server.
monitoring_servers: # 被监控的节点(接收监控数据)
### The ip address of the Monitoring Server.
- host: 192.168.101.105
### SSH port of the server.
# ssh_port: 22
### ts-server Service communication port.
# port: 8186
### Access the ts-meta cluster port. (for devops)
# client_port: 8191
# peer_port: 8192
# raft_port: 8188
# ingest_port: 8410
# select_port: 8411
### ts-server deployment file, startup script, configuration file storage directory.
# deploy_dir: "/gemini-deploy/ts-server-8186" # [v1.0.1/template 的默认路径]
### ts-server log file storage directory.
# log_dir: "/gemini-deploy/ts-server-8186/logs" # [v1.0.1/template 的默认路径]
### ts-server data storage directory.
# data_dir: "/gemini-data/ts-server-8186" # [v1.0.1/template 的默认路径]
# Server configs are used to specify the configuration of ts-meta Servers.
ts_meta_servers:
### The ip address of the ts-meta Server.
- host: 192.168.101.102
### SSH port of the server.
# ssh_port: 22
### Access the ts-meta cluster port. (for devops)
# client_port: 8091
### communication port among ts-meta Server nodes.
# peer_port: 8092
### communication raft port among ts-meta Server nodes.
# raft_port: 8088
### communication gossip port among ts-meta and ts-store Server nodes.
# gossip_port: 8010
### ts-meta Server deployment file, startup script, configuration file storage directory.
# deploy_dir: "/gemini-deploy/ts-meta-8091"
### ts-meta Server logs storage directory.
# log_dir: "/gemini-deploy/ts-meta-8091/logs"
### ts-meta Server meta data storage directory.
# data_dir: "/gemini-data/ts-meta-8091" # [v1.0.1/template 的默认路径]
# data_dir: "/var/openGemini/data/meta" # [官方文档的默认路径]
data_dir: "/data/gemini-data/meta"
# config:
# logging.level: warn
- host: 192.168.101.103
# data_dir: "/var/openGemini/data/meta" # [官方文档的默认路径]
data_dir: "/data/gemini-data/meta"
- host: 192.168.101.104
# data_dir: "/var/openGemini/data/meta" # [官方文档的默认路径]
data_dir: "/data/gemini-data/meta"
### Server configs are used to specify the configuration of ts-sql Servers.
ts_sql_servers:
### The ip address of the ts-sql Server.
- host: 192.168.101.102
### SSH port of the server.
# ssh_port: 22
### Access the openGemini cluster port.
# port: 8086
### ts-sql Server deployment file, startup script, configuration file storage directory.
# deploy_dir: "/gemini-deploy/ts-sql-8086" # [v1.0.1/template 的默认路径]
# 此处(deploy_dir)不配置时,默认按: ${global.deploy_dir}/ts-sql-8086 部署
### ts-sql Server logs storage directory.
# log_dir: "/gemini-deploy/ts-sql-8086/logs" # [v1.0.1/template 的默认路径]
# config:
# logging.level: warn
- host: 192.168.101.103
- host: 192.168.101.104
### Server configs are used to specify the configuration of ts-store Servers.
ts_store_servers:
### The ip address of the ts-store Server.
- host: 192.168.101.102
### SSH port of the server.
# ssh_port: 22
### ingest data port
# ingest_port: 8400
### select data port
# select_port: 8401
### communication gossip port among ts-meta and ts-store Server nodes.
# gossip_port: 8011
### ts-store Server deployment file, startup script, configuration file storage directory.
# deploy_dir: "/gemini-deploy/ts-store-8401"
### ts-store Server logs storage directory.
# log_dir: "/gemini-deploy/ts-store-8401/logs"
### ts-store Server meta data storage directory.
# data_dir: "/gemini-data/ts-store-8401" # [v1.0.1/template 的默认路径]
# data_dir: "/var/openGemini/data/data" # [官方文档的默认路径]
data_dir: "/data/gemini-data/data"
# config:
# logging.level: warn
- host: 192.168.101.103
# data_dir: "/var/openGemini/data/data" # [官方文档的默认路径]
data_dir: "/data/gemini-data/data"
- host: 192.168.101.104
# data_dir: "/var/openGemini/data/data" # [官方文档的默认路径]
data_dir: "/data/gemini-data/data"
### Server configs are used to specify the configuration of Grafana Servers.
grafana_servers:
### The ip address of the Grafana Server.
- host: 192.168.101.105
### Grafana Web monitoring service client (browser) access port
# port: 3000
### Grafana deployment file, startup script, configuration file storage directory.
# deploy_dir: /gemini-deploy/grafana-3000 [v1.0.1/template 的默认路径]
### grafana dashboard dir on gemix machine
# dashboard_dir: /home/gemini/dashboards [v1.0.1/template 的默认路径]
# config:
# log.file.level: warning
### server_configs 用于配置具体的openGemini内核组件,生成各组件的配置文件
server_configs:
ts-sql:
# 修改鉴权配置
# http.auth-enabled: false # 官方文档的默认配置
http.auth-enabled: true
ts-store:
# 修改 ts-store 的wal文件目录
# data.store-wal-dir: "/var/openGemini/data/wal" # 官方文档的默认配置
data.store-wal-dir: "/data/gemini-data/data/wal"
ts-monitor:
# 修改存储监控数据的库名,默认为集群名
report.database: "_internal"
# 监控数据默认被写入当前集群的目标数据库中,如果需要将监控数据写入单独节点上的openGemini,可修改地址
report.address: "192.168.101.105:8086"
Step1 安装|采购 CENTOS7 服务器 : 略
- 推荐文献
- CENTOS7服务器 x 4 台
vmw-b.servers.comvmw-c.servers.comvmw-d.servers.comvmw-e.servers.com
Step2 安装 Go:略
- 推荐文献
- GO的安装版本及安装包:
vmw-b节点 :/usr/local/go1.23.0.linux-amd64.tar.gz
下载URL: https://go.dev/dl/go1.23.0.linux-amd64.tar.gz
- 重要的环境变量 : at
/etc/profile
# GO的环境变量及GO语言二进制可执行程序的路径
export PATH=$PATH:/usr/local/go/bin
export GOPROXY=https://goproxy.cn
Step3 安装 Gemix
- 提前主动配置
OpenGemini项目的GOPATH环境变量:
vim /etc/profile
export GOPATH=/opt/go-projects/opengemini
source /etc/profile
如果是国内用户,go install安装失败,建议配置GOPROXY
> export GOPROXY=https://goproxy.cn
- 执行如下命令安装 gemix 工具
> go install github.com/openGemini/gemix@latest
# 或: go install github.com/openGemini/gemix@v1.0.1
# 释出时间: 2024.09.12
# 或: go install github.com/openGemini/gemix@v1.0.0
# 释出时间: 2024.06.28
> ls -la $GOPATH
查看详情
//友情感谢 : 博客园 markdown 折叠代码块(summary下多空一行) : https://www.cnblogs.com/yebaoer/p/14981034.html
[root@vmw-b ~]# go install github.com/openGemini/gemix@latest
go: downloading github.com/olekukonko/tablewriter v0.0.5
go: downloading github.com/spf13/cobra v1.8.0
go: downloading github.com/mattn/go-runewidth v0.0.15
go: downloading github.com/fatih/color v1.16.0
go: downloading github.com/pkg/errors v0.9.1
go: downloading go.uber.org/zap v1.26.0
go: downloading golang.org/x/crypto v0.15.0
go: downloading golang.org/x/sync v0.3.0
go: downloading golang.org/x/text v0.14.0
go: downloading github.com/pkg/sftp v1.13.6
go: downloading github.com/spf13/pflag v1.0.5
go: downloading github.com/rivo/uniseg v0.4.4
go: downloading github.com/mattn/go-colorable v0.1.13
go: downloading github.com/mattn/go-isatty v0.0.20
go: downloading github.com/joomcode/errorx v1.1.1
go: downloading github.com/BurntSushi/toml v1.3.2
go: downloading github.com/creasty/defaults v1.7.0
go: downloading github.com/google/uuid v1.3.0
go: downloading gopkg.in/ini.v1 v1.67.0
go: downloading gopkg.in/yaml.v2 v2.4.0
go: downloading github.com/AstroProfundis/tabby v1.1.1
go: downloading golang.org/x/term v0.14.0
go: downloading go.uber.org/atomic v1.11.0
go: downloading github.com/otiai10/copy v1.14.0
go: downloading golang.org/x/mod v0.14.0
go: downloading go.uber.org/multierr v1.11.0
go: downloading github.com/asaskevich/EventBus v0.0.0-20200907212545-49d423059eef
go: downloading github.com/appleboy/easyssh-proxy v1.3.10-0.20211209134747-6671f69d85f5
go: downloading github.com/charmbracelet/bubbles v0.16.1
go: downloading github.com/charmbracelet/bubbletea v0.24.2
go: downloading github.com/charmbracelet/lipgloss v0.9.1
go: downloading github.com/kr/fs v0.1.0
go: downloading golang.org/x/sys v0.14.0
go: downloading github.com/ScaleFT/sshkeys v1.2.0
go: downloading github.com/charmbracelet/harmonica v0.2.0
go: downloading github.com/lucasb-eyer/go-colorful v1.2.0
go: downloading github.com/muesli/reflow v0.3.0
go: downloading github.com/muesli/termenv v0.15.2
go: downloading github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81
go: downloading github.com/mattn/go-localereader v0.0.1
go: downloading github.com/muesli/ansi v0.0.0-20211018074035-2e021307bc4b
go: downloading github.com/muesli/cancelreader v0.2.2
go: downloading github.com/sethvargo/go-password v0.2.0
go: downloading github.com/dchest/bcrypt_pbkdf v0.0.0-20150205184540-83f37f9c154a
go: downloading github.com/aymanbagabas/go-osc52/v2 v2.0.1
[root@vmw-b ~]#
[root@vmw-b ~]# ll /root
总用量 12
-rw-------. 1 root root 2995 12月 17 19:52 anaconda-ks.cfg
-rw-r--r--. 1 root root 83 12月 19 00:14 hello-world.go
-rw-------. 1 root root 2094 12月 17 19:52 original-ks.cfg
[root@vmw-b ~]# ll $GOPATH
总用量 0
drwxr-xr-x. 2 root root 19 12月 19 10:10 bin
drwxr-xr-x. 4 root root 30 12月 19 09:59 pkg
[root@vmw-b ~]# echo $GOPATH
/opt/go-projects/opengemini
安装成功后,
gemix二进制保存在$GOPATH/bin目录。
# ll /opt/go-projects/opengemini/bin
总用量 17628
-rwxr-xr-x. 1 root root 18048840 12月 19 10:10 gemix
# ls -la $GOPATH/bin
总用量 17628
drwxr-xr-x. 2 root root 19 12月 19 10:10 .
drwxr-xr-x. 4 root root 28 12月 19 10:10 ..
-rwxr-xr-x. 1 root root 18048840 12月 19 10:10 gemix
- 配置gemix可执行程序为可直接使用的指令
以便后面步骤使用上更方便,便于可直接调用
gemix cluster等指令
ln -s $GOPATH/bin/gemix /usr/local/bin/gemix
或: ln -s /opt/go-projects/opengemini/bin/gemix /usr/local/bin/gemix
- 查验 gemix 是否可用
gemix --version
或: gemix -h
Step4 使用Gemix部署openGemini集群
安装好
gemix后,就可以使用gemix部署openGemini集群了
Step4.1 初始化集群拓扑文件(topology.yaml)
- [vmw-b] 执行如下命令,生成集群初始化配置文件:
> mkdir -p /usr/local/opengemini
> gemix cluster template > /usr/local/opengemini/topology.yaml
Step4.2 配置集群拓扑文件(topology.yaml)
- 打开配置文件
vim topology.yaml
实际的具体配置,参见本文档: OpenGemini集群的拓扑配置文件(/usr/local/opengemini/topology.yaml)
【特别解释】配置文件
topology.yaml分为如下7个部分,主要是为了告诉gemix工具:
- 在哪些机器部署哪些组件
- 每个组件需要安装到目标机器什么位置
- 各组件的数据和日志存放到机器什么位置
- 是否需要部署集群监控和监控面板
- ... 等
global: # 参见: https://docs.opengemini.org/zh/guide/reference/gemix_manual.html#global
...
monitored: # 参见: https://docs.opengemini.org/zh/guide/reference/gemix_manual.html#monitored
...
ts_meta_servers: # 参见: https://docs.opengemini.org/zh/guide/reference/gemix_manual.html#ts_meta_servers
...
ts_sql_servers: # 参见: https://docs.opengemini.org/zh/guide/reference/gemix_manual.html#ts_sql_servers
...
ts_store_servers: # 参见: https://docs.opengemini.org/zh/guide/reference/gemix_manual.html#ts_store_servers
...
grafana_servers: # 参见: https://docs.opengemini.org/zh/guide/reference/gemix_manual.html#grafana_servers
...
server_configs: # 参见: https://docs.opengemini.org/zh/guide/reference/gemix_manual.html#server_configs
...
部署ts-meta组件,openGemini要求ts-meta要部署三个节点,以确保元数据的可靠性。
一般建议部署在三台不同的虚拟机或物理机上,ts-meta可以与ts-store,ts-sql合部在一台机器上。
如果希望两个及以上ts-meta要部署在同一台机器上,需要参考【openGemini端口矩阵】对ts-meta的相关端口进行调整,避免出现端口冲突。
Step5 部署集群
Step5.1 配置集群节点内用户ssh免密登录 (可选步骤)
- step5.1.1 在主服务器(
vmw-b)上,为需要免密登录的服务器,分别生成公钥和私钥对 | atvmw-bforvmw-c/vmw-d/vmw-e
ssh-keygen命令用于生成RSA或DSA类型的密钥
-b参数指定密钥长度,-t指定密钥类型,-C用于添加注释,-f指定密钥保存位置
[root@vmw-b opengemini]# ssh-keygen -t rsa -f ~/.ssh/id_rsa.vmw-b -C "vmw-b key"
# 注:gemix 所在的本机(vmw-b) 也需要配置免密登录,为防止gemix cluster install 时报:
...
+ Download openGemini components
+ Generate SSH keys ... Done
- Download openGemini:v1.2.0 (linux/amd64) ... Done
- Download grafana:v1.2.0 (linux/amd64) ... Done
- Download openGemini:v1.2.0 (linux/amd64) ⣽ Doing...
- Download openGemini:v1.2.0 (linux/amd64) ... Done
- Prepare vmw-b.servers.com:22 ... Done
- Prepare vmw-c.servers.com:22 ... Done
- Prepare vmw-d.servers.com:22 ... Done
- Prepare vmw-e.servers.com:22 ⣽ Doing...
Error: task.env_init.failed: Failed to initialize openGemini environment on remote host 'vmw-b.servers.com', cause: task.env_init.sub_command_failed: Failed to create '~/.ssh' directory for user 'root', cause: executor.ssh.execute_failed: Failed to execute command over SSH for 'root@vmw-b.servers.com:22' {ssh_stderr: , ssh_stdout: , ssh_command: export LANG=C; PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin /usr/bin/sudo -H bash -c "su - root -c 'mkdir -p ~/.ssh && chmod 700 ~/.ssh'"}, cause: ssh: handshake failed: ssh: unable to authenticate, attempted methods [none], no supported methods remain
Verbose debug logs has been written to /root/.gemix/logs/gemix-cluster-debug-2024-12-20-16-32-56.log.
[root@vmw-b opengemini]# ssh-keygen -t rsa -f ~/.ssh/id_rsa.vmw-c -C "vmw-c key"
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.vmw-c.
Your public key has been saved in /root/.ssh/id_rsa.vmw-c.pub.
The key fingerprint is:
SHA256:3O5Isb16rPyxiGU6ZysyNbfRpJvbP/lD/MLnJHWjsAw vmw-c key
The key's randomart image is:
+---[RSA 2048]----+
| |
| |
| |
| . .. |
| SE.. . .o|
| o +=+ o +.o|
| . o=*+o =...|
| o oB*=o+o +oo|
| oo=OB*..o.=.|
+----[SHA256]-----+
[root@vmw-b opengemini]# ssh-keygen -t rsa -f ~/.ssh/id_rsa.vmw-d -C "vmw-d key"
...
[root@vmw-b opengemini]# ssh-keygen -t rsa -f ~/.ssh/id_rsa.vmw-e -C "vmw-e key"
...
- step5.1.2 配置SSH客户端 (可选步骤) | at
vmw-b
在本地机器上,你可以编辑
~/.ssh/config文件来为不同的服务器配置不同的密钥
[root@vmw-b opengemini]# vim ~/.ssh/config
编辑内容:
#Host coding.net
# HostName coding.net
# User your_username
# IdentityFile ~/.ssh/id_rsa.coding
#Host github.com
# HostName github.com
# User your_username
# IdentityFile ~/.ssh/id_rsa.github
Host vmw-b.servers.com
HostName vmw-b.servers.com
User root
IdentityFile ~/.ssh/id_rsa.vmw-b
Host vmw-c.servers.com
HostName vmw-c.servers.com
User root
IdentityFile ~/.ssh/id_rsa.vmw-c
Host vmw-d.servers.com
HostName vmw-d.servers.com
User root
IdentityFile ~/.ssh/id_rsa.vmw-d
Host vmw-e.servers.com
HostName vmw-e.servers.com
User root
IdentityFile ~/.ssh/id_rsa.vmw-e
这样,你就可以使用
ssh coding.net和ssh github.com来分别连接到不同的服务器,而SSH客户端会自动使用对应的私钥进行认证。
[root@vmw-b ~]# ls -la ~/.ssh/
总用量 48
drwx------. 2 root root 238 12月 20 17:22 .
dr-xr-x---. 8 root root 4096 12月 20 17:22 ..
-rw-------. 1 root root 391 12月 20 17:22 authorized_keys
-rw-r--r--. 1 root root 423 12月 20 17:22 config
-rw-------. 1 root root 1679 12月 20 17:14 id_rsa.vmw-b
-rw-r--r--. 1 root root 391 12月 20 17:14 id_rsa.vmw-b.pub
-rw-------. 1 root root 1671 12月 19 14:58 id_rsa.vmw-c
-rw-r--r--. 1 root root 391 12月 19 14:58 id_rsa.vmw-c.pub
-rw-------. 1 root root 1679 12月 19 14:59 id_rsa.vmw-d
-rw-r--r--. 1 root root 391 12月 19 14:59 id_rsa.vmw-d.pub
-rw-------. 1 root root 1675 12月 19 15:00 id_rsa.vmw-e
-rw-r--r--. 1 root root 391 12月 19 15:00 id_rsa.vmw-e.pub
-rw-r--r--. 1 root root 1098 12月 20 17:22 known_hosts
- step5.1.3 将SSH公钥从客户端服务器分别分发到远程的目标服务器
[root@vmw-b .ssh]# cat ~/.ssh/id_rsa.vmw-b.pub | ssh root@vmw-b.servers.com 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys'
[root@vmw-b .ssh]# cat ~/.ssh/id_rsa.vmw-c.pub | ssh root@vmw-c.servers.com 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys'
The authenticity of host 'vmw-c.servers.com (192.168.100.103)' can't be established.
ECDSA key fingerprint is SHA256:ek330AQTVpEWkx0nJsQlhPo3W670CDxvJiDi/dAFrS0.
ECDSA key fingerprint is MD5:dc:81:b8:6c:2a:9c:36:ac:56:38:41:3b:13:9c:20:b6.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'vmw-c.servers.com,192.168.100.103' (ECDSA) to the list of known hosts.
root@vmw-c.servers.com's password:
[root@vmw-b .ssh]# cat ~/.ssh/id_rsa.vmw-d.pub | ssh root@vmw-d.servers.com 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys'
(略)...
[root@vmw-b .ssh]# cat ~/.ssh/id_rsa.vmw-e.pub | ssh root@vmw-e.servers.com 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys'
(略)...
- step5.1.4 [测试] ssh命令行方式直连远程linux
在
vmw-b节点服务器,免密访问vmw-c节点服务器为例
[root@vmw-b .ssh]# ssh root@vmw-c.servers.com
Last login: Thu Dec 19 14:48:03 2024 from 192.168.101.235
[root@vmw-c ~]# exit
登出
Connection to vmw-c.servers.com closed.
[root@vmw-b .ssh]#
[root@vmw-b .ssh]# ssh root@vmw-d.servers.com
...
[root@vmw-b .ssh]# ssh root@vmw-e.servers.com
...
Step5.2 基于Gemix部署Gemini集群
- 上述配置文件准备好之后,就可以执行如下命令开始部署openGemini集群
> cd /usr/local/opengemini/
> gemix cluster install gemini-test v1.2.0 ./topology.yaml --user root -p --skip-create-user
这条命令会部署一个名为
gemini-test的openGemini集群
部署的openGemini版本为v1.2.0,集群部署的拓扑文件是topology.yaml
部署时访问机器的方式是用户名+密码,用户名为root
--skip-create-user: 跳过对root用户的创建
- 国内用户如果访问
github存在网络问题,可以执行如下命令进行安装
> cd /usr/local/opengemini/
> GEMIX_MIRRORS_REPO=gitee.com gemix cluster install gemini-test v1.2.0 ./topology.yaml --user root -p
GEMIX_MIRRORS_REPO=gitee.com环境变量将指定从国内Gitee上下载openGemini的二进制版本。值得注意的是,选择从Gitee下载版本,只能安装v1.1.1及以上版本。
- 如果使用密钥方式
> cd /usr/local/opengemini/
> gemix cluster install gemini-test v1.2.0 ./topology.yaml --user root -k /home/root/.ssh/id_rsa
- 如果配置了免密登录 【推荐】
> cd /usr/local/opengemini/
> GEMIX_MIRRORS_REPO=gitee.com gemix cluster install gemini-test v1.2.0 ./topology.yaml --user root
一般情况下
gemix会在目标机器上创建topology.yaml中约定的用户和组,以下情况例外:
topology.yaml中设置的用户名在目标机器上已存在。- 在命令行上使用了参数
--skip-create-user明确指定跳过创建用户的步骤。
笔者使用此方式:
cd /usr/local/opengemini/
GEMIX_MIRRORS_REPO=gitee.com gemix cluster install gemini-test v1.2.0 ./topology.yaml --user root -p --skip-create-user
查看详情(DEPLOY LOG)
[root@vmw-b opengemini]# GEMIX_MIRRORS_REPO=gitee.com gemix cluster install gemini-test v1.2.0 ./topology.yaml --user root -p --skip-create-user
Input SSH password:
Please confirm your topology:
Cluster name: gemini-test
Cluster version: v1.2.0
Role Host Ports OS/Arch Directories
---- ---- ----- ------- -----------
ts-meta 192.168.101.102 8091/8092/8088/8010 linux/amd64 /usr/local/opengemini/gemini-deploy/ts-meta-8091,/usr/local/opengemini/gemini-log/logs/ts-meta-8091,/data/gemini-data/meta
ts-meta 192.168.101.103 8091/8092/8088/8010 linux/amd64 /usr/local/opengemini/gemini-deploy/ts-meta-8091,/usr/local/opengemini/gemini-log/logs/ts-meta-8091,/data/gemini-data/meta
ts-meta 192.168.101.104 8091/8092/8088/8010 linux/amd64 /usr/local/opengemini/gemini-deploy/ts-meta-8091,/usr/local/opengemini/gemini-log/logs/ts-meta-8091,/data/gemini-data/meta
ts-store 192.168.101.102 8400/8401/8011 linux/amd64 /usr/local/opengemini/gemini-deploy/ts-store-8401,/usr/local/opengemini/gemini-log/logs/ts-store-8401,/data/gemini-data/data
ts-store 192.168.101.103 8400/8401/8011 linux/amd64 /usr/local/opengemini/gemini-deploy/ts-store-8401,/usr/local/opengemini/gemini-log/logs/ts-store-8401,/data/gemini-data/data
ts-store 192.168.101.104 8400/8401/8011 linux/amd64 /usr/local/opengemini/gemini-deploy/ts-store-8401,/usr/local/opengemini/gemini-log/logs/ts-store-8401,/data/gemini-data/data
ts-sql 192.168.101.102 8086 linux/amd64 /usr/local/opengemini/gemini-deploy/ts-sql-8086,/usr/local/opengemini/gemini-log/logs/ts-sql-8086
ts-sql 192.168.101.103 8086 linux/amd64 /usr/local/opengemini/gemini-deploy/ts-sql-8086,/usr/local/opengemini/gemini-log/logs/ts-sql-8086
ts-sql 192.168.101.104 8086 linux/amd64 /usr/local/opengemini/gemini-deploy/ts-sql-8086,/usr/local/opengemini/gemini-log/logs/ts-sql-8086
ts-server 192.168.101.105 8186/8188/8191/8192/8410/8411 linux/amd64 /usr/local/opengemini/gemini-deploy/ts-server-8186,/usr/local/opengemini/gemini-log/logs/ts-server-8186,/usr/local/opengemini/gemini-deploy/ts-server-8186/data
grafana 192.168.101.105 3000 linux/amd64 /usr/local/opengemini/gemini-deploy/grafana-3000
Attention:
1. If the topology is not what you expected, check your yaml file.
2. Please confirm there is no port/directory conflicts in same host.
Do you want to continue? [y/N]: (default=N) y
+ Download openGemini components
+ Generate SSH keys ... Done
- Download openGemini:v1.2.0 (linux/amd64) ⡿ Doing...
- Download grafana:v1.2.0 (linux/amd64) ... Done
- Download openGemini:v1.2.0 (linux/amd64) ⡿ Doing...
- Download openGemini:v1.2.0 (linux/amd64) ... Done
- Prepare 192.168.101.105:22 ... Done
- Prepare 192.168.101.102:22 ... Done
- Prepare 192.168.101.103:22 ... Done
- Prepare 192.168.101.104:22 ⢿ Doing...
- Prepare 192.168.101.104:22 ... Done
- Mkdir /usr/local/opengemini/gemini-deploy/ts-meta-8091,/usr/local/opengemini/gemini-log/logs/ts-meta-8091,/usr/local/opengemini/gemini-deploy/ts-m
- Mkdir /usr/local/opengemini/gemini-deploy/ts-meta-8091,/usr/local/opengemini/gemini-log/logs/ts-meta-8091,/usr/local/opengemini/gemini-deploy/ts-m
- Mkdir /usr/local/opengemini/gemini-deploy/ts-meta-8091,/usr/local/opengemini/gemini-log/logs/ts-meta-8091,/usr/local/opengemini/gemini-deploy/ts-m
- Mkdir /usr/local/opengemini/gemini-deploy/ts-store-8401,/usr/local/opengemini/gemini-log/logs/ts-store-8401,/usr/local/opengemini/gemini-deploy/ts
- Mkdir /usr/local/opengemini/gemini-deploy/ts-store-8401,/usr/local/opengemini/gemini-log/logs/ts-store-8401,/usr/local/opengemini/gemini-deploy/ts
- Mkdir /usr/local/opengemini/gemini-deploy/ts-store-8401,/usr/local/opengemini/gemini-log/logs/ts-store-8401,/usr/local/opengemini/gemini-deploy/ts
- Mkdir /usr/local/opengemini/gemini-deploy/ts-sql-8086,/usr/local/opengemini/gemini-log/logs/ts-sql-8086,/usr/local/opengemini/gemini-deploy/ts-sql
- Mkdir /usr/local/opengemini/gemini-deploy/ts-sql-8086,/usr/local/opengemini/gemini-log/logs/ts-sql-8086,/usr/local/opengemini/gemini-deploy/ts-sql
- Mkdir /usr/local/opengemini/gemini-deploy/ts-sql-8086,/usr/local/opengemini/gemini-log/logs/ts-sql-8086,/usr/local/opengemini/gemini-deploy/ts-sql
- Mkdir /usr/local/opengemini/gemini-deploy/ts-server-8186,/usr/local/opengemini/gemini-log/logs/ts-server-8186,/usr/local/opengemini/gemini-deploy/
- Mkdir /usr/local/opengemini/gemini-deploy/grafana-3000,/usr/local/opengemini/gemini-deploy/grafana-3000/log,/usr/local/opengemini/gemini-deploy/gr
- Mkdir /usr/local/opengemini/gemini-deploy/grafana-3000,/usr/local/opengemini/gemini-deploy/grafana-3000/log,/usr/local/opengemini/gemini-deploy/gr
- Copy required components -> 192.168.101.103 ⣷ Doing...
- Copy required components -> 192.168.101.104 ... Done
- Copy required components -> 192.168.101.105 ... Done
- Copy required components -> 192.168.101.102 ... Done
- Deploy openGemini -> 192.168.101.102 ... Done
- Deploy openGemini -> 192.168.101.103 ... Done
- Deploy openGemini -> 192.168.101.104 ... Done
- Deploy openGemini -> 192.168.101.105 ⣯ Doing...
- Deploy openGemini -> 192.168.101.105 ... Done
- Generate config ts-meta -> 192.168.101.102:8091 ... Done
- Generate config ts-meta -> 192.168.101.103:8091 ... Done
- Generate config ts-meta -> 192.168.101.104:8091 ... Done
- Generate config ts-store -> 192.168.101.102:8401 ... Done
- Generate config ts-store -> 192.168.101.103:8401 ... Done
- Generate config ts-store -> 192.168.101.104:8401 ... Done
- Generate config ts-sql -> 192.168.101.102:8086 ... Done
- Generate config ts-sql -> 192.168.101.103:8086 ... Done
- Generate config ts-sql -> 192.168.101.104:8086 ... Done
- Generate config ts-server -> 192.168.101.105:8186 ... Done
- Generate config grafana -> 192.168.101.105:3000 ⣯ Doing...
- Generate config grafana -> 192.168.101.105:3000 ... Done
- Generate config ts-monitor -> 192.168.101.104 ... Done
- Generate config ts-monitor -> 192.168.101.105 ... Done
- Generate config ts-monitor -> 192.168.101.102 ... Done
- Generate config ts-monitor -> 192.168.101.103 ⡿ Doing...
Cluster `gemini-test` installed successfully, you can start it with command: `gemix cluster start gemini-test`
[root@vmw-b opengemini]#
Step6 启动集群
将所有实例节点的相关进程启动:
gemix cluster start gemini-test
预期结果输出
Started cluster gemini-test successfully,表示启动成功。
Next Step: OpenGemini 运维指南
FAQ : OpenGemini 安装部署
Q: 基于Gemix和topology.yaml一键安装失败,报Grafana安装包下载失败:Error: receiving status of 404 for url: https://dl.grafana.com/oss/release/grafana-enterprise-7.5.17.linux-amd64.tar.gz
问题描述
# [root@vmw-b opengemini]# GEMIX_MIRRORS_REPO=gitee.com gemix cluster install gemini-test v1.2.0 ./topology.yaml --user root
Please confirm your topology:
Cluster name: gemini-test
Cluster version: v1.2.0
Role Host Ports OS/Arch Directories
---- ---- ----- ------- -----------
...
...
Do you want to continue? [y/N]: (default=N) y
+ Download openGemini components
+ Generate SSH keys ... Done
- Download openGemini:v1.2.0 (linux/amd64) ... Done
- Download grafana:v1.2.0 (linux/amd64) ... Done
- Download openGemini:v1.2.0 (linux/amd64) ⣽ Doing...
Error: receiving status of 404 for url: https://dl.grafana.com/oss/release/grafana-enterprise-7.5.17.linux-amd64.tar.gz
Verbose debug logs has been written to /root/.gemix/logs/gemix-cluster-debug-2024-12-19-15-35-31.log.
问题分析
- grafana 的(
grafana-enterprise-7.5.17.linux-amd64.tar.gz)安装包,停止了该老版本的安装包的提供了。
https://dl.grafana.com/oss/release/grafana-enterprise-7.5.17.linux-amd64.tar.gz
- 现在不知道可以从
gemix的哪里修改这个下载地址或版本。
解决方法 (尝试无效)
-
思路:自己搭建一个 http 服务器,结合修改自建http服务器的hosts,完全模拟该安装包的路径。(前提:从别处能找到该版本的安装包)
-
step1 [vmw-e] 安装 nginx,作为 http web 服务器
- 安装 docker
...
[root@vmw-e ~]# yum -y install docker-ce-25.0.5-1.el7
[root@vmw-e ~]# docker version
Client: Docker Engine - Community
Version: 26.1.4
API version: 1.45
Go version: go1.21.11
Git commit: 5650f9b
Built: Wed Jun 5 11:32:04 2024
OS/Arch: linux/amd64
Context: default
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
[root@vmw-e ~]# systemctl start docker
[root@vmw-e ~]# systemctl enable docker
[root@vmw-e ~]# systemctl status docker
- 安装 nginx
...
docker pull nginx:1.24.0
...
# 配置文件存放在宿主机
/data/nginx/conf
/data/nginx/conf/conf.d
/etc/nginx/nginx.conf => /data/nginx/conf/nginx.conf
/data/nginx/html
/data/nginx/log
# 容器
docker run \
-p 80:80 \
-p 443:443 \
-p 81:81 \
--add-host host.docker.internal:host-gateway \
--name nginx \
-v /data/nginx/conf/:/etc/nginx/ \
-v /data/nginx/log:/var/log/nginx \
-v /data/nginx/html:/usr/share/nginx/html \
-d nginx:1.24.0
# 查看容器及日志
docker ps -a
docker logs nginx
- step2 [vmw-e] 使 nginx 支持 https 协议
# 生成自签发SSL证书 | https://www.cnblogs.com/johnnyzen/p/18081630#_label5
/root/nginx-certs
mkdir -p /data/nginx/conf/cert
cp /root/nginx-certs/* /data/nginx/conf/cert/
ls -la /data/nginx/conf/cert/
vim /data/nginx/conf/conf.d/default.conf
server {
listen 443 ssl;
server_name dl.grafana.com localhost;
ssl_certificate /etc/nginx/cert/server.pem;
ssl_certificate_key /etc/nginx/cert/server.key;
# 重定向所有HTTPS请求到HTTP
# return 301 http://$server_name$request_uri;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
# root /www/nginx/html/yyyy-web/;
root /usr/share/nginx/html;
# root /www/wwwroot/xxx/;
# index index.html index.htm;
}
}
docker stop nginx
docker rm nginx
docker run \
-p 80:80 \
-p 443:443 \
--add-host host.docker.internal:host-gateway \
--name nginx \
-v /data/nginx/conf/:/etc/nginx/ \
-v /data/nginx/log:/var/log/nginx \
-v /data/nginx/html:/usr/share/nginx/html \
-d nginx:1.24.0
docker logs nginx
docker logs -f --tail 20 nginx
docker exec -it nginx bash
访问:
https://vmw-e.servers.com
https://vmw-e.servers.com/oss/release/grafana-7.5.17.linux-amd64.tar.gz
https://dl.grafana.com/oss/release/grafana-7.5.17.linux-amd64.tar.gz
- step3 [vmw-e] 上传 garafana 安装包到 nginx 指定目录:
/oss/release/grafana-enterprise-7.5.17.linux-amd64.tar.gz
- step4 [vmw-b] 修改主安装服务器(vmw-b)的 host(
/etc/hosts)
vmw-b: 自建 dns 服务器 / 修改网卡的 dns
vmw-e: 自建 nginx 作为 替代 dl.grafana.com 的web网站
# @reference-doc : [[计算机网络/Linux] 基于CENTOS7自建DNS服务 - 博客园/千千寰宇](https://www.cnblogs.com/johnnyzen/p/18618171)
yum install -y bind
...
vim /etc/named.conf
options {
#listen-on port 53 { 127.0.0.1; };
listen-on port 53 { any; };
#allow-query { localhost; };
allow-query { any; };
# dnssec-enable yes;
dnssec-enable no;
#dnssec-validation yes;
dnssec-validation no;
#dnssec-lookaside yes;
dnssec-lookaside no;
...
}
zone "servers.com" IN {
type master;
# file "servers.com.zone";
file "/var/named/servers.com.zone";
allow-update { none; };
};
zone "grafana.com" IN {
type master;
# file "grafana.com.zone";
file "/var/named/grafana.com.zone";
allow-update { none; };
};
vim /var/named/servers.com.zone (新建并编辑内容如下:)
@ IN SOA dns.servers.com. root.servers.com (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.servers.com.
ns IN A 192.168.100.102
@ IN A 192.168.100.102
www IN A 192.168.100.102
vmw-b IN A 192.168.100.102
vmw-c IN A 192.168.100.103
vmw-d IN A 192.168.100.104
vmw-e IN A 192.168.100.105
test IN A 192.168.100.102
vim /var/named/grafana.com.zone (新建并编辑内容如下:)
@ IN SOA dns.grafana.com. root.grafana.com (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.grafana.com.
ns IN A 192.168.100.102
@ IN A 192.168.100.102
www IN A 192.168.100.102
dl IN A 192.168.100.105
注:(不可行) dl IN CNAME vmw-e.servers.com
chmod +755 /etc/named*
chmod +755 /var/named/
ls -la /etc/named*
ls -la /var/named/
named-checkconf
named-checkzone servers.com /var/named/servers.com.zone
named-checkzone grafana.com /var/named/grafana.com.zone
rndc reload
# 重载 named 的配置
或 sudo systemctl restart named
sudo systemctl enable named
vim /etc/sysconfig/network-scripts/ifcfg-ens33
...
DNS=192.168.100.102
DNS1=... //其他备用的DNS服务器
DNS2=... //其他备用的DNS服务器
PEERDNS=no
...
sudo systemctl restart network
# 即 更新网卡(ens33)的配置,刷新 dns 等
vim /etc/resolv.conf
nameserver 192.168.100.102
nameserver 114.114.114.114
######## 验证:
[root@vmw-b named]# nslookup servers.com
Server: 192.168.100.102
Address: 192.168.100.102#53
Name: servers.com
Address: 192.168.100.102
[root@vmw-b named]# nslookup www.servers.com
Server: 192.168.100.102
Address: 192.168.100.102#53
Name: www.servers.com
Address: 192.168.100.102
[root@vmw-b named]# nslookup vmw-b.servers.com
Server: 192.168.100.102
Address: 192.168.100.102#53
Name: vmw-b.servers.com
Address: 192.168.100.102
[root@vmw-b named]# nslookup vmw-e.servers.com
Server: 192.168.100.102
Address: 192.168.100.102#53
Name: vmw-e.servers.com
Address: 192.168.100.105
[root@vmw-b named]# nslookup grafana.com
Server: 192.168.100.102
Address: 192.168.100.102#53
Name: grafana.com
Address: 192.168.100.102
[root@vmw-b named]# nslookup www.grafana.com
Server: 192.168.100.102
Address: 192.168.100.102#53
Name: www.grafana.com
Address: 192.168.100.102
[root@vmw-b named]# nslookup dl.grafana.com
Server: 192.168.100.102
Address: 192.168.100.102#53
Name: dl.grafana.com
Address: 192.168.100.105
补充:最简易的方法 (大道至简)
vim /etc/hosts
192.168.100.105 dl.grafana.com
-
step5 [vmw-b] 基于gemix,完成后续的安装
-
弊端:因
gemix源代码写死了http://dl.grafana.com的URL,即使这种方案,仍无法解决:
[root@vmw-b ~]# cd /usr/local/opengemini/
[root@vmw-b opengemini]# GEMIX_MIRRORS_REPO=gitee.com gemix cluster install gemini-test v1.2.0 ./topology.yaml --user root
Please confirm your topology:
Cluster name: gemini-test
Cluster version: v1.2.0
Role Host Ports OS/Arch Directories
---- ---- ----- ------- -----------
ts-meta vmw-b.servers.com 8091/8092/8088/8010 linux/amd64 /usr/local/opengemini/gemini-deploy/ts-meta-8091,/usr/local/opengemini/gemini-log/logs/ts-meta-8091,/data/gemini-data/meta
ts-meta vmw-c.servers.com 8091/8092/8088/8010 linux/amd64 /usr/local/opengemini/gemini-deploy/ts-meta-8091,/usr/local/opengemini/gemini-log/logs/ts-meta-8091,/data/gemini-data/meta
ts-meta vmw-d.servers.com 8091/8092/8088/8010 linux/amd64 /usr/local/opengemini/gemini-deploy/ts-meta-8091,/usr/local/opengemini/gemini-log/logs/ts-meta-8091,/data/gemini-data/meta
ts-store vmw-b.servers.com 8400/8401/8011 linux/amd64 /usr/local/opengemini/gemini-deploy/ts-store-8401,/usr/local/opengemini/gemini-log/logs/ts-store-8401,/data/gemini-data/data
ts-store vmw-c.servers.com 8400/8401/8011 linux/amd64 /usr/local/opengemini/gemini-deploy/ts-store-8401,/usr/local/opengemini/gemini-log/logs/ts-store-8401,/data/gemini-data/data
ts-store vmw-d.servers.com 8400/8401/8011 linux/amd64 /usr/local/opengemini/gemini-deploy/ts-store-8401,/usr/local/opengemini/gemini-log/logs/ts-store-8401,/data/gemini-data/data
ts-sql vmw-b.servers.com 8086 linux/amd64 /usr/local/opengemini/gemini-deploy/ts-sql-8086,/usr/local/opengemini/gemini-log/logs/ts-sql-8086
ts-sql vmw-c.servers.com 8086 linux/amd64 /usr/local/opengemini/gemini-deploy/ts-sql-8086,/usr/local/opengemini/gemini-log/logs/ts-sql-8086
ts-sql vmw-d.servers.com 8086 linux/amd64 /usr/local/opengemini/gemini-deploy/ts-sql-8086,/usr/local/opengemini/gemini-log/logs/ts-sql-8086
ts-server vmw-e.servers.com 8186/8188/8191/8192/8410/8411 linux/amd64 /usr/local/opengemini/gemini-deploy/ts-server-8186,/usr/local/opengemini/gemini-log/logs/ts-server-8186,/usr/local/opengemini/gemini-deploy/ts-server-8186/data
grafana vmw-e.servers.com 3000 linux/amd64 /usr/local/opengemini/gemini-deploy/grafana-3000
Attention:
1. If the topology is not what you expected, check your yaml file.
2. Please confirm there is no port/directory conflicts in same host.
Do you want to continue? [y/N]: (default=N) y
+ Generate SSH keys ⣾ Doing...
+ Download openGemini components
- Download openGemini:v1.2.0 (linux/amd64) ... Done
- Download grafana:v1.2.0 (linux/amd64) ... Done
- Download openGemini:v1.2.0 (linux/amd64) ... Done
Error: Get "https://dl.grafana.com/oss/release/grafana-enterprise-7.5.17.linux-amd64.tar.gz": tls: failed to verify certificate: x509: certificate is not valid for any names, but wanted to match dl.grafana.com
Verbose debug logs has been written to /root/.gemix/logs/gemix-cluster-debug-2024-12-20-11-18-18.log.
解决方法2
- 总体思路 | at
vmw-b
下载 gemix 源代码
修改源码中的 url 或 grafana 的版本
重新编译 gemix
- step0 卸载原来的 gemix at vmw-b
mv /opt/go-projects/opengemini/ /opt/go-projects/opengemini.bak/
mkdir -p /opt/go-projects/opengemini/
ls -la /opt/go-projects/opengemini
rm -f /usr/local/bin/gemix
# 注: 不移除 /etc/profile 中的 GO 相关环境变量
- step1 安装 git | at
vmw-b
yum -y install git
- step2 下载
gemix指定版本的源码
cd /root
git clone -b v1.0.1 https://github.com/openGemini/gemix.git
-b {branch | tag | commit }
- step3 修改代码: 追加通过环境变量
grafanaBaseUrlEnv配置 grafana 下载地址的5行代码
vim /root/gemix/pkg/cluster/operation/download.go
...
if component == spec.ComponentGrafana {
// FIXME: download from opengemini.org
if nodeOS == "darwin" {
arch = "amd64"
}
fileName = fmt.Sprintf("%s-enterprise-%s.%s-%s.tar.gz", component, ver.GrafanaVersion, nodeOS, arch)
// FIX for : https://github.com/openGemini/gemix/issues/67
grafanaBaseUrlEnv := os.Getenv("GRAFANA_BASE_URL");
if grafanaBaseUrlEnv == "" {
grafanaBaseUrlEnv = "https://dl.grafana.com/enterprise/release"; //"https://dl.grafana.com/oss/release" is Deprecated
}
//componentUrl = strings.Join([]string{"https://dl.grafana.com/oss/release", fileName}, "/")
componentUrl = strings.Join([]string{ grafanaBaseUrlEnv, fileName}, "/")
}
...
- step4重新 编译 gemix
- 配置 GOPATH 为
/opt/go-projects/opengemini(略)
echo $GOPATH
- 切换到 go 应用工程 main.go 所在目录,重新编译 gemix ,编译结果放 GOPATH/bin
cd /root/gemix/
go install
ln -s $GOPATH/bin/gemix /usr/local/bin/gemix
- step5 重新开始安装
cd /usr/local/opengemini/
GEMIX_MIRRORS_REPO=gitee.com gemix cluster install gemini-test v1.2.0 ./topology.yaml --user root
推荐文献
HasComponent/getGrafanaVersion
if topo.HasComponent(constant.ComponentGrafana) {
grafanaVersion := getGrafanaVersion(clusterVersion)
grafanaURL := fmt.Sprintf(constant.GrafanaDownloadURLTemplate, grafanaVersion)
tasks = append(tasks, &downloadTask{
name: constant.ComponentGrafana,
src: grafanaURL,
dest: filepath.Join(m.workDir, constant.ComponentGrafana),
checksum: constant.GrafanaChecksum[grafanaVersion],
})
}
https://github.com/openGemini/gemix/blob/main/pkg/cluster/version/version.go#L18
package version
const (
GrafanaVersion = "7.5.17"
)
https://github.com/openGemini/gemix/blob/main/pkg/cluster/operation/download.go#L46
if component == spec.ComponentGrafana {
// FIXME: download from opengemini.org
if nodeOS == "darwin" {
arch = "amd64"
}
fileName = fmt.Sprintf("%s-enterprise-%s.%s-%s.tar.gz", component, ver.GrafanaVersion, nodeOS, arch)
componentUrl = strings.Join([]string{"https://dl.grafana.com/oss/release", fileName}, "/")
}
Install
...
topo := metadata.GetTopology()
...
// tasks which are used to download components, download missing component
downloadCompTasks := buildDownloadCompTasks(clusterVersion, topo, m.logger)
...
downloadCompTasks = append(downloadCompTasks, dlTasks...)
...
ParallelStep("+ Download openGemini components", false, downloadCompTasks...).
...
Q: gemix cluster install ...时,报解压openGemini-1.2.0-linux-amd64.tar.gz包失败:Error: stderr: gzip: stdin: unexpected end of file tar: Unexpected EOF in archive
问题描述
-
gemix cluster install ...时,报解压openGemini-1.2.0-linux-amd64.tar.gz包失败:Error: stderr: gzip: stdin: unexpected end of file tar: Unexpected EOF in archive -
详细日志:
展开详细日志
[root@vmw-b opengemini]# cd /usr/local/opengemini
[root@vmw-b opengemini]# GEMIX_MIRRORS_REPO=gitee.com gemix cluster install gemini-test v1.2.0 ./topology.yaml --user root -p --skip-create-user
Input SSH password:
Please confirm your topology:
Cluster name: gemini-test
Cluster version: v1.2.0
Role Host Ports OS/Arch Directories
---- ---- ----- ------- -----------
ts-meta vmw-b.servers.com 8091/8092/8088/8010 linux/amd64 /usr/local/opengemini/gemini-deploy/ts-meta-8091,/usr/local/opengemini/gemini-log/logs/ts-meta-8091,/data/gemini-data/meta
ts-meta vmw-c.servers.com 8091/8092/8088/8010 linux/amd64 /usr/local/opengemini/gemini-deploy/ts-meta-8091,/usr/local/opengemini/gemini-log/logs/ts-meta-8091,/data/gemini-data/meta
ts-meta vmw-d.servers.com 8091/8092/8088/8010 linux/amd64 /usr/local/opengemini/gemini-deploy/ts-meta-8091,/usr/local/opengemini/gemini-log/logs/ts-meta-8091,/data/gemini-data/meta
ts-store vmw-b.servers.com 8400/8401/8011 linux/amd64 /usr/local/opengemini/gemini-deploy/ts-store-8401,/usr/local/opengemini/gemini-log/logs/ts-store-8401,/data/gemini-data/data
ts-store vmw-c.servers.com 8400/8401/8011 linux/amd64 /usr/local/opengemini/gemini-deploy/ts-store-8401,/usr/local/opengemini/gemini-log/logs/ts-store-8401,/data/gemini-data/data
ts-store vmw-d.servers.com 8400/8401/8011 linux/amd64 /usr/local/opengemini/gemini-deploy/ts-store-8401,/usr/local/opengemini/gemini-log/logs/ts-store-8401,/data/gemini-data/data
ts-sql vmw-b.servers.com 8086 linux/amd64 /usr/local/opengemini/gemini-deploy/ts-sql-8086,/usr/local/opengemini/gemini-log/logs/ts-sql-8086
ts-sql vmw-c.servers.com 8086 linux/amd64 /usr/local/opengemini/gemini-deploy/ts-sql-8086,/usr/local/opengemini/gemini-log/logs/ts-sql-8086
ts-sql vmw-d.servers.com 8086 linux/amd64 /usr/local/opengemini/gemini-deploy/ts-sql-8086,/usr/local/opengemini/gemini-log/logs/ts-sql-8086
ts-server vmw-e.servers.com 8186/8188/8191/8192/8410/8411 linux/amd64 /usr/local/opengemini/gemini-deploy/ts-server-8186,/usr/local/opengemini/gemini-log/logs/ts-server-8186,/usr/local/opengemini/gemini-deploy/ts-server-8186/data
grafana vmw-e.servers.com 3000 linux/amd64 /usr/local/opengemini/gemini-deploy/grafana-3000
Attention:
1. If the topology is not what you expected, check your yaml file.
2. Please confirm there is no port/directory conflicts in same host.
Do you want to continue? [y/N]: (default=N) y
+ Download openGemini components
- Download openGemini:v1.2.0 (linux/amd64) ⣽ Doing...
- Download openGemini:v1.2.0 (linux/amd64) ... Done
- Download grafana:v1.2.0 (linux/amd64) ... Done
- Download openGemini:v1.2.0 (linux/amd64) ⣽ Doing...
- Download openGemini:v1.2.0 (linux/amd64) ... Done
- Prepare vmw-b.servers.com:22 ... Done
- Prepare vmw-c.servers.com:22 ... Done
- Prepare vmw-d.servers.com:22 ... Done
- Prepare vmw-e.servers.com:22 ⣾ Doing...
- Prepare vmw-e.servers.com:22 ... Done
- Mkdir /usr/local/opengemini/gemini-deploy/ts-meta-8091,/usr/local/opengemini/gemini-log/logs/ts-meta-8091,/usr/local/opengemini/gemini-d
- Mkdir /usr/local/opengemini/gemini-deploy/ts-meta-8091,/usr/local/opengemini/gemini-log/logs/ts-meta-8091,/usr/local/opengemini/gemini-d
- Mkdir /usr/local/opengemini/gemini-deploy/ts-meta-8091,/usr/local/opengemini/gemini-log/logs/ts-meta-8091,/usr/local/opengemini/gemini-d
- Mkdir /usr/local/opengemini/gemini-deploy/ts-store-8401,/usr/local/opengemini/gemini-log/logs/ts-store-8401,/usr/local/opengemini/gemini
- Mkdir /usr/local/opengemini/gemini-deploy/ts-store-8401,/usr/local/opengemini/gemini-log/logs/ts-store-8401,/usr/local/opengemini/gemini
- Mkdir /usr/local/opengemini/gemini-deploy/ts-store-8401,/usr/local/opengemini/gemini-log/logs/ts-store-8401,/usr/local/opengemini/gemini
- Mkdir /usr/local/opengemini/gemini-deploy/ts-sql-8086,/usr/local/opengemini/gemini-log/logs/ts-sql-8086,/usr/local/opengemini/gemini-dep
- Mkdir /usr/local/opengemini/gemini-deploy/ts-sql-8086,/usr/local/opengemini/gemini-log/logs/ts-sql-8086,/usr/local/opengemini/gemini-dep
- Mkdir /usr/local/opengemini/gemini-deploy/ts-sql-8086,/usr/local/opengemini/gemini-log/logs/ts-sql-8086,/usr/local/opengemini/gemini-dep
- Mkdir /usr/local/opengemini/gemini-deploy/ts-server-8186,/usr/local/opengemini/gemini-log/logs/ts-server-8186,/usr/local/opengemini/gemi
- Mkdir /usr/local/opengemini/gemini-deploy/grafana-3000,/usr/local/opengemini/gemini-deploy/grafana-3000/log,/usr/local/opengemini/gemini
- Mkdir /usr/local/opengemini/gemini-deploy/grafana-3000,/usr/local/opengemini/gemini-deploy/grafana-3000/log,/usr/local/opengemini/gemini
- Copy required components -> vmw-b.servers.com ... Done
- Copy required components -> vmw-c.servers.com ... Done
- Copy required components -> vmw-d.servers.com ... Done
- Copy required components -> vmw-e.servers.com ... Done
- Deploy openGemini -> vmw-b.servers.com ... Done
- Deploy openGemini -> vmw-c.servers.com ... Done
- Deploy openGemini -> vmw-d.servers.com ... Done
- Deploy openGemini -> vmw-e.servers.com ⣻ Doing...
Error: stderr: gzip: stdin: unexpected end of file
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now
: executor.ssh.execute_failed: Failed to execute command over SSH for 'root@vmw-b.servers.com:22' {ssh_stderr: gzip: stdin: unexpected end of file
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now
, ssh_stdout: , ssh_command: export LANG=C; PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin tar --no-same-owner -zxf /usr/local/opengemini/gemini-deploy/ts-meta-8091/bin/openGemini-1.2.0-linux-amd64.tar.gz -C /usr/local/opengemini/gemini-deploy/ts-meta-8091/bin --wildcards '*ts-meta' && mv /usr/local/opengemini/gemini-deploy/ts-meta-8091/bin/usr/bin/ts-* /usr/local/opengemini/gemini-deploy/ts-meta-8091/bin && rm -r /usr/local/opengemini/gemini-deploy/ts-meta-8091/bin/usr && rm /usr/local/opengemini/gemini-deploy/ts-meta-8091/bin/openGemini-1.2.0-linux-amd64.tar.gz}, cause: Process exited with status 2
Verbose debug logs has been written to /root/.gemix/logs/gemix-cluster-debug-2024-12-20-19-56-43.log.
原因分析
- step1 尝试自己执行一下
tar命令
tar --no-same-owner -zxf /usr/local/opengemini/gemini-deploy/ts-meta-8091/bin/openGemini-1.2.0-linux-amd64.tar.gz -C /usr/local/opengemini/gemini-deploy/ts-meta-8091/bin --wildcards '*ts-meta'
或: tar --no-same-owner -zxf /usr/local/opengemini/gemini-deploy/ts-server-8186/bin/openGemini-1.2.0-linux-amd64.tar.gz -C /usr/local/opengemini/gemini-deploy/ts-server-8186/bin --wildcards '*ts-server'
或: tar --no-same-owner -zxf /usr/local/opengemini/gemini-deploy/ts-meta-8091/bin/openGemini-1.2.0-linux-amd64.tar.gz -C /usr/local/opengemini/gemini-deploy/ts-meta-8091/bin
均报一样的错:
Error: stderr: gzip: stdin: unexpected end of file
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now
那么,猜测:要么文件损坏(文件下载不全)了,要么权限不足(但
tar --no-same-owner,加上所有操作、问题目录、问题压缩包,都始终用的root用户,不应该是这方面的问题)。
- step2 对比opengemini官网
openGemini-1.2.0-linux-amd64.tar.gz包与本地下载的包的大小或md5 | atvmw-b【根因】
- https://github.com/openGemini/openGemini/releases/tag/v1.2.0 :
openGemini-1.2.0-linux-amd64.tar.gz包的大小: 73MB/root/.gemix/storage/cluster/packages/:openGemini-1.2.0-linux-amd64.tar.gz包的大小: 11MB
[root@vmw-b gemini-deploy]# ls -lh /usr/local/opengemini/gemini-deploy/ts-monitor/bin/openGemini-1.2.0-linux-amd64.tar.gz
-rw-r--r--. 1 root root 11M 12月 19 15:34 openGemini-1.2.0-linux-amd64.tar.gz
[root@vmw-b gemini-deploy]# ll -la /root/.gemix/storage/cluster/clusters/gemini-test/ssh/
总用量 8
drwx------. 2 root root 38 12月 19 15:16 .
drwxr-x---. 3 root root 17 12月 19 15:16 ..
-rw-------. 1 root root 3247 12月 19 15:16 id_rsa
-rw-------. 1 root root 725 12月 19 15:16 id_rsa.pub
[root@vmw-b packages]# ls -lh /root/.gemix/storage/cluster/packages/
总用量 64M
-rw-r--r--. 1 root root 511 12月 19 15:35 checksums.txt
-rw-r--r--. 1 root root 53M 12月 20 16:32 grafana-enterprise-7.5.17.linux-amd64.tar.gz
-rw-r--r--. 1 root root 11M 12月 19 15:34 openGemini-1.2.0-linux-amd64.tar.gz
解决方法
注:经验证,重新执行
gemix cluster install ...这个命令,无法解决此问题。
- step1 删除或备份原包 | at
vmw-b
cd /root/.gemix/storage/cluster/packages/
mv openGemini-1.2.0-linux-amd64.tar.gz openGemini-1.2.0-linux-amd64.tar.gz.bak
- step2 继续开始安装
[root@vmw-b opengemini]# cd /usr/local/opengemini
[root@vmw-b opengemini]# GEMIX_MIRRORS_REPO=gitee.com gemix cluster install gemini-test v1.2.0 ./topology.yaml --user root -p --skip-create-user
Q:gemix cluster install ...时,报grafana-7.5.17.linux-amd64.tar.gz包找不到
问题描述
[root@vmw-b ~]# cd /usr/local/opengemini
[root@vmw-b opengemini]# GEMIX_MIRRORS_REPO=gitee.com gemix cluster install gemini-test v1.2.0 ./topology.yaml --user root -p --skip-create-user
Input SSH password:
Please confirm your topology:
Cluster name: gemini-test
Cluster version: v1.2.0
Role Host Ports OS/Arch Directories
...
Do you want to continue? [y/N]: (default=N) y
+ Download openGemini components
+ Generate SSH keys ... Done
- Download openGemini:v1.2.0 (linux/amd64) ⣷ Doing...
- Download grafana:v1.2.0 (linux/amd64) ⣾ Doing...
- Download openGemini:v1.2.0 (linux/amd64) ⡿ Doing...
- Download openGemini:v1.2.0 (linux/amd64) ... Done
- Prepare vmw-e.servers.com:22 ⣻ Doing...
- Prepare vmw-b.servers.com:22 ... Done
- Prepare vmw-c.servers.com:22 ... Done
- Prepare vmw-d.servers.com:22 ⣽ Doing...
- Prepare vmw-d.servers.com:22 ... Done
...
- Mkdir /usr/local/opengemini/gemini-deploy/grafana-3000,/usr/local/opengemini/gemini-deploy/grafana-3000/log,/usr/local/opengemini/gemini-deploy/grafan
- Copy required components -> vmw-c.servers.com ... Done
- Copy required components -> vmw-d.servers.com ... Done
- Copy required components -> vmw-e.servers.com ⣷ Doing...
- Copy required components -> vmw-b.servers.com ... Done
- Deploy openGemini -> vmw-b.servers.com ... Done
- Deploy openGemini -> vmw-c.servers.com ... Done
- Deploy openGemini -> vmw-d.servers.com ... Done
- Deploy openGemini -> vmw-e.servers.com ⣷ Doing...
Error: failed to scp /root/.gemix/storage/cluster/packages/grafana-7.5.17.linux-amd64.tar.gz to vmw-e.servers.com:/usr/local/opengemini/gemini-deploy/grafana-3000/bin/grafana-7.5.17.linux-amd64.tar.gz: failed to scp /root/.gemix/storage/cluster/packages/grafana-7.5.17.linux-amd64.tar.gz to root@vmw-e.servers.com:/usr/local/opengemini/gemini-deploy/grafana-3000/bin/grafana-7.5.17.linux-amd64.tar.gz: open /root/.gemix/storage/cluster/packages/grafana-7.5.17.linux-amd64.tar.gz: no such file or directory
Verbose debug logs has been written to /root/.gemix/logs/gemix-cluster-debug-2024-12-20-20-36-11.log.
问题分析
- 对比查看先前在其他环境
grafana-7.5.17.linux-amd64.tar.gz包的内部目录结构: 一致

- 查验先前在其他环境
grafana-7.5.17.linux-amd64.tar.gz包的md5码:不一致
[root@vmw-b ~]# ll /root/.gemix/storage/cluster/packages/
总用量 190068
-rw-r--r--. 1 root root 511 12月 19 15:35 checksums.txt
-rw-r--r--. 1 root root 52227346 12月 20 20:47 grafana-7.5.17.linux-amd64.tar.gz (现在从其他环境上传上来的包,原本没有此包)
-rw-r--r--. 1 root root 55380215 12月 20 16:32 grafana-enterprise-7.5.17.linux-amd64.tar.gz
-rw-r--r--. 1 root root 75952457 12月 20 20:29 openGemini-1.2.0-linux-amd64.tar.gz
-rw-r--r--. 1 root root 11058500 12月 19 15:34 openGemini-1.2.0-linux-amd64.tar.gz.bak
[root@vmw-b ~]# cd /root/.gemix/storage/cluster/packages/
[root@vmw-b packages]# md5sum grafana-7.5.17.linux-amd64.tar.gz
e9e36c2e9ec8a4e7ef3f2e888c81e624 grafana-7.5.17.linux-amd64.tar.gz
[root@vmw-b packages]# md5sum grafana-enterprise-7.5.17.linux-amd64.tar.gz
df94278aeab262a7175a7951e869d1ad grafana-enterprise-7.5.17.linux-amd64.tar.gz
- 结论:
gemix在【下载阶段】下载的包:https://dl.grafana.com/oss/release/grafana-enterprise-7.5.17.linux-amd64.tar.gz
即 https://dl.grafana.com/enterprise/release/grafana-enterprise-7.5.17.linux-amd64.tar.gz
/root/.gemix/storage/cluster/packages/grafana-enterprise-7.5.17.linux-amd64.tar.gz(md5=df94278aeab262a7175a7951e869d1ad)
gemix在【部署阶段】需要的包:
/root/.gemix/storage/cluster/packages/grafana-7.5.17.linux-amd64.tar.gz(md5=e9e36c2e9ec8a4e7ef3f2e888c81e624)
解决方法
- 重命名问题包,试试
[root@vmw-b packages]# cp grafana-enterprise-7.5.17.linux-amd64.tar.gz grafana-7.5.17.linux-amd64.tar.gz
Q: gemix cluster install ...成功的安装过程日志?(样例)
[root@vmw-b ~]# cd /usr/local/opengemini/
[root@vmw-b opengemini]# GEMIX_MIRRORS_REPO=gitee.com gemix cluster install gemini-test v1.2.0 ./topology.yaml --user root -p --skip-create-user
Input SSH password:
Please confirm your topology:
Cluster name: gemini-test
Cluster version: v1.2.0
Role Host Ports OS/Arch Directories
---- ---- ----- ------- -----------
ts-meta vmw-b.servers.com 8091/8092/8088/8010 linux/amd64 /usr/local/opengemini/gemini-deploy/ts-meta-8091,/usr/local/opengemini/gemini-log/logs/ts-meta-8091,/data/gemini-data/meta
ts-meta vmw-c.servers.com 8091/8092/8088/8010 linux/amd64 /usr/local/opengemini/gemini-deploy/ts-meta-8091,/usr/local/opengemini/gemini-log/logs/ts-meta-8091,/data/gemini-data/meta
ts-meta vmw-d.servers.com 8091/8092/8088/8010 linux/amd64 /usr/local/opengemini/gemini-deploy/ts-meta-8091,/usr/local/opengemini/gemini-log/logs/ts-meta-8091,/data/gemini-data/meta
ts-store vmw-b.servers.com 8400/8401/8011 linux/amd64 /usr/local/opengemini/gemini-deploy/ts-store-8401,/usr/local/opengemini/gemini-log/logs/ts-store-8401,/data/gemini-data/data
ts-store vmw-c.servers.com 8400/8401/8011 linux/amd64 /usr/local/opengemini/gemini-deploy/ts-store-8401,/usr/local/opengemini/gemini-log/logs/ts-store-8401,/data/gemini-data/data
ts-store vmw-d.servers.com 8400/8401/8011 linux/amd64 /usr/local/opengemini/gemini-deploy/ts-store-8401,/usr/local/opengemini/gemini-log/logs/ts-store-8401,/data/gemini-data/data
ts-sql vmw-b.servers.com 8086 linux/amd64 /usr/local/opengemini/gemini-deploy/ts-sql-8086,/usr/local/opengemini/gemini-log/logs/ts-sql-8086
ts-sql vmw-c.servers.com 8086 linux/amd64 /usr/local/opengemini/gemini-deploy/ts-sql-8086,/usr/local/opengemini/gemini-log/logs/ts-sql-8086
ts-sql vmw-d.servers.com 8086 linux/amd64 /usr/local/opengemini/gemini-deploy/ts-sql-8086,/usr/local/opengemini/gemini-log/logs/ts-sql-8086
ts-server vmw-e.servers.com 8186/8188/8191/8192/8410/8411 linux/amd64 /usr/local/opengemini/gemini-deploy/ts-server-8186,/usr/local/opengemini/gemini-log/logs/ts-server-8186,/usr/local/opengemini/gemini-deploy/ts-server-8186/data
grafana vmw-e.servers.com 3000 linux/amd64 /usr/local/opengemini/gemini-deploy/grafana-3000
Attention:
1. If the topology is not what you expected, check your yaml file.
2. Please confirm there is no port/directory conflicts in same host.
Do you want to continue? [y/N]: (default=N) y
+ Download openGemini components
+ Generate SSH keys ⣾ Doing...
- Download openGemini:v1.2.0 (linux/amd64) ⣟ Doing...
- Download openGemini:v1.2.0 (linux/amd64) ... Done
- Download openGemini:v1.2.0 (linux/amd64) ⣯ Doing...
+ Initialize target host environments
- Prepare vmw-e.servers.com:22 ... Done
- Prepare vmw-b.servers.com:22 ... Done
- Prepare vmw-c.servers.com:22 ... Done
- Prepare vmw-d.servers.com:22 ⣾ Doing...
- Prepare vmw-d.servers.com:22 ... Done
- Mkdir /usr/local/opengemini/gemini-deploy/ts-meta-8091,/usr/local/opengemini/gemini-log/logs/ts-meta-8091,/usr/local/opengemini/gemini-deploy/ts-m
- Mkdir /usr/local/opengemini/gemini-deploy/ts-meta-8091,/usr/local/opengemini/gemini-log/logs/ts-meta-8091,/usr/local/opengemini/gemini-deploy/ts-m
- Mkdir /usr/local/opengemini/gemini-deploy/ts-meta-8091,/usr/local/opengemini/gemini-log/logs/ts-meta-8091,/usr/local/opengemini/gemini-deploy/ts-m
- Mkdir /usr/local/opengemini/gemini-deploy/ts-store-8401,/usr/local/opengemini/gemini-log/logs/ts-store-8401,/usr/local/opengemini/gemini-deploy/ts
- Mkdir /usr/local/opengemini/gemini-deploy/ts-store-8401,/usr/local/opengemini/gemini-log/logs/ts-store-8401,/usr/local/opengemini/gemini-deploy/ts
- Mkdir /usr/local/opengemini/gemini-deploy/ts-store-8401,/usr/local/opengemini/gemini-log/logs/ts-store-8401,/usr/local/opengemini/gemini-deploy/ts
- Mkdir /usr/local/opengemini/gemini-deploy/ts-sql-8086,/usr/local/opengemini/gemini-log/logs/ts-sql-8086,/usr/local/opengemini/gemini-deploy/ts-sql-8086/bin,/usr/local/opengemini/gemini-deploy/ts-sql-8086/conf,/usr/local/opengemini/gemini-deploy/ts-sql-8086/scripts, -> vmw-b.servers.com ⣽ Doing.
- Mkdir /usr/local/opengemini/gemini-deploy/ts-sql-8086,/usr/local/opengemini/gemini-log/logs/ts-sql-8086,/usr/local/opengemini/gemini-deploy/ts-sql
- Mkdir /usr/local/opengemini/gemini-deploy/ts-sql-8086,/usr/local/opengemini/gemini-log/logs/ts-sql-8086,/usr/local/opengemini/gemini-deploy/ts-sql
- Mkdir /usr/local/opengemini/gemini-deploy/ts-sql-8086,/usr/local/opengemini/gemini-log/logs/ts-sql-8086,/usr/local/opengemini/gemini-deploy/ts-sql
- Mkdir /usr/local/opengemini/gemini-deploy/ts-server-8186,/usr/local/opengemini/gemini-log/logs/ts-server-8186,/usr/local/opengemini/gemini-deploy/
- Mkdir /usr/local/opengemini/gemini-deploy/grafana-3000,/usr/local/opengemini/gemini-deploy/grafana-3000/log,/usr/local/opengemini/gemini-deploy/gr
- Mkdir /usr/local/opengemini/gemini-deploy/grafana-3000,/usr/local/opengemini/gemini-deploy/grafana-3000/log,/usr/local/opengemini/gemini-deploy/gr
- Copy required components -> vmw-b.servers.com ... Done
- Copy required components -> vmw-c.servers.com ... Done
- Copy required components -> vmw-d.servers.com ... Done
- Copy required components -> vmw-e.servers.com ... Done
- Deploy openGemini -> vmw-b.servers.com ... Done
- Deploy openGemini -> vmw-c.servers.com ... Done
- Deploy openGemini -> vmw-d.servers.com ... Done
- Deploy openGemini -> vmw-e.servers.com ⣯ Doing...
- Deploy openGemini -> vmw-e.servers.com ... Done
- Generate config ts-meta -> vmw-b.servers.com:8091 ... Done
- Generate config ts-meta -> vmw-c.servers.com:8091 ... Done
- Generate config ts-meta -> vmw-d.servers.com:8091 ⣻ Doing...
- Generate config ts-store -> vmw-b.servers.com:8401 ... Done
- Generate config ts-store -> vmw-c.servers.com:8401 ... Done
- Generate config ts-store -> vmw-d.servers.com:8401 ... Done
- Generate config ts-sql -> vmw-b.servers.com:8086 ... Done
- Generate config ts-sql -> vmw-c.servers.com:8086 ... Done
- Generate config ts-sql -> vmw-d.servers.com:8086 ... Done
- Generate config ts-server -> vmw-e.servers.com:8186 ... Done
- Generate config grafana -> vmw-e.servers.com:3000 ⢿ Doing...
- Generate config grafana -> vmw-e.servers.com:3000 ... Done
- Generate config ts-monitor -> vmw-d.servers.com ... Done
- Generate config ts-monitor -> vmw-e.servers.com ... Done
- Generate config ts-monitor -> vmw-b.servers.com ... Done
- Generate config ts-monitor -> vmw-c.servers.com ⣽ Doing...
Cluster `gemini-test` installed successfully, you can start it with command: `gemix cluster start gemini-test`
[root@vmw-b opengemini]#
X 参考文献
- OpenGemini/官方文档
用户指南-快速上手-安装部署(一键安装) | OpenGemini
https://docs.opengemini.org/zh/guide/reference/gemix_manual.html#gemix-概览 【推荐】
- OpenGemini
主仓: https://github.com/openGemini
备份仓: https://gitee.com/mirrors/opengemini
国内二进制下载: https://gitee.com/opengemini/Releases/releases ( 自v1.1.1版本开始支持)
- 历史版本
- OpenGemini/Gemix
https://github.com/openGemini/gemix/blob/main/embed/examples/cluster/topology.example.yaml
https://github.com/openGemini/gemix/blob/v1.0.1/embed/examples/cluster/topology.example.yaml
https://github.com/openGemini/gemix/blob/v1.0.0/embed/examples/cluster/topology.example.yaml
- InfluxDBStudio
通过预置密钥对,开启SSH免密登录
本文链接: https://www.cnblogs.com/johnnyzen
关于博文:评论和私信会在第一时间回复,或直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
日常交流:大数据与软件开发-QQ交流群: 774386015 【入群二维码】参见左下角。您的支持、鼓励是博主技术写作的重要动力!

浙公网安备 33010602011771号