头像 四核的基地
Article

天枢AutoOps运维管理系统

介绍天枢AutoOps运维管理系统,基于 Go + Vue3 开发的企业级运维自动化平台,集成主机管理、任务调度、K8s集群管理、监控告警等功能模块。

1.介绍

天枢AutoOps运维管理系统

项目简介

天枢AutoOps运维管理系统(枢=枢纽+中心)是一个基于 Go + vue3 框架开发的企业级运维自动化平台,提供以下核心能力主机管理、配置中心、任务调度、K8s集群管理、监控告警等功能模块。统一平台,全栈治:打破 CI/CD、监控、CMDB、K8s、工单等系统孤岛,数据互通、策略统。最终实现把常用的运维工具全部集成在一起,比如夜莺、jenkins、jumpserver、kuboard、cmdb、Archery,等等,实现运维自动化。

网址:OPSRE/Deviops

大白_同学的个人空间-大白_同学个人主页-哔哩哔哩视频

jg

2.部署docker

1
2
3
4
5
6
3.上传压缩包
[root@elk91 ~]# docker-docker-compose.tar.gz
2.解压软件包
[root@elk91 ~]# tar xf docker-docker-compose.tar.gz
2.安装docker环境
[root@elk91 ~]# ./install-docker.sh i

3.部署天枢AutoOps运维管理系统

3.1 部署前准备

3.1.1 拉取镜像

网速快的可以直接拉取镜像,慢的可以跳过此步骤到3.1.2上传压缩包部署

1
2
3
4
5
6
docker pull crpi-aj3vgoxp9kzh2jx4.cn-hangzhou.personal.cr.aliyuncs.com/zhangfan_k8s/deviops-api:v3.0
docker pull crpi-aj3vgoxp9kzh2jx4.cn-hangzhou.personal.cr.aliyuncs.com/zhangfan_k8s/deviops-web:v3.0
docker pull crpi-aj3vgoxp9kzh2jx4.cn-hangzhou.personal.cr.aliyuncs.com/zhangfan_k8s/pushgateway:v1.9.0
docker pull crpi-aj3vgoxp9kzh2jx4.cn-hangzhou.personal.cr.aliyuncs.com/zhangfan_k8s/redis:7.0-alpine
docker pull crpi-aj3vgoxp9kzh2jx4.cn-hangzhou.personal.cr.aliyuncs.com/zhangfan_k8s/prometheus:v2.47.0
docker pull crpi-aj3vgoxp9kzh2jx4.cn-hangzhou.personal.cr.aliyuncs.com/zhangfan_k8s/mysql:8.0.33

3.1.2压缩包部署镜像

1
2
3
4
5
#1.上传压缩包all_images.tar
#2.导入镜像
docker load -i all_images.tar
#3.验证
docker images

3.2 升级runc版本

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
runc --version
#若runc是runc version 1.0.0-rc3 版本需要升级
上传docker-20.10.24.tgz
tar xf docker-20.10.24.tgz -C /tmp
#备份runc
cp /usr/local/bin/runc /usr/local/bin/runc.kylin.bak
cp /usr/bin/runc /usr/bin/runc.kylin.bak
#删除旧的runc
rm -rf /usr/local/bin/runc
rm -rf /usr/bin/runc
#把runc命令移动到/usr/bin下
cp /tmp/docker/runc /usr/bin/
chmod +x /usr/bin/runc
#刷新
hash -r
#验证
which runc
runc --version

[root@linux docker]#runc --version
runc version 1.1.5
commit: v1.1.5-0-gf19387a6
spec: 1.0.2-dev
go: go1.19.7
libseccomp: 2.5.1

3.3 部署

1
2
3
4
1,上传压缩包
AutoOps-main.zip
2.解压
unzip AutoOps-main.zip

3.3.1 启动所有服务

1
2
3
4
5
6
7
# 脚本+镜像版本+ip+前端端口
cd /root/AutoOps-main/docker
./devops-start.sh v3.0 ip 8080
./devops-start.sh v3.0 10.0.0.199 8080
# v3.0表示版本
# ip 是你本地可以访问的ip
# 8080 是你外部暴露的端口

3.3.2 查看服务状态

1
docker-compose ps

3.3.3 查看服务日志

1
2
3
4
5
6
7
# 查看所有服务日志
docker-compose logs -f

# 查看指定服务日志
docker-compose logs -f devops-api
docker-compose logs -f devops-web
docker-compose logs -f mysql

3.3.4 访问系统

部署完成后需要修改配置时,修改 .env 环境变量配置

编辑 .env 文件,根据实际情况修改配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# ----------------
# 服务端口配置 (如果端口冲突,修改这里)
# ----------------
WEB_PORT=8080 # 前端访问端口
API_PORT=8000 # API后端端口
MYSQL_PORT=3306 # MySQL端口
REDIS_PORT=6379 # Redis端口
PROMETHEUS_PORT=9090 # Prometheus端口
PUSHGATEWAY_PORT=9091 # Pushgateway端口

# ----------------
# 外网访问地址配置 (必改)
# ----------------
# 修改为实际的服务器IP或域名
IMAGE_HOST=http://192.168.1.100:8080 # 或 http://your-domain.com

# ----------------
# 数据库密码 (建议修改)
# ----------------
MYSQL_ROOT_PASSWORD=devops@2025
REDIS_PASSWORD=zhangfan@123

说明:

  • 修改端口: 只需修改 .env 中的端口变量,无需改其他文件
  • 修改后重启: docker-compose down && docker-compose up -d
  • IMAGE_HOST: 必须修改为实际的外网访问地址,否则图片无法正常显示

3.4 服务管理

停止服务

1
docker-compose stop

重启服务

1
docker-compose restart

停止并删除容器

1
docker-compose down

停止并删除容器及数据卷(危险操作)

1
docker-compose down -v

重新构建并启动

1
2
docker-compose up -d --build
访问地址 admin/123456

单独重启某个服务

1
docker-compose restart devops-api

3.5 数据持久化

以下目录数据已持久化到本地,停止容器后数据不会丢失:

  • MySQL数据: ./mysql/data/
  • Redis数据: ./redis/data/
  • Prometheus数据: ./prometheus/data/
  • Pushgateway数据: ./pushgateway/data/
  • API日志: ./api/logs/
  • 上传文件: ./api/upload/

3.6 健康检查

所有服务都配置了健康检查,启动时会自动等待依赖服务就绪:

  • MySQL: 检查数据库连接
  • Redis: 检查 Redis 连接
  • Prometheus: 检查 HTTP 健康端点
  • Pushgateway: 检查 HTTP 健康端点
  • API: 检查 HTTP 健康端点(启动后30秒开始检查)
  • Web: 检查 Nginx HTTP 服务

3.7网络配置

所有服务运行在独立的 Docker 网络 devops-network 中,使用子网 172.20.0.0/16

服务之间通过容器名通信:

  • API 连接 MySQL: mysql:3306
  • API 连接 Redis: redis:6379
  • Prometheus 采集 Pushgateway: pushgateway:9091
  • Web 代理 API: devops-api:8000

3.8 故障排查

1. 容器启动失败

1
2
3
4
5
# 查看容器日志
docker-compose logs <service-name>

# 查看容器状态
docker-compose ps

2. 数据库连接失败

1
2
3
4
5
# 进入 MySQL 容器检查
docker-compose exec mysql mysql -uroot -pdevops@2025

# 检查数据库是否初始化
docker-compose exec mysql mysql -uroot -pdevops@2025 -e "SHOW DATABASES;"

3. API 无法连接数据库

1
2
3
4
5
# 检查网络连通性
docker-compose exec devops-api ping mysql

# 检查 MySQL 是否健康
docker-compose exec mysql mysqladmin ping -h localhost -uroot -pdevops@2025

4. 置数据库

1
2
3
4
5
6
7
8
# 停止服务
docker-compose down

# 删除 MySQL 数据
rm -rf ./mysql/data/*

# 重新启动(会自动初始化数据库)
docker-compose up -d

3.9 端口冲突

如果本机端口被占用,可以修改 docker-compose.yml 中的端口映射:

1
2
ports:
- "8080:80" # 修改为 "18080:80"

3.10 性能优化

MySQL 内存优化

1
2
编辑 `mysql/conf.d/my.cnf`,根据服务器内存调整:
innodb_buffer_pool_size=512M # 建议设置为物理内存的 50-80%

Redis 内存优化

编辑 redis/redis.conf:

1
maxmemory 1gb  # 根据实际情况调整

3.11 备份与恢复

备份数据库

1
docker-compose exec mysql mysqldump -uroot -pdevops@2025 devops > backup_$(date +%Y%m%d).sql

恢复数据库

1
docker-compose exec -T mysql mysql -uroot -pdevops@2025 devops < backup.sql