1、崖山数据库介绍
崖山数据库系统YashanDB是深圳计算科学研究院完全自主研发设计的新型数据库系统,融入原创理论,支持单机/主备、共享集群、分布式等多种部署方式,覆盖OLTP/HTAP/OLAP交易和分析混合负载场景,为客户提供一站式的企业级融合数据管理解决方案。
2、监控运维平台YCM介绍
YashanDB Cloud Manager(以下简称YCM)崖山数据库云管平台是一款针对YashanDB的云管理平台,该平台提供了对YashanDB及相关资源的全生命周期管理。提供管理和运维YashanDB,并提供预警和健康检测等监控告警功能,还提供了用户创建、权限授予、资源隔离等系统管理功能。
核心使用场景:包括实例纳管、资源、性能、容量、配置等管理服务,日常监控巡检、故障分析的智能服务,以及备份恢复、高可用等稳定性和安全方面的服务。通过化被动为主动的运维模式,有效地提升数据库运维水平。
3、监控运维平台YCM安装部署
3.1 安装前准备
3.1.1 服务器最低配置
| 托管数据库规模 | 服务器最低配置 |
|---|---|
| 低于10实例 | 2核,2G内存,50G硬盘 |
| 10-100实例 | 8核,16G内存,100G硬盘 |
| 100实例以上 | 16核,32G内存,500G硬盘 |
3.1.2 开放端口
| 服务器 | 默认端口 |
|---|---|
| 管理平台服务器 | 9060,9061,9062,9063,9064 |
| 数据库服务器或其他需要被平台托管的服务器 | 9070和9071 |
3.1.3 安装包下载并上传到服务器
下载网址:https://download.yashandb.com/download

安装包名称:yashandb-cloud-manager-23.3.1.0-linux-x86_64.tar.gz
安装包上传路径:/opt/soft
3.1.4 用户准备
3.1.4.1 创建用户
# 新建yasmanager用户
# useradd -d /home/yasmanager -m yasmanager
# passwd yasmanager
3.1.4.2 授予sudo权限
# 对用户赋权并打开/etc/sudoers文件
# cd /etc
# ll sudoers
# chmod +w sudoers
# vi /etc/sudoers
# 在文件的最后添加如下内容后保存退出
# yasmanager ALL=(ALL)NOPASSWD:ALL
# chmod -w sudoers
3.1.5 应用环境准备
3.1.5.1 libnsl环境准备
# ldconfig -p | grep libnsl
# 若不存在,可使用以下方式安装
# yum install libnsl
# 或
# apt update && apt-get -y install rpm && rpm -ivh libnsl-2.28-164.el8.aarch64.rpm --nodeps
anguage
3.1.6 数据库环境准备(可选)
后端数据库可选sqlite3或YashanDB,若选择YashanDB,需提前部署好YashanDB的单机环境。
| sqlite3(默认) | 说明 |
|---|---|
| 版本要求 | 3.7.17及之后版本 |
| YashanDB | 说明 |
|---|---|
| 版本要求 | 22.2及之后版本 |
| 部署形态 | 单机数据库 |
| 数据库用户 | 新建yasman用户,赋予dba权限: create user yasman;grant dba to yasman; |
3.1.7 开机自启
管理平台开机自启需要确保对rc.local有可执行权限,可执行以下命令:
# chmod +x /etc/rc.local
管理平台在安装部署过程中会自动将自启程序写入/etc/rc.local,没有该文件或无可执行权限不影响部署。
管理平台部署成功后也可以手动添加,将下列启动程序命令添加到自启配置文件中:
# su {安装用户} -c '{安装路径}/ycm/monit/bin/monit -c {安装路径}/ycm/monit/data/monitrc'
su yasmanager -c '/data/install/ycm/monit/bin/monit -c /data/install/ycm/monit/data/monitrc'
3.2 单节点安装部署
3.2.1 解压安装包
以下操作都用yasmanager用户进行。
# su - yasmanager
$ cd /opt/soft
$ tar -zxvf yashandb-cloud-manager-23.3.1.0-linux-x86_64.tar.gz
3.2.2 修改配置文件
$ cd /opt/soft/ycm
$ vi ./etc/deploy.yml
加入:
server:
install_path: /data/install # 修改安装路径为/data/install
system_user: yasmanager # 修改系统用户为安装用户
# 后端数据库为yashandb时,还需修改以下配置项
dbconfig:
driver: "yashandb" # 后端为yashanDB时,必须指定为yashandb
url: "192.*.*.60:1688" # 包括数据库的所有主备实例及监听端口,逗号分隔
libPath: "/home/yasmanager/yashandb-client/lib" # 使用产品内置客户端无需配置,或者配置为自行安装的客户端lib路径
修改后的配置文件如下:

3.2.3 部署管理平台
sqlite作为后端数据库
# 采用默认的部署配置,使用sqlite作为后端数据库
$ sudo ./ycm-init deploy --conf ./etc/deploy.yml
Copied!
YashanDB作为后端数据库
# 后端数据库为YashanDB
$ sudo ./ycm-init deploy --conf ./etc/deploy.yml --username yasman --password password
本文中使用YashanDB作为后端数据库。操作如下:
$ sudo ./ycm-init deploy --conf ./etc/deploy.yml --username yasman --password password
注意:需要提前在yashandb数据库中创建好yasman用户,否则会提示:
yashandb connection failed: YAS-02143 invalid username/password, login denied
2024-11-28 14:21:41 FATAL db/yashandb.go:22 yashandb connection failed: YAS-02143 invalid username/password, login denied
部署日志如下,可以看到部署了哪些内容以及部署进度:
sudo ./ycm-init deploy --conf ./etc/deploy.yml --username yasman --password ******
2024-11-28 14:45:56 WARN deploy/deploy.go:142 parse yashandb url failed, err YASDB_DATA:192.*.*.60:1688 is not existed
2024-11-28 14:45:56 INFO execer/exec.go:30 exec: bash -c tar -zxf /opt/soft/ycm/packages/yashandb-client-*.tar.gz -C /tmp/ycm_client_20241128144556 starting
2024-11-28 14:45:57 WARN deploy/deploy.go:142 parse yashandb url failed, err YASDB_DATA:192.*.*.60:1688 is not existed
2024-11-28 14:45:57 INFO deploy/deploy.go:200 yashandb lib path is /data/install/ycm/tool/yashandb-client/lib
2024-11-28 14:45:57 INFO deploy/manage.go:39 conf manager starting...
2024-11-28 14:45:57 INFO deploy/deploy.go:339 beginning install ycm
2024-11-28 14:45:57 INFO deploy/deploy.go:248 mkdir ycm installpath success, progress:20
2024-11-28 14:45:57 INFO deploy/deploy.go:248 mkdir ycm-agent installpath success, progress:21
2024-11-28 14:45:57 INFO execer/exec.go:30 exec: bash /opt/soft/ycm/scripts/install.sh ycm yasmanager /data/install/ycm starting
2024-11-28 14:46:07 INFO deploy/deploy.go:261 unzip packages success, progress:30
2024-11-28 14:46:07 INFO deploy/deploy.go:248 mkdir cert path success, progress:32
2024-11-28 14:46:08 INFO deploy/deploy.go:248 generate self signed cert key success, progress:35
2024-11-28 14:46:08 INFO deploy/deploy.go:420 beginning generate ycm config file
2024-11-28 14:46:08 INFO deploy/deploy.go:248 generate ycm.yaml success, progress:40
2024-11-28 14:46:08 INFO deploy/deploy.go:248 generate config.ini success, progress:43
2024-11-28 14:46:08 INFO deploy/deploy.go:248 generate prometheus.yml success, progress:45
2024-11-28 14:46:08 INFO deploy/deploy.go:248 generate loki-local-config.yaml success, progress:47
2024-11-28 14:46:08 INFO deploy/deploy.go:248 generate promtail-local-config.yaml success, progress:48
2024-11-28 14:46:08 INFO deploy/deploy.go:248 generate yasdbpasswd.ini success, progress:50
2024-11-28 14:46:08 INFO deploy/deploy.go:248 check backend database exists table success, progress:59
2024-11-28 14:46:09 INFO model/auto_migrate.go:260 auto migrate all of 91 tables success
2024-11-28 14:46:10 WARN alarm/add_default.go:365 query alarm notify strategy is incorrect, just add default, allns: [], err: <nil>
2024-11-28 14:46:10 INFO execer/exec.go:30 exec: cp -f /data/install/ycm/loki/rules/fake/loki-rules.yaml /data/install/ycm/loki/loki-rules.yaml.bak starting
2024-11-28 14:46:10 INFO execer/exec.go:30 exec: cp -f /data/install/ycm/prometheus/rules.yml /data/install/ycm/prometheus/rules.yml.bak starting
2024-11-28 14:46:10 INFO deploy/deploy.go:248 set conf success, progress:60
2024-11-28 14:46:10 INFO deploy/deploy.go:248 set conf success, progress:65
2024-11-28 14:46:10 INFO deploy/deploy.go:248 init db success, progress:70
2024-11-28 14:46:10 INFO deploy/deploy.go:546 beginning start ycm process
2024-11-28 14:46:10 INFO execer/exec.go:30 exec: chown -R yasmanager:yasmanager /data/install/ycm starting
2024-11-28 14:46:10 INFO deploy/deploy.go:261 chown ycm path success, progress:75
2024-11-28 14:46:10 INFO execer/exec.go:30 exec: chown -R yasmanager:yasmanager /data/install/ycm-agent starting
2024-11-28 14:46:10 INFO deploy/deploy.go:261 chown ycm-agent path success, progress:76
2024-11-28 14:46:10 INFO execer/exec.go:30 exec: chmod 0755 /data/install starting
2024-11-28 14:46:10 INFO deploy/deploy.go:261 chmod path success, progress:78
2024-11-28 14:46:10 INFO execer/exec.go:30 exec: bash /data/install/ycm/scripts/ycm.sh start starting
2024-11-28 14:46:11 INFO deploy/deploy.go:261 start server success, progress:80
2024-11-28 14:46:11 INFO execer/exec.go:30 exec: bash /data/install/ycm/scripts/yashandb_exporter.sh start starting
2024-11-28 14:46:12 INFO deploy/deploy.go:261 start yashandb_exporter success, progress:85
2024-11-28 14:46:12 INFO execer/exec.go:30 exec: bash /data/install/ycm/scripts/prometheus.sh start starting
2024-11-28 14:46:14 INFO deploy/deploy.go:261 start monitor success, progress:88
2024-11-28 14:46:14 INFO execer/exec.go:30 exec: bash /data/install/ycm/scripts/loki.sh start starting
2024-11-28 14:46:15 INFO deploy/deploy.go:261 start loki success, progress:90
2024-11-28 14:46:15 INFO execer/exec.go:30 exec: bash /data/install/ycm/scripts/promtail.sh start starting
2024-11-28 14:46:16 INFO deploy/deploy.go:261 start promtail success, progress:91
2024-11-28 14:46:16 INFO execer/exec.go:30 exec: bash /data/install/ycm/monit/monitctl reload starting
2024-11-28 14:46:16 INFO deploy/deploy.go:261 reload monit success, progress:93
2024-11-28 14:46:16 INFO deploy/deploy.go:304 success, progress:100
[yasmanager@node1 ycm]$
3.2.4 访问管理平台
http://<YCM运维平台所在的服务器ip>:9060
首次登录的用户名和密码:admin/admin
首次登录后会提示修改密码

修改密码后,会进入崖山监控运维平台主界面:

4、YCM使用
4.1 主机管理
路径:主机管理->添加主机

填写主机信息,点“扫描”按钮:

扫描成功后,会出现主机信息:

成功托管的主机列表:

4.2 数据库管理
路径:数据库管理->托管YashanDB数据库

输入数据库信息,点击“检查”按钮
需要注意:om所在主机ip是选择出来的,所以必须先托管om所在的主机才可以选择出ip。

成功托管的数据库列表:

4.3 数据库监控

4.4 主机监控

5、碰到的问题
1、部署ycm的时候提示后台数据库yashan没启动:
sudo ./ycm-init deploy --conf ./etc/deploy.yml --username yasman
[yasmanager@node1 ycm]$
2024-11-28 13:08:49 WARN deploy/deploy.go:142 parse yashandb url failed, err YASDB_DATA:192.*.*.60:1688 is not existed
user yasman password(enter return if no password):
[yasmanager@node1 ycm]$
解决办法:
启动yashan数据库
2、启动yashan数据库提示:
$ yasboot cluster start -c yashandb -m open
dial tcp 192.*.*.60:1675: connect: connection refused
原因:yasboot会通过agent和om进程来管理数据库,agent和om进程没有启动。
解决办法:
# 启动yasom进程【使用实际数据库名称替换yashandb字符串】
yasboot process yasom start -c yashandb
# 启动yasagent进程【使用实际数据库名称替换yashandb字符串】
yasboot process yasagent start -c yashandb
# 查看yasom和yasagent进程
$ ps -ef|grep yashan
yashan 5382 1 0 13:17 ? 00:00:01 /data/yashan/yasdb_home/yashandb/23.2.1.100/bin/yasom -c yashandb -l 192.*.*.60:1675 -d
yashan 5412 1 0 13:18 ? 00:00:00 /data/yashan/yasdb_home/yashandb/23.2.1.100/bin/yasagent -c yashandb -l 192.*.*.60:1676 -d
# 启动yashan数据库
$ yasboot cluster start -c yashandb -m open
type | uuid | name | hostid | index | status | return_code | progress | cost
-----------------------------------------------------------------------------------------------------------
task | 73d19ef2807b9086 | StartYasdbCluster | - | yashandb | SUCCESS | 0 | 100 | 10
------+------------------+-------------------+--------+----------+---------+-------------+----------+------
task completed, status: SUCCESS
6、总结
崖山数据库监控运维平台YCM的安装部署非常丝滑,实例管理、日常监控巡检、故障分析的智能服务,以及备份恢复、高可用等稳定性和安全方面的核心功能可以满足用户的日常维护需要,大大提升了数据库的运维效率。
关于作者:
专注于Oracle、MySQL、PG、OpenGauss和国产数据库的研究,热衷于分享数据库技术。
微信公众号:飞天online
墨天轮:https://www.modb.pro/u/15197
如有任何疑问,欢迎大家留言,共同进步~~~




