Compare commits

...

5 Commits

Author SHA1 Message Date
csudata
6d1fab20bf
update src/快速部署.md.
Signed-off-by: csudata <open@csudata.com>
2023-10-12 08:04:04 +00:00
csudata
cc2a434f5f
update src/使用教程.md.
Signed-off-by: csudata <open@csudata.com>
2023-10-09 06:05:36 +00:00
csudata
24204894a5
update src/使用教程.md.
Signed-off-by: csudata <open@csudata.com>
2023-10-09 06:03:20 +00:00
csudata
91a510c5ff
update README.md.
Signed-off-by: csudata <open@csudata.com>
2023-08-30 10:54:20 +00:00
csudata_admin
1203f2a933 发布CLup5.0.2版本,添加社区版本说明.md、快速部署.md、基础使用教程.md三个文档。 2023-08-30 18:48:46 +08:00
64 changed files with 636 additions and 0 deletions

View File

@ -55,3 +55,12 @@ CLup软件从2017年就开始研发第一个正式版本发布于2017年11月
在监控的功能中,监控了一些最有价值的指标,而不是像有些监控工具中,监控了很多指标,但大多数都是没有啥用处的功能。 特色功能是我们有TopSQL的监控。
另外CLup是一套非常容易部署对环境要求很低的高可用集群管理软件如可以在2GB内存的机器上部署和使用对机器的CPU没有要求。之所以可以做到这种程度原因是此软件完全是由我们自己研发的并不是基于一些开源软件上做的二次封装。有一些友商的管理平台是在第三方开源高可用软件上封装的如ZooKeeper、etcd、repmgr或patroni上做的封装导致对环境要求高系统资源占用大等问题。
## 1.4 社区版规划文档
[src/社区版本规划.md · 中启开源/clup社区](https://gitee.com/csudata/clup-community/blob/master/src/%E7%A4%BE%E5%8C%BA%E7%89%88%E6%9C%AC%E8%A7%84%E5%88%92.md)
## 1.5 快速部署文档
[src/快速部署.md · 中启开源/clup社区](https://gitee.com/csudata/clup-community/blob/master/src/%E5%BF%AB%E9%80%9F%E9%83%A8%E7%BD%B2.md)
## 1.6 使用教程
[src/使用教程.md · 中启开源/clup社区](https://gitee.com/csudata/clup-community/blob/master/src/%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B.md)

Binary file not shown.

After

Width:  |  Height:  |  Size: 571 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 171 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 182 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

374
src/使用教程.md Normal file
View File

@ -0,0 +1,374 @@
# CLup 社区版使用教程
## 1. 创建数据库
1.1 登录到clup的web界面点击数据库管理->创建数据库->创建PostgreSQL数据库
![image-20230830161037331](./assets/image-20230830161037331.png)
1.2 填写相关信息操作系统用户如果之前没有创建需要填一个用户的UID填写完成后点击下一步
![image-20230830161205601](./assets/image-20230830161205601.png)
1.3 可以选择修改数据库的参数,如果不清楚需要修改哪些参数,建议保持默认值,点击下一步后再点击一次下一步:
> 注意如果是自己安装的PostgreSQL数据库且没有安装pg_store_plans插件请从参数shared_preload_libraries中去除`pg_store_plans`。
![image-20230830161248453](./assets/image-20230830161248453.png)
1.4 此时来到了提交页面,我们直接点击提交即可:
![image-20230830161340393](./assets/image-20230830161340393.png)
1.5 点击提交后会自动创建目录并初始化数据库,当在日志中看到`Success`时数据库就搭建完成了:
![image-20230830161356286](./assets/image-20230830161356286.png)
1.6 此时我们关闭日志,然后在数据库列表中可以看到数据库正在运行中:
![image-20230830161415980](./assets/image-20230830161415980.png)
1.7 我们可以到机器`10.197.166.36`上查看下:
```sh
[root@pg01 ~]# su - pg10
Last login: Wed Aug 30 04:13:38 EDT 2023
[pg10@pg01 ~]$ psql -Upostgres
psql (10.20 (CSUDATA.COM CentOS 7))
Type "help" for help.
postgres=#
```
1.8 我们创建一个拥有流复制权限的用户,后续搭建备库时使用(当然也可以选择不创建直接使用postgres超级用户也是可以的)
```postgresql
-- 创建一个用户名为replica的用户密码为replica123
postgres=# CREATE USER replica WITH REPLICATION PASSWORD 'replica123';
```
## 2. 搭建备库
2.1 数据库列表->更多->搭备库:
![image-20230830162455031](./assets/image-20230830162455031.png)
2.2 根据页面提示我们输入相关信息这里流复制用户replica是我们之前创建的如果没有创建话直接使用postgres用户也是可以的:
![image-20230830161852342](./assets/image-20230830161852342.png)
* 流复制用户PostgreSQL流复制协议的用户可以填写postgres用户也可以填写一个新的这里填写的是replica这个用户需要先创建。
* 流复制ip用于流复制协议的ip如果是单网卡填写与主机ip相同即可。
* 操作系统用户我们还是填写pg10如果之前没有创建这个用户需要指定一个UID。
> 注意:数据库软件的大版本必须相同,否则会搭建失败。
2.3 点击提交后clup会自动搭建备库当看到Sucess时说明备库已经搭建成功了
![image-20230830162215924](./assets/image-20230830162215924.png)
2.4 此时我们查看数据库列表,可以看到备库正在运行中:
![image-20230830162617674](./assets/image-20230830162617674.png)
## 3. 创建PostgreSQL流复制集群
在创建高可用集群之前需要先准备一个VIP(虚拟IP)这个VIP可以是集群同网段内未被使用的IP可以先使用`ping VIP`测试下IP是否已经被占用。
3.1 HA集群->集群定义->创建集群->创建PostgreSQL流复制集群
![image-20230830162658284](./assets/image-20230830162658284.png)
3.2 填写完相关信息后点击添加第一台机器(第一台机器将作为主库)
![image-20230830162851696](./assets/image-20230830162851696.png)
3.3 我们再添加一台机器作为备库,然后可以再查看下信息是否有误,有错误的话可以删除修改后再添加,如果没有问题就点击下一步:
![image-20230830163016365](./assets/image-20230830163016365.png)
3.4 继续完善集群相关信息:
![image-20230830163111101](./assets/image-20230830163111101.png)
* DB中的用户此为数据库用户一般填写postgres。
* 流复制用户可以填写postgres用户也可以填写一个新的用户名clup会在集群中创建这个用户。
* 集群VIP每个高可用集群都应配置一个VIP(虚拟IP)这个VIP可以填写一个同网段内未使用的IP这里填写的是`10.197.166.222`。
3.5 点击下一步后是集群探测信息,一般保持默认,不需要修改:
![image-20230830163140925](./assets/image-20230830163140925.png)
3.6 再次点击下一步,出现的是集群数据库参数设置,这里主备库的设置是一样的,如需修改指定库的参数,可以在集群创建完成后到数据库列表中修改:
> 注意如果是自己安装的PostgreSQL数据库里面没有安装pg_store_plans插件的话请从参数shared_preload_libraries中去除`pg_store_plans`。
![image-20230830163208923](./assets/image-20230830163208923.png)
3.7 如果不修改参数,继续点击两次下一步,最后点击提交按钮即可:
![image-20230830163236034](./assets/image-20230830163236034.png)
3.8 当在日志中看到Success时说明集群就创建完成了
![image-20230830163306883](./assets/image-20230830163306883.png)
3.8 我们移步到HA管理->详情,可以看到当前的一主一备数据库都在运行中:
![image-20230830163337186](./assets/image-20230830163337186.png)
![image-20230830163352786](./assets/image-20230830163352786.png)
## 4. 主备切换
4.1 接下来我们进行主备切换(手工主备切换,注意需要集群处于离线状态下)HA管理->详情->切换为主库:
![image-20230830163523776](./assets/image-20230830163523776.png)
4.2 点击切换为主库按钮后会有一个消息提示选项,是否保留主备级联关系,这里因为我们只有一主一备,选择是和否结果都是一样的:
![image-20230830163548838](./assets/image-20230830163548838.png)
> 如果是多级级联关系时,选择保留级联关系时,会保持当前的级联关系,将旧主库直接搭到新主库下面,旧主库下的其他备库依旧是旧主库的备库;选择不保留的话,就会将旧主库下的备库都搭建到新主库下。
4.3 点击确定当看到Success时说明备库切换成功我们关闭日志可以看到当前的主库变成了`10.197.166.37`
![image-20230830163613410](./assets/image-20230830163613410.png)
![image-20230830163651180](./assets/image-20230830163651180.png)
4.4 我们返回到HA管理页面点击上线按钮开启集群的高可用模式
![image-20230830163714306](./assets/image-20230830163714306.png)
> 此时集群处于高可用模式下如果检测到主库有故障clup会挑选一个备库切换为主库。
## 5. 数据备份
5.1 添加备份计划:数据备份->备份计划->PG物理备份(全备)
![image-20230830163922335](./assets/image-20230830163922335.png)
5.2 添加相关信息后点击保存即可目录需要提前创建出来并赋予postgres用户读写权限
![image-20230830164148190](./assets/image-20230830164148190.png)
* 保存节点上数据库程序路径数据库软件的bin目录路径注意需要与备份源数据库的大版本相同。
* WAL备份保留时间当创建一次全备后clup会从源数据库中拉取wal日志这里是设置wal日志过期的时间超过这个时间的wal日志会被自动清理以释放备份机的磁盘空间。
* 全量备份保留时间:全量备份的保留时间,超过这个时间的全备会被自动清理,以释放备份机的磁盘空间。
* 全量定时备份时间点(星期):可以选择周一到周日,支持多选。
* 全量定时备份时间点(小时):在选定的全量定时备份时间,整点开始执行全备。
> 注意:如果全量定时备份时间点(星期)选择了今天则创建完备份计划后稍等一会儿程序会自动拉起一个全备。新建的备份计划会显示WAL接收停止此时无需担心因为在下一次全备开始时才会启动WAL接收进程当前这种状态是正常的。
5.3 除了按照备份计划指定的时间点自动备份外我们还可以点击立即备份来执行一次全备也可以输入pg_basebackup的参数
![image-20230830164501418](./assets/image-20230830164501418.png)
![image-20230830165020222](./assets/image-20230830165020222.png)
5.4 当在日志中看到Success时说明全备已经执行完成
![image-20230830165102155](./assets/image-20230830165102155.png)
5.5 我们移步到备份数据,查看备份数据列表:
![image-20230830165210707](./assets/image-20230830165210707.png)
## 6. 恢复数据库
6.1 数据备份-> 恢复数据库-> +恢复数据库,填写相关信息后点击提交:
![image-20230830165659536](./assets/image-20230830165659536.png)
> 注意:数据库软件需要选择与源库的大版本相同的版本。
6.2 当在日志中看到Success时说明数据库已经恢复成功了并且已经还原到指定的时间点(这里因为我们的测试数据库是空的,所以会很快,正常的生产环境需要一定的时间拷贝数据和应用日志)
![image-20230830165847671](./assets/image-20230830165847671.png)
6.3 我们退回到恢复数据库列表,点击刷新按钮,此时可以看到我们恢复出来的数据库:
![image-20230830165953039](./assets/image-20230830165953039.png)
> 注意:这里还原出来的数据库不会设置用户的环境变量,也不会启动数据库。
6.4 我们登录到10.197.166.38主机上,查看还原的数据库:
```sh
[root@clup-club03 ~]# su - postgres
Last login: Wed Aug 30 05:03:53 EDT 2023 on pts/0
[postgres@clup-club03 ~]$ cd /data/pgdata10/
[postgres@clup-club03 pgdata10]$ ls
backup_label log pg_ident.conf pg_replslot pg_stat_tmp PG_VERSION postgresql.conf
base pg_commit_ts pg_logical pg_serial pg_subtrans pg_wal recovery.conf
current_logfiles pg_dynshmem pg_multixact pg_snapshots pg_tblspc pg_xact
global pg_hba.conf pg_notify pg_stat pg_twophase postgresql.auto.conf
[postgres@clup-club03 pgdata10]$
```
6.5 我们可以配置下环境变量,然后启动数据库:
```sh
[postgres@clup-club03 pgdata10]$ vi ~/.bashrc
# .bashrc
# ====== Add by clup init env **do not modify** begin
export PATH=/usr/csupg-10.20/bin:$PATH
export LD_LIBRARY_PATH=/usr/csupg-10.20/lib:$LD_LIBRARY_PATH
export PGDATA=/data/pgdata10
export PGHOST='/tmp'
export PGPORT=5410
# ====== Add by clup init env **do not modify** end
...
# 加载下环境变量
[postgres@clup-club03 pgdata10]$ source ~/.bashrc
[postgres@clup-club03 pgdata10]$
[postgres@clup-club03 pgdata10]$ pg_ctl start
waiting for server to start....2023-08-30 05:08:27.989 EDT [1767] LOG: 00000: listening on IPv4 address "0.0.0.0", port 5410
2023-08-30 05:08:27.989 EDT [1767] LOCATION: StreamServerPort, pqcomm.c:593
2023-08-30 05:08:27.989 EDT [1767] LOG: 00000: listening on IPv6 address "::", port 5410
2023-08-30 05:08:27.989 EDT [1767] LOCATION: StreamServerPort, pqcomm.c:593
2023-08-30 05:08:27.994 EDT [1767] LOG: 00000: listening on Unix socket "/tmp/.s.PGSQL.5410"
2023-08-30 05:08:27.994 EDT [1767] LOCATION: StreamServerPort, pqcomm.c:587
2023-08-30 05:08:28.094 EDT [1767] LOG: 00000: redirecting log output to logging collector process
2023-08-30 05:08:28.094 EDT [1767] HINT: Future log output will appear in directory "log".
2023-08-30 05:08:28.094 EDT [1767] LOCATION: SysLogger_Start, syslogger.c:666
done
server started
```
6.6 由于之前我们创建源库时使用的操作系统用户是pg10在pg_hba.conf中会添加postgres用户的关系映射所以当前直接使用psql无法直接登录需要修改下pg_hba.conf文件
```sh
cd $PGDATA
vi pg_hba.conf
...
local all all peer map=postgres
...
local replication all peer map=postgres
# 去除local后面的map=postgres
```
6.7 重新加载下配置再使用psql就可以进入数据库了:
```sh
[postgres@clup-club03 pgdata10]$ pg_ctl reload
server signaled
[postgres@clup-club03 pgdata10]$ psql
psql (10.20 (CSUDATA.COM CentOS 7))
Type "help" for help.
postgres=#
```
## 7. 集群添加备库节点
7.1 先将集群离线HA集群->HA管理->离线:
![image-20230830172135115](./assets/image-20230830172135115.png)
7.2 数据库管理->数据库列表->更多->搭备库,在`10.197.166.37`下搭建一个备库:
![image-20230830172210141](./assets/image-20230830172210141.png)
7.3 填写相关信息后点击提交即可:
![image-20230830172256110](./assets/image-20230830172256110.png)
7.3 当在日志中看到Success时说明备库搭建成功
![image-20230830172313040](./assets/image-20230830172313040.png)
7.4 我们移步到HA集群->HA管理->详情,可以看见`10.197.166.38`已经在集群里了:
![image-20230830172342109](./assets/image-20230830172342109.png)
## 8. 监控管理
clup提供主机的基本监控以及数据库的基本监控。
### 8.1 主机性能监控
监控管理->主机性能监控->(选择相应的主机)点击主机监控:
![image-20230830172731057](./assets/image-20230830172731057.png)
基本监控栏提供CPU、内存、swap的监控
![image-20230830172815015](./assets/image-20230830172815015.png)
网络监控栏提供网络的收发包、网络流量的监控:
![image-20230830172858099](./assets/image-20230830172858099.png)
磁盘监控栏提供磁盘的流量、IOPS的监控
![image-20230830172932996](./assets/image-20230830172932996.png)
### 8.2 数据库监控
监控管理->数据库监控->(选择相应的主机)点击数据库监控:
![image-20230830173043950](./assets/image-20230830173043950.png)
基本监控栏提供数据库磁盘目录使用率、数据库连接数、WAL日志吞吐率、流复制连接数、备库延迟的监控
![image-20230830173215835](./assets/image-20230830173215835.png)
![image-20230830173227260](./assets/image-20230830173227260.png)
数据库监控栏提供了数据行操作统计、(每秒数据块读数、块命中数)、(每秒的事务数、提交数、回滚数)的监控:
![image-20230830173436866](./assets/image-20230830173436866.png)
TopSQL监控栏需要开启后才会收集信息。注意非必要请不要开启否则可能会导致clup服务端的数据库增长过大使磁盘空间耗尽进而导致程序无法正常运行
![image-20230830173723183](./assets/image-20230830173723183.png)
## 9. 报警管理
注意:社区版不支持报警定义及报警方式配置(发送告警信息),可以查看和标记相关的告警信息。
![image-20230830174244246](./assets/image-20230830174244246.png)
## 10. 用户管理
clup中的用户管理与PostgreSQL中的用户管理类似采用用户和角色两种账户可以为角色分配相关权限然后给用户分配相关角色使其拥有所需的权限。
### 10.1 添加角色
权限管理->角色列表->添加角色:
![image-20230830175014885](./assets/image-20230830175014885.png)
填写用户名,备注信息可以不填:
![image-20230830175116703](./assets/image-20230830175116703.png)
为指定的角色设置权限:
![image-20230830175414514](./assets/image-20230830175414514.png)
### 10.2 添加用户
用户列表->添加用户->添加相关信息后点击立即提交即可:
![image-20230830175705679](./assets/image-20230830175705679.png)
分配角色给新建的用户:
![image-20230830175949739](./assets/image-20230830175949739.png)
![image-20230830180004097](./assets/image-20230830180004097.png)

138
src/快速部署.md Normal file
View File

@ -0,0 +1,138 @@
# 快速部署
## 1. 架构解读
CLup程序分两个模块
- clup-server: 通常需要一台单独的机器安装此模块此管理模块提供WEB界面以及其他的管理功能高可用功能也是由此模块完成。clup-server从这台机器上去探测各个数据库是否正常如果不正常会执行相应的高可用切换动作。要求这台机器可以访问所有的数据库主机。
- clup-agent: 每台数据库主机上都需要安装此模块clup-server模块是通过向每台数据库主机上的clup-agent程序发送命令来完成对每台机器上的数据库的控制。
部署的架构图:
![部署的架构图](https://www.csudata.com/uploadimg/2023050416553525490728.jpg)
## 2. 机器的规划
部署CLup我们使用4台虚拟机操作系统使用CentOS7.6其中一台机器部署clup-server其它3台机器上跑数据库并安装部署clup-agent程序。
| 主机名 | IP | 作用 |
| :-------------- | :------------ | :------------------------- |
| clup-clubServer | 10.197.166.35 | 部署clup-server |
| clup_club01 | 10.197.166.36 | 数据库机器部署clup-agent |
| clup_club02 | 10.197.166.37 | 数据库机器部署clup-agent |
| clup_club03 | 10.197.166.38 | 数据库机器部署clup-agent |
> 注意对于社区版本有CPU的核数限制(最多20核心)可以选择使用2核心虚拟机9台或者4核心虚拟机5台这样就不会超过社区版本的CPU核数限制。如果测试需要更多核心、解锁更多功能可以电话0571-87603386申请一个试用的license。
## 3. 安装clup-server
在10.197.166.35机器上的`/opt`目录下:
```sh
cd /opt
```
安装csumdb数据库模块下载csumdb安装包
```sh
wget https://gitee.com/csudata/clup-community/releases/download/5.0.2/csumdb1.0.0.el7.x86_64.bin
```
执行安装
```sh
[root@clup-clubServer opt]# bash csumdb1.0.0.el7.x86_64.bin
==== Installation is starting ...
==== Installation is complete.
```
安装clup-server模块下载clup-server安装包
```sh
wget https://gitee.com/csudata/clup-community/releases/download/5.0.3/clup5.0.3.el7.x86_64.bin
```
执行安装
```sh
[root@clup-clubServer opt]# bash clup5.0.3.el7.x86_64.bin
==== Installation is starting ...
==== Your ip is 10.197.166.35/20
==== register systemd service ...
register service sucessfully.
please use: "systemctl start clup" to start clup.
==== register systemd service ok.
==== Installation is complete.
# 注意:多网卡时需要输入指定的网络
```
然后我们在浏览器输入 [http://10.197.166.35:8090](http://10.197.166.358090/) 打开WEB界面
![image-20230830160812677](./assets/image-20230830160812677.png)
默认的用户名为admin
默认密码为cstech
输入后就可以登陆CLup的管理界面了。WEB界面中可以管理的数据库当前都是空的还需要在数据库主机中安装clup-agent后才能进一步的操作。
## 4. 安装clup-agent
在需要部署数据库的主机上安装clup-agent。在本示例是在10.197.166.36、10.197.166.37、10.197.166.38机器上安装clup-agent。
下载clup-agent安装程序
```sh
wget https://gitee.com/csudata/clup-community/releases/download/5.0.3/clup-agent5.0.3.el7.x86_64.bin
```
运行:`bash `:
```sh
[root@clup_club01 opt]# bash clup-agent5.0.3.el7.x86_64.bin
...
Installed:
psmisc.x86_64 0:22.20-17.el7
Complete!
==== Your ip is 10.197.166.36/20
```
> 注意安装过程中会自动安装依赖项,一般就只有`psmisc.x86_64`。
需要输入clup-server端的IP地址这里是10.197.166.35,输入后回车即可
```sh
Enter Clup Server IP Addr: 10.197.166.35
Clup Server ip is 10.197.166.35!
==== register systemd service ...
2023-08-06 23:21:18,161 INFO clup-agent v5.0.2beta1 Copyright (c) 2018-2022 CSUDATA.COM All rights reserved.
Created symlink from /etc/systemd/system/multi-user.target.wants/clup-agent.service to /etc/systemd/system/clup-agent.service.
register service sucessfully.
please use: "systemctl start clup-agent" to start clup-agent.
==== register systemd service ok.
==== Installation is complete.
```
等所有机器安装完成后我们登录到clup的web界面上查看系统管理->Agent状态管理
![image-20230830182852064](./assets/image-20230830182852064.png)
通过上图我们可以看到三台机器的状态都是UP表示clup-agent服务正常。
## 5. 安装PostgreSQL数据库
可以使用PostgreSQL官方提供的方法安装PostgreSQL。但这里为了方便大家快速的入门这里提供了一个快速安装的PostgreSQL数据库的方法下载安装包
```sh
# https://gitee.com/csudata/csupg/releases
wget https://gitee.com/csudata/csupg/releases/download/csupg_el7/csupg-14.9.el7.x86_64.bin
```
安装:
```sh
bash csupg-14.9.el7.x86_64.bin
# 数据库软件的目录会生成在/usr下
```

115
src/社区版本规划.md Normal file
View File

@ -0,0 +1,115 @@
# CLUP社区版本规划
## 社区版与商业版功能对比
| 序号 | 功能 | 社区版本 | 商业版本 |
| ---- | -------------------------------- | -------------------- | ------------------------------------------------------------ |
| 1 | 费用 | 永久免费 | 按规模收费 |
| 2 | 支持的操作系统 | CentOS7.X、CentOS8 | CentOS7.X、CentOS8、Rocky Linux 8、Oracle Linux 8、<br />debian11、openEuler、银河麒麟、统信、alpine |
| 3 | 支持的数据库 | PostgreSQL、PolarDB | PostgreSQL、PolarDB |
| 4 | 支持的CPU | x86_64 | x86_64、aarch64(鲲鹏、飞腾等) |
| 5 | 创建数据库 | 可创建3个主库6个备库 | 无限制 |
| 6 | 纳管已有数据库 | 不支持 | 支持 |
| 7 | 启动数据库 | 支持 | 支持 |
| 8 | 停止数据库 | 支持 | 支持 |
| 9 | 删除数据库 | 支持 | 支持 |
| 10 | 查询计划 | 支持 | 支持 |
| 11 | 重启数据库 | 支持 | 支持 |
| 12 | Web端登录主机 | 支持 | 支持 |
| 13 | Web端psql连接 | 支持 | 支持 |
| 14 | 搭建备库 | 支持 | 支持 |
| 15 | 切换上级库 | 支持 | 支持 |
| 16 | 激活备库 | 支持 | 支持 |
| 17 | 修改数据库参数 | 支持 | 支持 |
| 18 | 会话管理 | 支持 | 支持 |
| 19 | 锁管理 | 支持 | 支持 |
| 20 | 创建PostgreSQL流复制高可用集群 | 最多可搭建3套 | 无限制 |
| 21 | 创建PolarDB共享存储高可用集群 | 最多可搭建3套 | 无限制 |
| 22 | 创建PostgreSQL共享存储高可用集群 | 不支持 | 无限制 |
| 23 | 纳管PostgreSQL流复制高可用集群 | 不支持 | 无限制 |
| 24 | 纳管PolarDB共享存储高可用集群 | 不支持 | 无限制 |
| 25 | 纳管PostgreSQL共享盘高可用集群 | 不支持 | 无限制 |
| 26 | 已有备库纳入集群 | 不支持 | 支持 |
| 27 | 集群设置 | 支持 | 支持 |
| 28 | 机房管理 | 支持 | 支持 |
| 29 | 高可用切换 | 支持 | 支持 |
| 30 | 查看备库延迟 | 支持 | 支持 |
| 31 | 查看当前LSN | 支持 | 支持 |
| 32 | 查看集群拓扑图 | 支持 | 支持 |
| 33 | 故障数据库加回集群 | 支持 | 支持 |
| 34 | ESDisk共享盘管理 | 不支持 | 支持 |
| 35 | 集群主机一键登录 | 不支持 | 支持 |
| 36 | 创建PG物理备份的备份计划 | 支持 | 支持 |
| 37 | 创建通用备份的备份计划 | 不支持 | 支持 |
| 38 | 查看备份数据信息 | 支持 | 支持 |
| 39 | 备份数据导入 | 不支持 | 支持 |
| 40 | 恢复数据库 | 支持 | 支持 |
| 41 | 主机性能监控 | 支持 | 支持 |
| 42 | 数据库监控 | 支持 | 支持 |
| 43 | 数据库巡检 | 不支持 | 支持 |
| 44 | 数据库报警定义 | 不支持 | 支持 |
| 45 | 主机报警定义 | 不支持 | 支持 |
| 46 | 报警方式配置 | 不支持 | 支持 |
| 47 | 报警查看 | 支持 | 支持 |
| 48 | 用户管理 | 支持 | 支持 |
| 49 | 用户权限管理 | 支持 | 支持 |
| 50 | Agent状态管理 | 支持 | 支持 |
| 51 | CLUP参数设置 | 不支持 | 支持 |
| 52 | Agent端CPU核心数 | 所有机器合计20核 | 无限制 |
| 53 | 技术支持 | 社区支持 | 专人支持 |
## 社区版最佳实践
### 数据库版本支持
| 序号 | 数据库类型 | 支持版本 |
| ---- | ---------- | ------------- |
| 1 | PostgreSQL | 9.6.x~14.9 |
| 2 | PolarDB | PolarDB社区版 |
> 数据库中需要安装pg_stat_statements插件欢迎下载使用中启开源编译好的PG数据库软件里面已经安装好了常用的插件[csupg: 中启乘数开源的PostgreSQL发行版本](https://gitee.com/csudata/csupg)。
### 规格限制
| 序号 | 项目 | 数量 | 备注 |
| ---- | ---------- | ---- | ------------------------------------------------------------ |
| 1 | 高可用集群 | 3 | 可搭建PostgreSQL或PolarDB共享存储高可用集群PolarDB共享存储高可用集群需要自建共享盘。 |
| 2 | 主库 | 3 | 主库数量与高可用集群的主库数量共享。 |
| 2 | 备库 | 6 | |
| 3 | CPU核心 | 20 | 安装clup-agent机器(部署数据库的机器)的CPU核心数合计。 |
> 根据规格限制最多可以搭建三套一主两备高可用集群每台数据库所在的虚拟机限制2个CPU核心共9台机器。
### 机器准备
| 序号 | 项目 | 规格 | 备注 |
| ---- | ------------ | -------------------------- | ------------------------------------ |
| 1 | CPU架构 | x86_64 | |
| 2 | 操作系统 | CentOS7.X、CentOS8、Rocky8 | 下载对应版本的clup及clup-agent安装包 |
| 3 | clup服务主机 | 2核心4G内存及以上 | 可以是虚拟机存储20GB及以上 |
| 4 | 数据库主机 | 9台2核心的虚拟机 | 也可以是5台4核心的虚拟机 |
## 软件依赖
CLup管理机器上需要安装以下依赖包
```sh
yum install -y tcl tcl-devel tk
```
clup-agent部署的主机上安装以下依赖包
```sh
yum -y install ipmitool psmisc
```
> clup-agent机器上需要安装ipmitool、psmiscclup-agent需要使用ipmitool中的ipmitool命令以及psmisc包中的fuser命令。