一、项目介绍
基于K8S的opoenstack私有云平台的监测系统通过对Web应用服务器运行情况的分析统计系统的建设以实现服务器运行数据监控与分析功能。私有云平台是web应用正常运行的核心,为了确保这些网站的稳定运行,势必需要做好对网站服务器的监控。做好对服务器运行的各类异常、服务的运行状态进行及时的监控预警工作,可以帮助网站管理员及时修复一些服务器潜在异常状态,及时处理和修复服务器问题。通过对服务器监控与分析系统的充分研究,结合自身技术储备情况,设计并开发了一套基于SpringBoot后台框架、Mybaits数据库映射框架、以MySQL为底层数据库,利用Bootstrap作为前端布局的私有云平台监控和分析系统。完成了对opoenstack私有云平台的需求分析、功能模块实现的划分、SpringBoot的框架搭建、数据库关系分析与设计以及编码的实现。
opoenstack私有云平台前台主要功能有服务器资源管理功能、实时日志分析监控管理、主机功能、进程管理、Mysql数据源监控管理、服务器接口监控、监控预警、监控分析看板功能等等。通过opoenstack私有云平台可以将各个服务器相关的软件硬件数据持久化到Mysql数据库,通过分析监控各个服务器或者主机的运行情况。
关键词:服务器运行;SpringBoot;MySQL;监控;告警;日志分析
二、开发环境
开发语言:Java
框架:springboot
JDK版本:JDK1.8
服务器:tomcat7
数据库:mysql
数据库工具:Navicat11
开发软件:eclipse/myeclipse/idea
Maven包:Maven
————————————————
三、功能介绍
用户和管理员操作流程分为以下五个步骤:
1.用户可以管理私有云平台数据的主机分类、分类下的指标。首页有异常监测播放,用户可以通过点击进入私有云平台链接浏览某个主机私有云平台的具体信息。用户可以根据关键字搜索私有云平台数据。
2.用户可在线录入自己所在的主机的私有云平台数据,在私有云平台详情界面可以监测等等。
3.用户通过录入主机私有云平台数据,对主机进行在线预警。
4.服务器运行员根据不同情况对指标分析,对异常私有云平台进行报警通知。
5.用户买家对自己预警的私有云平台私有云平台数据进行邮件处理,然后进行上报。
总之,系统的私有云平台分析平台模块主要有私有云平台上报,私有云平台日数据编辑以及日数据删除功能,主机分类管理,私有云平台指标数据管理如指标数据删除,异常指标处理等等,私有云平台上报管理,用户管理,异常监测管理,私有云平台报警管理等等。
opoenstack私有云平台是根据私有云平台的业务需求分析,主要有:服务器运行分析员管理员登录、服务器运行分析员登录、服务器运行分析员查询私有云平台、服务器运行分析员根据异常私有云平台预警预报,通过报警功能提交私有云平台数据。下面是进入网上私有云平台服务器运行可以进行的操作流程。具体的UML活动如3-1UML活动关系图所示。
图3-1 系统UML图
四、核心代码
部分代码:
package com.example.controller;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil;
import com.example.common.Result;
import com.example.common.ResultCode;
import com.example.entity.Caiwu;
import com.example.exception.CustomException;
import com.example.service.CaiwuService;
import com.example.utils.MapWrapperUtils;
import com.example.utils.jwt.JwtUtil;
import com.example.vo.CaiwuVo;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping(value = "/caiwu")
public class CaiwuController {
@Resource
private CaiwuService caiwuService;
@PostMapping
public Result<Caiwu> add(@RequestBody CaiwuVo caiwu) {
caiwuService.add(caiwu);
return Result.success(caiwu);
}
@PostMapping("/deleteList")
public Result<Caiwu> deleteList(@RequestBody CaiwuVo caiwu) {
caiwuService.deleteList(caiwu.getList());
return Result.success();
}
@DeleteMapping("/{id}")
public Result delete(@PathVariable Long id) {
caiwuService.delete(id);
return Result.success();
}
@PutMapping
public Result update(@RequestBody CaiwuVo caiwu) {
caiwuService.update(caiwu);
return Result.success();
}
@GetMapping("/{id}")
public Result<Caiwu> detail(@PathVariable Integer id) {
Caiwu caiwu = caiwuService.findById(id);
return Result.success(caiwu);
}
@GetMapping
public Result<List<Caiwu>> all() {
return Result.success(caiwuService.list());
}
@PostMapping("/page")
public Result<CaiwuVo> page(@RequestBody CaiwuVo caiwuVo) {
return Result.success(caiwuService.findPage(caiwuVo));
}
@PostMapping("/login")
public Result login(@RequestBody Caiwu caiwu, HttpServletRequest request) {
if (StrUtil.isBlank(caiwu.getZhanghao()) || StrUtil.isBlank(caiwu.getMima())) {
throw new CustomException(ResultCode.PARAM_LOST_ERROR);
}
Caiwu login = caiwuService.login(caiwu);
// if(!login.getStatus()){
// return Result.error("1001","状态限制,无法登录系统");
// }
if(login != null) {
HashMap hashMap = new HashMap();
hashMap.put("user", login);
Map<String, Object> map = MapWrapperUtils.builder(MapWrapperUtils.KEY_USER_ID,caiwu.getId());
String token = JwtUtil.creatToken(map);
hashMap.put("token", token);
return Result.success(hashMap);
}else {
return Result.error();
}
}
@PutMapping("/updatePassword")
public Result updatePassword(@RequestBody Caiwu info, HttpServletRequest request) {
Caiwu caiwu = caiwuService.findById(info.getId());
String oldPassword = SecureUtil.md5(info.getMima());
if (!oldPassword.equals(caiwu.getMima())) {
return Result.error(ResultCode.PARAM_PASSWORD_ERROR.code, ResultCode.PARAM_PASSWORD_ERROR.msg);
}
info.setMima(SecureUtil.md5(info.getNewPassword()));
Caiwu caiwu1 = new Caiwu();
BeanUtils.copyProperties(info, caiwu1);
caiwuService.update(caiwu1);
return Result.success();
}
}
五、效果图
六、文章目录
目录
1 绪 论 2
1.1 课题研究背景 2
1.2 国内外研究现状 4
1.2.1 国外研究现状 4
1.2.2 国内研究现状 4
1.3 研究内容 4
1.4 研究方法 5
1.4.1 搜索文献法 5
1.4.2 系统对比研究法 5
1.5 论文的章节安排 5
2 系统分析 7
2.1 可行性分析 7
2.1.1 技术可行性分析 7
2.1.2 经济可行性 7
2.1.3 操作可行性 7
2.2 系统需求分析 7
2.2.1 功能需求 8
2.2.2 系统性能需求 9
2.3 关键模块功能分析 9
2.3.1 系统用户登录模块 9
2.3.2 私有云平台主机管理模块 11
2.3.3 私有云平台预警模块 12
2.3.4 私有云平台数据分析模块 13
3 系统设计 14
3.1 需求分析设计 14
3.2 页面设计 14
3.3 数据库设计 15
4 系统功能的实现 21
4.1 系统功能的实现 21
4.1.1 管理员登录 21
4.1.2 用户登录 21
4.1.3 系统资源概要 22
4.1.4 Web主机管理 22
4.1.5 私有云平台主机详情 23
4.1.6 主机CPU监测 24
4.1.7 服务器进程管理 24
4.1.8 数据源管理 25
4.1.9 云服务接口 26
4.1.10 实时日志监测 26
4.1.11 监测告警 27
4.1.12 监测看板 28
4.1.12 云服务集群 28
5 系统测试 29
5.1 测试原则及方法 29
5.2 测试项目测试用例 29
5.3 软件测试结果 34
6 总 结 35
参考文献 35
致 谢 37