安装clup-server
1. 使用安装包进行安装
先创建操作系统用户clup:
groupadd -g 1910 clupuseradd -g clup -u 1910 -s /bin/bash -m clup# 部分Linux发行版适用以下命令addgroup -g 1910 clupadduser -u 1910 -G clup -s /bin/bash -D clup
把安装包拷贝到操作系统用户clup的任意一个目录下,在操作系统用户clup下执行安装:
bash clup6.0.2.x86_64.bin
这个安装包中实际上是包含一tar压缩包文件,可以用下面的命令把此安装文件中的压缩包解压出来:
bash clup6.0.2.x86_64.bin -z
把压缩包从安装包中解压出来的这个功能,通常是用不到的,主要为一些特殊情况下使用。
此安装包安装后会产生以下目录:
- /home/clup/clup-server
- /home/clup/clup-serverX.Y.Z
- /home/clup/csumdb
其中/home/clup/clup-server 为一个链接文件,其指向“/home/clup/clupX.Y.Z”目录。其中此安装程序为方便运行命令,已经把“/home/clup/clup-server/bin”目录放到了PATH环境变量中了。
2. clup-server的配置
clup-server的配置文件为/home/clup/clup-server/conf/clup.conf,内容如下:
#格式为 key = value# ++++++++++++++++++++++++++++++++ 网络 ++++++++++++++++++++++++++++++++# 网络地址(即IP地址与掩码做and位运算后的值),本cluster软件将运行在此网络中,如果主机有多个IP地址,则使用这个网络内的IP地址做为通信的IP#network=192.168.56.0network=10.197.160.0# 设置用于检查是否是自己变成了孤岛的检查IP,可以为逗号分隔的多个ip,如果这些IP能ping通,说明不是自己不是孤岛,注意最多设置三个IP,多余的被忽略#probe_island_ip=192.168.56.1,192.168.0.1probe_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 = 4242agent_rpc_port = 4243# websocket的端口server_ws_port = 4244agent_ws_port = 4245agent_ws_token = cdbmgr# ++++++++++++++++++++++++++++++++ WEB页面 ++++++++++++++++++++++++++++++++# 当把http_auth设置为0时,用admin用户登录,输入任何密码都可以登录,当忘记密码时的就可以使用解决方法http_auth = 1# WEB界面无操作时的过期时间# session_expired_secs = 600# 前端管理界面web监听端口#http_port = 8080http_port = 8090# 如果处于安全考虑,禁止使用webterm,可以把这个参数设置为1disable_webterm = 0# ++++++++++++++++++++++++++++++++ CLup数据库连接 ++++++++++++++++++++++++++++++++# 数据库连接配置db_host = 127.0.0.1db_port = 3500db_user = clupappdb_pass = clupMgr232db_name = clup# 当配置了强制reset机器的命令时,执行完此命令之后,是否检查命令的返回值,如果设置为1,则不管命令执行成功还是失败,都认为成功继续进行HA切换。# 如果设置为0,则如果reset命令执行失败,则HA切换失败ignore_reset_cmd_return_code = 0# csumdb的路径:csumdb_path=/home/clup/csumdb# psql_cmd的路径:psql_cmd=/home/clup/csumdb/pgsql/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 | 网络地址,本cluster软件将运行在此网络中 |
| mmn_host_list | clup集群的ip地址,逗号分隔,如果不是集群模式,需要注释掉 |
| probe_island_ip | 设置用于检查是否是自己变成了孤岛的检查IP,可以为逗号分隔的多个ip,如果这些IP通ping通,说明不是自己不是孤岛,注意最多设置三个IP,多余的被忽略 |
| internal_rpc_pass | agent与服务器之间通信的密码 |
| server_rpc_port | 服务端rpc端口,如果是集群模式,所有的rpc端口需要相同 |
| agent_rpc_port | 客户端rpc端口 |
| http_auth | 前端web界面是否需要登录,1:需要登录,0:跳过登录 |
| http_port | 前端web界面端口 |
| cstlb_token | cstlb负载均衡的token |
| db_host | 数据库ip |
| db_port | 数据库端口 |
| db_user | 数据库用户 |
| db_pass | 数据库密码 |
| db_name | 数据库名 |
| server_ws_port | 服务端websocket端口 |
| agent_ws_port | 客户端websocket端口 |
| agent_ws_token | 客户端websocket的token |
| csumdb_path | csumdb数据库的主路径 |
| psql_cmd | 设置psql的路径 |
| session_expired_secs | 前端web界面的过期时间,单位秒 |
配置项说明如下:
- 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。
- psql_cmd=/home/clup/csumdb/pgsql/bin/psql: 请把这个路径改成csumdb实际软件的目录。
3. 启动clup-server
安装完成后,我们可以启动cLup-server了:
clup-server start
如果需要虚拟机、LXC管理功能,还需要启动以下两个服务:
# root下为clup-dhcpd服务开放1000以下端口的访问权限setcap 'cap_net_bind_service=+ep' /home/clup/clup-server/bin/clup-dhcpdclup-dhcpd startclup-webvnc start
clup-dhcpd是一个DHCP服务器,为虚拟机自动分配IP地址和主机名,而clup-webvnc是给虚拟机提供WEB形式的控制台,如果不使用虚拟机功能,也可以不启动这两个服务。
执行上面的命令之后会自动让这几个服务进程立即进入到后台运行的状态。
我们可以用下面的命令查看运行的状态:
clup-server statusclup-dhcpd statusclup-webvnc status
当然,我们也可以用下面的命令停止clup-server的运行:
clup-server stopclup-dhcpd stopclup-webvnc stop
4. 查看日志
如果没有成功启动,可以查看日志文件/home/clup/clup-server/logs/clup-server.log中查看没有启动的原因。
5. 开机自启动服务
上面的方法中,机器重启后,服务不会自动启动起来,需要把clup-server服务设置为开机自启动:
clup-server auto_start
如果想去掉开机自启动:
clup-server auto_start -s
6. CLup的元数据库
在安装clup-server模块时,会自动安装一个元数据库,我们称之为csumdb,其在目录“/home/clup/csumdb”目录下,我们运行psql登陆此数据库(默认密码csuMgr232)后会看到如下用户:
csumdb=> \duList of rolesRole name | Attributes | Member of-----------+------------------------------------------------------------+-----------csuapp | | {}csumdb | Superuser, Create role, Create DB, Replication, Bypass RLS | {}有如下数据库:csumdb=> \lList of databasesName | Owner | Encoding | Collate | Ctype | Access privileges-----------+--------+----------+-------------+-------------+-------------------csumdb | csuapp | UTF8 | en_US.UTF-8 | en_US.UTF-8 |postgres | csumdb | UTF8 | en_US.UTF-8 | en_US.UTF-8 |template0 | csumdb | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/csumdb +| | | | | csumdb=CTc/csumdbtemplate1 | csumdb | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/csumdb +| | | | | csumdb=CTc/csumdb(4 rows)
cLup-server第一次启动时会自动在此数据库建立相应的表和一些存储过程。