#升级

管理平台支持通过yasadm工具离线升级管理平台以及管理的主机,将相关的二进制文件替换到新版本。

# 注意事项

  • 升级前需要对管理平台和管理主机执行一次备份,具体操作请查阅备份与恢复
  • 升级过程中会重启相关进程,服务器和托管数据库的监控数据会短暂缺失。
  • 请完成升级前准备要求的各项工作后再运行升级。
  • 升级成功后,需先确认管理平台运行正常,再开放用户业务。
  • 若升级未成功,请运行升级回退。若回退不成功可尝试再次回退,多次回退仍不成功请联系技术支持解决。
  • 升级过程须使用新升级包中的yasadm工具,该工具各命令选项含义及说明请查阅yasadm

# 升级前准备

# 步骤一:获取新版本安装包

请与技术支持确认当前在用管理平台版本是否可直接升级到新版本。目前从23.1.2.100版本开始,支持升级到新版本。

# 步骤二:确认安装目录空间

离线升级会创建一个临时目录($HOME/ycm_{旧版本号}{时间戳},$HOME/ycm-agent{旧版本号}_{时间戳})作为备份目录,该目录包含当前管理平台和ycm-agent的备份文件。请确保升级操作用户拥有足够的存储空间,默认剩余存贮磁盘空间最小为4G。

# 步骤三: 确认升级方式

管理平台支持SSH和rpc两种不同的升级方式,升级管理平台管理的服务器:

  • SSH升级方式(推荐):为默认的升级方式,通过SSH连接服务器执行升级操作,该方式需要提供服务器的SSH用户和密码。

  • rpc升级方式:升级前,在服务器上部署升级agent进程,通过rpc连接升级agent执行升级操作,该方式需要开放升级所需的rpc端口。升级完成后,升级agent会被清理掉。无法提供服务器SSH用户和密码时,可以通过该方式升级。

不同的升级方式对应的检查如下:

SSH方式升级

通过SSH方式升级时,需使用SSH和SFTP服务,请检查各ycm-agent主机的SSH服务是否已开启并允许升级操作用户远程登录。

可通过如下命令检查SSH服务是否已开启:

$ systemctl status sshd.service
● sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2023-04-26 14:32:52 CST; 3 months 6 days ago
     Docs: man:sshd(8)
           man:sshd_config(5)
 Main PID: 6372 (sshd)
   CGroup: /system.slice/sshd.service
           └─6372 /usr/sbin/sshd -D

可通过如下命令检查升级中是否能操作用户远程登录:

使用当前用户SSH连接到当前服务器,SSH可以使用密码或者密钥免密:

$ ssh 用户名@ip -p SSH端口

按照命令提示输入密码,查看是否能够成功连接上当前SSH服务器。

rpc方式升级

通过rpc方式升级时,需使用到升级端口,请检查各ycm-agent服务器用于升级的端口是否可用。默认的升级端口为9072。可通过以下命令进行检查:

# 返回结果有Connection refused,表示该端口没有被占用,可以作为升级的端口
$ telnet ip 端口    # 例如:telnet 192.168.1.2 9072

# 若未安装telnet,执行以下命令
$ sudo yum list telnet*              # 列出telnet相关的安装包
$ sudo yum install telnet-server     # 安装telnet服务
$ sudo yum install telnet.*          # 安装telnet客户端

# 步骤四:检查进程

升级前请确保管理平台和ycm-agent主机的各个进程状态正常,可通过如下命令检查进程状态:

# 检查管理平台的进程
$ sudo /data/install/ycm/monit/monitctl run
Monit 5.29.0 uptime: 20h 35m
┌─────────────────────────────────┬────────────────────────────┬───────────────┐
│ Service Name                    │ Status                     │ Type          │
├─────────────────────────────────┼────────────────────────────┼───────────────┤
│ AchorBase                       │ OK                         │ System        │
├─────────────────────────────────┼────────────────────────────┼───────────────┤
│ ycm                             │ OK                         │ Process       │
├─────────────────────────────────┼────────────────────────────┼───────────────┤
│ yashandb_exporter               │ OK                         │ Process       │
├─────────────────────────────────┼────────────────────────────┼───────────────┤
│ yas-hcs-api                     │ OK                         │ Process       │
├─────────────────────────────────┼────────────────────────────┼───────────────┤
│ promtail                        │ OK                         │ Process       │
├─────────────────────────────────┼────────────────────────────┼───────────────┤
│ prometheus                      │ OK                         │ Process       │
├─────────────────────────────────┼────────────────────────────┼───────────────┤
│ loki                            │ OK                         │ Process       │
├─────────────────────────────────┼────────────────────────────┼───────────────┤
│ hold-ycm                        │ OK                         │ Program       │
├─────────────────────────────────┼────────────────────────────┼───────────────┤
│ hold-yashandb_exporter          │ OK                         │ Program       │
├─────────────────────────────────┼────────────────────────────┼───────────────┤
│ hold-yas-hcs-api                │ OK                         │ Program       │
├─────────────────────────────────┼────────────────────────────┼───────────────┤
│ hold-promtail                   │ OK                         │ Program       │
├─────────────────────────────────┼────────────────────────────┼───────────────┤
│ hold-prometheus                 │ OK                         │ Program       │
├─────────────────────────────────┼────────────────────────────┼───────────────┤
│ hold-loki                       │ OK                         │ Program       │
└─────────────────────────────────┴────────────────────────────┴───────────────┘      

# 检查ycm-agent的进程
$ sudo /data/install/ycm-agent/monit/monitctl run
Monit 5.29.0 uptime: 20h 35m
┌─────────────────────────────────┬────────────────────────────┬───────────────┐
│ Service Name                    │ Status                     │ Type          │
├─────────────────────────────────┼────────────────────────────┼───────────────┤
│ AchorBase                       │ OK                         │ System        │
├─────────────────────────────────┼────────────────────────────┼───────────────┤
│ ycm-agent                       │ OK                         │ Process       │
├─────────────────────────────────┼────────────────────────────┼───────────────┤
│ promtail                        │ OK                         │ Process       │
├─────────────────────────────────┼────────────────────────────┼───────────────┤
│ node_exporter                   │ OK                         │ Process       │
├─────────────────────────────────┼────────────────────────────┼───────────────┤
│ hold-ycm-agent                  │ OK                         │ Program       │
├─────────────────────────────────┼────────────────────────────┼───────────────┤
│ hold-promtail                   │ OK                         │ Program       │
├─────────────────────────────────┼────────────────────────────┼───────────────┤
│ hold-node_exporter              │ OK                         │ Program       │
└─────────────────────────────────┴────────────────────────────┴───────────────┘

# 步骤五:确认后端数据库的类型

请查看安装目录etc/ycm.yaml文件中的DB相关配置,确认管理平台后端数据库的类型。