安装clup-server
1. 使用.tar.gz的安装包进行安装
在CLup管理模块的机器上需要安装clupX.Y.Z.tar.xz和clupmdbX.Y.Z.el7.x86_64.tar.xz。1、拷贝CLup软件包
到/opt目录下并解压,会产生以下目录:
- /opt/clup
- /opt/clupX.Y.Z
其中/opt/clup 为链接文件指向“/opt/clupX.Y.Z”目录,为方便运行命令,可以把/opt/clup/bin目录加入PATH环境变量中,如在.bash_profile文件中添加:
PATH=$PATH:/opt/clup/bin
export PATH2
安装clupmdbX.Y.Z.el7.x86_64.tar.xz之前,需要建一个用户和组,如下所示:
groupadd -g 570 clupmdb
useradd -u 570 -g 570 -d /opt/clupmdb -m -s /bin/bash clupmdb
拷贝clupmdbX.Y.Z.el7.x86_64.tar.xz软件包到/opt目录下并解压,会产生以下目录:
- /opt/clupmdb
/opt/clupmdb目录包含一个独立的postgresqls程序以及一个独立可以马上启动的一个数据库实例。
这个clupmdb是保存我们CLup程序的配置的一个元数据库,通常启动CLup主程序时,会自动启动这个数据库。
我们也可以手动启动这个数据库:
su - clupmdb
pg_ctl start
运行psql clup
登陆此数据库后会看到如下用户:
CLup=# \du
List of roles Role name | Attributes | Member of
-----------+------------------------------------------------------------+-----------
clupapp | | {}
clupmdb | Superuser, Create role, Create DB, Replication, Bypass RLS | {}如下数据库:
psql -l -d template1
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+---------+----------+-------------+-------------+---------------------
CLup | clupapp | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
postgres | clupmdb | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | clupmdb | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/clupmdb +
| | | | | clupmdb=CTc/clupmdb
template1 | clupmdb | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/clupmdb +
| | | | | clupmdb=CTc/clupmdb
(4 rows)
cLup-server第一次启动时会自动在此数据库建立相应的表和一些存储过程。
2. clup-server的配置
clup-server的配置文件为/opt/clup/conf/clup.conf,内容如下:
#格式为 key = value
# ++++++++++++++++++++++++++++++++ 网络 ++++++++++++++++++++++++++++++++
# 网络地址(即IP地址与掩码做and位运算后的值),本cluster软件将运行在此网络中,如果主机有多个IP地址,则使用这个网络内的IP地址做为通信的IP
#network=192.168.56.0
network=10.197.160.0
# 设置用于检查是否是自己变成了孤岛的检查IP,可以为逗号分隔的多个ip,如果这些IP能ping通,说明不是自己不是孤岛,注意最多设置三个IP,多余的被忽略
#probe_island_ip=192.168.56.1,192.168.0.1
probe_island_ip=10.197.160.1
# ++++++++++++++++++++++++++++++++ 容灾三节点CLup配置 ++++++++++++++++++++++++++++++++
# 如果在3台机器上安装CLup做集群,则需要做下面的设置
# clup_host_list = 192.168.56.50,192.168.56.51,192.168.56.52
# ++++++++++++++++++++++++++++++++ RPC连接 ++++++++++++++++++++++++++++++++
#agent与服务器之间通信的密码
internal_rpc_pass = clup_pass_pwd
# 如果是集群模式,要求所有的CLup的server_rpc_port都相等
server_rpc_port = 4242
agent_rpc_port = 4243
# websocket的端口
server_ws_port = 4244
agent_ws_port = 4245
agent_ws_token = cdbmgr
# ++++++++++++++++++++++++++++++++ WEB页面 ++++++++++++++++++++++++++++++++
# 当把http_auth设置为0时,用admin用户登录,输入任何密码都可以登录,当忘记密码时的就可以使用解决方法
http_auth = 1
# WEB界面无操作时的过期时间
# session_expired_secs = 600
# 前端管理界面web监听端口
#http_port = 8080
http_port = 8090
# 如果处于安全考虑,禁止使用webterm,可以把这个参数设置为1
disable_webterm = 0
# ++++++++++++++++++++++++++++++++ CLup数据库连接 ++++++++++++++++++++++++++++++++
# 数据库连接配置
db_host = 127.0.0.1
db_port = 3500
db_user = clupapp
db_pass = clupMgr232
db_name = clup
# 当配置了强制reset机器的命令时,执行完此命令之后,是否检查命令的返回值,如果设置为1,则不管命令执行成功还是失败,都认为成功继续进行HA切换。
# 如果设置为0,则如果reset命令执行失败,则HA切换失败
ignore_reset_cmd_return_code = 0
# psql_cmd的路径:
psql_cmd=/opt/clupmdb/pgsql-12/bin/psql
# ++++++++++++++++++++++++++++++++ 性能采集数据库连接 ++++++++++++++++++++++++++++++++
#collect_db_host = 127.0.0.1
#collect_db_port = 3600
#collect_db_user = clupapp
#collect_db_pass = clupMgr232
#collect_db_name = clup
配置项说明如下:
- network=10.197.160.0:主程序模块与Agent程序通信的网络,当机器有多个IP时,区分管理走那个网络。
- probe_island_ip=192.168.160.253,192.168.160.254: 用于检查是否是自己变成了孤岛的检查IP,可以为逗号分隔的多个IP。注意最多设置三个IP,多余的被忽略
- internal_rpc_pass = XXXXXX # clup-server和clup-agent程序内部之间通信的密码。
- server_rpc_port = 4242: clup-server的监听端口,用于内部通信。
- agent_rpc_port = 4243: clup-agent程序的监听端口,用于内部通信。
- ignore_reset_cmd_return_code = 1:共享存储的高可用数据库防止脑裂的配置, 当配置了强制reset机器的命令时,执行完此命令之后,是否检查reset命令的返回值,如果设置为1,不管reset命令是否执行成功,都进行HA的切换,如果设置为0,如果reset的命令不成功,则HA切换失败。
- http_auth = 1: 在生产系统应该设置为1,如果设置为0,则登录前端的web界面不需要密码,当忘记密码的情况下,可以把此参数设置为0,然后重新启动主程序后,这时就可以不需要密码就可以登陆系统了,这时就可以重置密码了。
- db_user = clupapp: 登录CLup自身数据库的用户。
- db_pass = CLupMgr232: 登录CLup自身数据库的密码。
- db_host = 127.0.0.1 CLup自身数据库的IP。
- db_port = 3500: CLup自身数据的端口。
- db_name = clup: CLup自身数据库的database名称。
- server_ws_port = 4244: CLup主程序的websocket的端口。
- agent_ws_port = 4245: Agent程序端的websocket的端口。
- agent_ws_token = cdbmgr: websocket的token。
3. 注册服务
接下来就可以启动CLup主程序了,通常我们把CLup注册成系统服务,以便于开机之后,就能自启动,注册方法为执行/opt/clup/bin/clupserver reg_service
:
[root@CLup0 ~]# /opt/clup/bin/clupserver reg_service
2022-05-11 07:42:35,843 INFO CLup v2.0.0 Copyright (c) 2018 HangZhou CSTech.Ltd. All rights reserved.
2022-05-11 07:42:35,843 INFO Start loading configuration ...
2022-05-11 07:42:35,843 INFO Complete configuration loading.
register service sucessfully.
4. 启动服务
注册成功后,我们就可以通过下面的命令启动CLup主程序了:
systemctl start clup
目前只支持注册成systemd类型的的系统服务,Redhat7.X和
CentOS7.X都支持systemd的服务,而Redhat6.X和CentOS6.X不支持systemd的系统服务。
如果无法注册成systemd类型的系统服务,我们可以手工启动CLup的主程序,如下所示:
/opt/clup/bin/clupserver start
实际的运行效果为:
[root@CLup0 ~]# /opt/clup/bin/clupserver start
2022-05-11 01:42:26,564 INFO CLup v3.0.0 Copyright (c) 2018 HangZhou CSTech.Ltd. All rights reserved.
2022-05-11 01:42:26,565 INFO Start loading configuration ...
2022-05-11 01:42:26,566 INFO Complete configuration loading.
运行上面的命令之后,CLup主程序会在后台运行,可以用/opt/clup/bin/clupserver status
查看主程序的状态,如下所示:
[root@CLup0 ~]# /opt/clup/bin/clupserver status
2022-05-11 01:43:09,653 INFO CLup v3.0.0 Copyright (c) 2018 HangZhou CSTech.Ltd. All rights reserved.
2022-05-11 01:43:09,654 INFO Start loading configuration ...
2022-05-11 01:43:09,654 INFO Complete configuration loading.Program(933) is running.
看到最后一行Program(933) is running.表明程序正在运行。
5. 查看日志
如果没有成功启动,可以查看日志文件/opt/clup/logs/clupserver.log中查看没有启动的原因。
6. 停止服务
如果注册成了服务,可以使用systemctl stop clup来停止CLup主程序,当然我们也可以使用/opt/clup/bin/clupserver stop停止CLup主程序:
[root@CLup0 ~]# /opt/clup/bin/clupserver stop
2022-05-11 02:04:52,471 INFO CLup v2.0.0 Copyright (c) 2018 HangZhou CSTech.Ltd. All rights reserved.
2022-05-11 02:04:52,471 INFO Start loading configuration ...
2022-05-11 02:04:52,471 INFO Complete configuration loading.
Wait 4 second for program stopped...
Wait 4 second for program stopped...
Program stopped.