项目简介
DBM 是控制台一个数据库运维管理功能模块,包括管理、监控、告警等功能,目标是构建 MySQL 数据库自动化运维能力,支撑 PSI 全量数据库,实现自动化运维。
技术选型
前端
技术 | 说明 |
---|---|
Vue | 前端框架 |
Vue-router | 路由框架 |
Vuex | 全局状态管理框架 |
Ant Design of Vue | 前端 UI 框架 |
Axios | 前端 HTTP 框架 |
Viser | 前端图表框架 |
后端
技术 | 说明 |
---|---|
Spring Boot | 容器 + MVC 框架 |
MyBatis | ORM 框架 |
MyBatis Generator | 数据层代码生成 |
Swagger UI | 文档生产工具 |
Docker | 应用容器引擎 |
Druid | 数据库连接池 |
Lombok | 简化对象封装工具 |
Hibernator-Validator | 验证框架 |
功能概览
- 数据库
- 阿里云 RDS
- 显示列表
- 基本信息
- 监控信息
- 备份恢复
- 日志管理
- 自建 MySQL
- 显示列表
- 基本信息
- 监控信息
- 阿里云 RDS
数据库表
console_db_rds:阿里云 RDS 信息表
1 | /*------- CREATE SQL---------*/ |
console_db_mysql:本地 MySQL 信息表
1 | /*------- CREATE SQL---------*/ |
开发
前端
- 安装 Yarn
1 | cnpm i -g yarn //直接全局安装 |
- 下载代码
1 | git clone -b 分支名 仓库地址 |
- 安装依赖
1 | yarn install |
- 安装 Nginx
1 | brew install nginx |
1 | #user nobody; |
- 修改 Host
1 | sudo vi /etc/hosts |
- 运行
1 | yarn run serve |
- 提交代码到指定分支
1 | git add . |
后端
本地 MySQL 接入监控
安装 mysqld_exporter
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26# 下载安装包
cd /data
wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.linux-amd64.tar.gz
tar -xzf mysqld_exporter-0.12.1.linux-amd64.tar.gz
cd mysqld_exporter-0.12.1.linux-amd64
# 编辑配置文件
vi .my.cnf
[client]
user=hdm
password=Hdm@123!
host=10.133.0.51
port=3306
# 启动
./mysqld_exporter --config.my-cnf=/data/mysqld_exporter-0.12.1.linux-amd64/.my.cnf &
# 检测
ps -ef | grep mysqld_exporter
# 打开防火墙端口:9104
firewall-cmd --zone=public --add-port=9104/tcp
firewall-cmd --reload
# 测试
10.133.0.51:9104注册 consul
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25# 注册
PUT http://10.138.16.192:8500/v1/agent/service/register
{
"id":"mysql_10.133.0.51_3306",
"name":"mysql",
"address":"10.133.0.51",
"port":9104,
"tags":[
"cluster=QD",
"project=TDDS",
"instance=10.133.0.51:3306",
"host=10.133.0.51",
"port=3306",
"env=prd"
]
}
# 查看
GET http://10.138.16.192:8500/v1/catalog/service/mysql
# 注销
PUT http://10.138.16.192:8500/v1/agent/service/deregister/mysql_10.133.0.51_3306
# Prometheus
http://10.138.16.192:9099/targets
获取 CPU、内存、硬盘信息
1 | cat /proc/cpuinfo | grep "cores" | uniq |
打包部署
- 提交代码
1 | # 提交代码到dev分支 |
- 测试:http://x-dev2.qd-ctcc.haier.net/
- 后端打包(新建打包配置)
- 配置名称:database
- 代码仓库:https://git.haier.net/sre/dbm.git
- 镜像仓库:registry.haier.net
- 分支名称:master
- 构建工具:Maven
- Dockerfile:默认
- 后端部署
- go 安装依赖
1 | export GOPROXY=https://goproxy.cn |
- 本地构建配置环境变量
1 | DB_MYSQL=console:suMuCaSu1e@tcp(10.138.228.243:3306)/console?parseTime=true&loc=Local |
- 安装 swagger
1 | go get -u github.com/swaggo/swag/cmd/swag |
- 配置环境变量
1 | HOST_PROMETHEUS=http://10.200.17.45:9090 |
- 转移 docs 文档到 aliyun-adaptor