Article
天枢AutoOps运维管理系统
介绍天枢AutoOps运维管理系统,基于 Go + Vue3 开发的企业级运维自动化平台,集成主机管理、任务调度、K8s集群管理、监控告警等功能模块。
1.介绍
天枢AutoOps运维管理系统
项目简介
天枢AutoOps运维管理系统(枢=枢纽+中心)是一个基于 Go + vue3 框架开发的企业级运维自动化平台,提供以下核心能力主机管理、配置中心、任务调度、K8s集群管理、监控告警等功能模块。统一平台,全栈治:打破 CI/CD、监控、CMDB、K8s、工单等系统孤岛,数据互通、策略统。最终实现把常用的运维工具全部集成在一起,比如夜莺、jenkins、jumpserver、kuboard、cmdb、Archery,等等,实现运维自动化。
网址:OPSRE/Deviops
大白_同学的个人空间-大白_同学个人主页-哔哩哔哩视频

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
|
docker load -i all_images.tar
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
上传docker-20.10.24.tgz tar xf docker-20.10.24.tgz -C /tmp
cp /usr/local/bin/runc /usr/local/bin/runc.kylin.bak cp /usr/bin/runc /usr/bin/runc.kylin.bak
rm -rf /usr/local/bin/runc rm -rf /usr/bin/runc
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 查看服务状态
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 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
|