mirror of
				https://github.com/dromara/RuoYi-Vue-Plus.git
				synced 2025-11-04 16:23:42 +08:00 
			
		
		
		
	remove 移除ruoyi自带服务监控(Admin已全部包含)
This commit is contained in:
		@@ -1,27 +0,0 @@
 | 
			
		||||
package com.ruoyi.web.controller.monitor;
 | 
			
		||||
 | 
			
		||||
import org.springframework.security.access.prepost.PreAuthorize;
 | 
			
		||||
import org.springframework.web.bind.annotation.GetMapping;
 | 
			
		||||
import org.springframework.web.bind.annotation.RequestMapping;
 | 
			
		||||
import org.springframework.web.bind.annotation.RestController;
 | 
			
		||||
import com.ruoyi.common.core.domain.AjaxResult;
 | 
			
		||||
import com.ruoyi.framework.web.domain.Server;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 服务器监控
 | 
			
		||||
 * 
 | 
			
		||||
 * @author ruoyi
 | 
			
		||||
 */
 | 
			
		||||
@RestController
 | 
			
		||||
@RequestMapping("/monitor/server")
 | 
			
		||||
public class ServerController
 | 
			
		||||
{
 | 
			
		||||
    @PreAuthorize("@ss.hasPermi('monitor:server:list')")
 | 
			
		||||
    @GetMapping()
 | 
			
		||||
    public AjaxResult getInfo() throws Exception
 | 
			
		||||
    {
 | 
			
		||||
        Server server = new Server();
 | 
			
		||||
        server.copyTo();
 | 
			
		||||
        return AjaxResult.success(server);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,157 +0,0 @@
 | 
			
		||||
package com.ruoyi.framework.web.domain;
 | 
			
		||||
 | 
			
		||||
import cn.hutool.core.util.NumberUtil;
 | 
			
		||||
import cn.hutool.core.util.StrUtil;
 | 
			
		||||
import cn.hutool.system.*;
 | 
			
		||||
import cn.hutool.system.oshi.CpuInfo;
 | 
			
		||||
import cn.hutool.system.oshi.OshiUtil;
 | 
			
		||||
import com.ruoyi.framework.web.domain.server.*;
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
import oshi.hardware.GlobalMemory;
 | 
			
		||||
import oshi.software.os.FileSystem;
 | 
			
		||||
import oshi.software.os.OSFileStore;
 | 
			
		||||
import oshi.software.os.OperatingSystem;
 | 
			
		||||
 | 
			
		||||
import java.util.LinkedList;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 服务器相关信息
 | 
			
		||||
 *
 | 
			
		||||
 * @author ruoyi
 | 
			
		||||
 */
 | 
			
		||||
@Data
 | 
			
		||||
public class Server {
 | 
			
		||||
    private static final int OSHI_WAIT_SECOND = 1000;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * CPU相关信息
 | 
			
		||||
     */
 | 
			
		||||
    private Cpu cpu = new Cpu();
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 內存相关信息
 | 
			
		||||
     */
 | 
			
		||||
    private Mem mem = new Mem();
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * JVM相关信息
 | 
			
		||||
     */
 | 
			
		||||
    private Jvm jvm = new Jvm();
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 服务器相关信息
 | 
			
		||||
     */
 | 
			
		||||
    private Sys sys = new Sys();
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 磁盘相关信息
 | 
			
		||||
     */
 | 
			
		||||
    private List<SysFile> sysFiles = new LinkedList<SysFile>();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    public void copyTo() {
 | 
			
		||||
        setCpuInfo();
 | 
			
		||||
        setMemInfo();
 | 
			
		||||
        setSysInfo();
 | 
			
		||||
        setJvmInfo();
 | 
			
		||||
        setSysFiles();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 设置CPU信息
 | 
			
		||||
     */
 | 
			
		||||
    private void setCpuInfo() {
 | 
			
		||||
        CpuInfo cpuInfo = OshiUtil.getCpuInfo(OSHI_WAIT_SECOND);
 | 
			
		||||
        cpu.setCpuNum(cpuInfo.getCpuNum());
 | 
			
		||||
        cpu.setTotal(cpuInfo.getToTal());
 | 
			
		||||
        cpu.setSys(cpuInfo.getSys());
 | 
			
		||||
        cpu.setUsed(cpuInfo.getUsed());
 | 
			
		||||
        cpu.setWait(cpuInfo.getWait());
 | 
			
		||||
        cpu.setFree(cpuInfo.getFree());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 设置内存信息
 | 
			
		||||
     */
 | 
			
		||||
    private void setMemInfo() {
 | 
			
		||||
        GlobalMemory memory = OshiUtil.getMemory();
 | 
			
		||||
        mem.setTotal(memory.getTotal());
 | 
			
		||||
        mem.setUsed(memory.getTotal() - memory.getAvailable());
 | 
			
		||||
        mem.setFree(memory.getAvailable());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 设置服务器信息
 | 
			
		||||
     */
 | 
			
		||||
    private void setSysInfo() {
 | 
			
		||||
        HostInfo hostInfo = SystemUtil.getHostInfo();
 | 
			
		||||
        OsInfo osInfo = SystemUtil.getOsInfo();
 | 
			
		||||
        UserInfo userInfo = SystemUtil.getUserInfo();
 | 
			
		||||
        sys.setComputerName(hostInfo.getName());
 | 
			
		||||
        sys.setComputerIp(hostInfo.getAddress());
 | 
			
		||||
        sys.setOsName(osInfo.getName());
 | 
			
		||||
        sys.setOsArch(osInfo.getArch());
 | 
			
		||||
        sys.setUserDir(userInfo.getCurrentDir());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 设置Java虚拟机
 | 
			
		||||
     */
 | 
			
		||||
    private void setJvmInfo() {
 | 
			
		||||
        JavaInfo javaInfo = SystemUtil.getJavaInfo();
 | 
			
		||||
        RuntimeInfo runtimeInfo = SystemUtil.getRuntimeInfo();
 | 
			
		||||
        JavaRuntimeInfo javaRuntimeInfo = SystemUtil.getJavaRuntimeInfo();
 | 
			
		||||
        jvm.setTotal(runtimeInfo.getTotalMemory());
 | 
			
		||||
        jvm.setMax(runtimeInfo.getMaxMemory());
 | 
			
		||||
        jvm.setFree(runtimeInfo.getFreeMemory());
 | 
			
		||||
        jvm.setVersion(javaInfo.getVersion());
 | 
			
		||||
        jvm.setHome(javaRuntimeInfo.getHomeDir());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 设置磁盘信息
 | 
			
		||||
     */
 | 
			
		||||
    private void setSysFiles() {
 | 
			
		||||
        OperatingSystem os = OshiUtil.getOs();
 | 
			
		||||
        FileSystem fileSystem = os.getFileSystem();
 | 
			
		||||
        List<OSFileStore> fsArray = fileSystem.getFileStores();
 | 
			
		||||
        for (OSFileStore fs : fsArray) {
 | 
			
		||||
            long free = fs.getUsableSpace();
 | 
			
		||||
            long total = fs.getTotalSpace();
 | 
			
		||||
            long used = total - free;
 | 
			
		||||
            SysFile sysFile = new SysFile();
 | 
			
		||||
            sysFile.setDirName(fs.getMount());
 | 
			
		||||
            sysFile.setSysTypeName(fs.getType());
 | 
			
		||||
            sysFile.setTypeName(fs.getName());
 | 
			
		||||
            sysFile.setTotal(convertFileSize(total));
 | 
			
		||||
            sysFile.setFree(convertFileSize(free));
 | 
			
		||||
            sysFile.setUsed(convertFileSize(used));
 | 
			
		||||
            sysFile.setUsage(NumberUtil.mul(NumberUtil.div(used, total, 4), 100));
 | 
			
		||||
            sysFiles.add(sysFile);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 字节转换
 | 
			
		||||
     *
 | 
			
		||||
     * @param size 字节大小
 | 
			
		||||
     * @return 转换后值
 | 
			
		||||
     */
 | 
			
		||||
    public String convertFileSize(long size) {
 | 
			
		||||
        long kb = 1024;
 | 
			
		||||
        long mb = kb * 1024;
 | 
			
		||||
        long gb = mb * 1024;
 | 
			
		||||
        if (size >= gb) {
 | 
			
		||||
            return String.format("%.1f GB", (float) size / gb);
 | 
			
		||||
        } else if (size >= mb) {
 | 
			
		||||
            float f = (float) size / mb;
 | 
			
		||||
            return String.format(f > 100 ? "%.0f MB" : "%.1f MB", f);
 | 
			
		||||
        } else if (size >= kb) {
 | 
			
		||||
            float f = (float) size / kb;
 | 
			
		||||
            return String.format(f > 100 ? "%.0f KB" : "%.1f KB", f);
 | 
			
		||||
        } else {
 | 
			
		||||
            return String.format("%d B", size);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,88 +0,0 @@
 | 
			
		||||
package com.ruoyi.framework.web.domain.server;
 | 
			
		||||
 | 
			
		||||
import cn.hutool.core.util.NumberUtil;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * CPU相关信息
 | 
			
		||||
 *
 | 
			
		||||
 * @author ruoyi
 | 
			
		||||
 */
 | 
			
		||||
public class Cpu {
 | 
			
		||||
    /**
 | 
			
		||||
     * 核心数
 | 
			
		||||
     */
 | 
			
		||||
    private int cpuNum;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * CPU总的使用率
 | 
			
		||||
     */
 | 
			
		||||
    private double total;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * CPU系统使用率
 | 
			
		||||
     */
 | 
			
		||||
    private double sys;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * CPU用户使用率
 | 
			
		||||
     */
 | 
			
		||||
    private double used;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * CPU当前等待率
 | 
			
		||||
     */
 | 
			
		||||
    private double wait;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * CPU当前空闲率
 | 
			
		||||
     */
 | 
			
		||||
    private double free;
 | 
			
		||||
 | 
			
		||||
    public int getCpuNum() {
 | 
			
		||||
        return cpuNum;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setCpuNum(int cpuNum) {
 | 
			
		||||
        this.cpuNum = cpuNum;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public double getTotal() {
 | 
			
		||||
        return NumberUtil.round(NumberUtil.mul(total, 100), 2).doubleValue();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setTotal(double total) {
 | 
			
		||||
        this.total = total;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public double getSys() {
 | 
			
		||||
        return NumberUtil.round(NumberUtil.mul(sys / total, 100), 2).doubleValue();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setSys(double sys) {
 | 
			
		||||
        this.sys = sys;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public double getUsed() {
 | 
			
		||||
        return NumberUtil.round(NumberUtil.mul(used / total, 100), 2).doubleValue();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setUsed(double used) {
 | 
			
		||||
        this.used = used;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public double getWait() {
 | 
			
		||||
        return NumberUtil.round(NumberUtil.mul(wait / total, 100), 2).doubleValue();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setWait(double wait) {
 | 
			
		||||
        this.wait = wait;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public double getFree() {
 | 
			
		||||
        return NumberUtil.round(NumberUtil.mul(free / total, 100), 2).doubleValue();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setFree(double free) {
 | 
			
		||||
        this.free = free;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,112 +0,0 @@
 | 
			
		||||
package com.ruoyi.framework.web.domain.server;
 | 
			
		||||
 | 
			
		||||
import java.lang.management.ManagementFactory;
 | 
			
		||||
import java.util.Date;
 | 
			
		||||
 | 
			
		||||
import cn.hutool.core.date.BetweenFormatter;
 | 
			
		||||
import cn.hutool.core.date.DateUtil;
 | 
			
		||||
import cn.hutool.core.util.NumberUtil;
 | 
			
		||||
import com.ruoyi.common.utils.DateUtils;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * JVM相关信息
 | 
			
		||||
 *
 | 
			
		||||
 * @author ruoyi
 | 
			
		||||
 */
 | 
			
		||||
public class Jvm {
 | 
			
		||||
    /**
 | 
			
		||||
     * 当前JVM占用的内存总数(M)
 | 
			
		||||
     */
 | 
			
		||||
    private double total;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * JVM最大可用内存总数(M)
 | 
			
		||||
     */
 | 
			
		||||
    private double max;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * JVM空闲内存(M)
 | 
			
		||||
     */
 | 
			
		||||
    private double free;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * JDK版本
 | 
			
		||||
     */
 | 
			
		||||
    private String version;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * JDK路径
 | 
			
		||||
     */
 | 
			
		||||
    private String home;
 | 
			
		||||
 | 
			
		||||
    public double getTotal() {
 | 
			
		||||
        return NumberUtil.div(total, (1024 * 1024), 2);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setTotal(double total) {
 | 
			
		||||
        this.total = total;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public double getMax() {
 | 
			
		||||
        return NumberUtil.div(max, (1024 * 1024), 2);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setMax(double max) {
 | 
			
		||||
        this.max = max;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public double getFree() {
 | 
			
		||||
        return NumberUtil.div(free, (1024 * 1024), 2);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setFree(double free) {
 | 
			
		||||
        this.free = free;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public double getUsed() {
 | 
			
		||||
        return NumberUtil.div(total - free, (1024 * 1024), 2);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public double getUsage() {
 | 
			
		||||
        return NumberUtil.mul(NumberUtil.div(total - free, total, 4), 100);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 获取JDK名称
 | 
			
		||||
     */
 | 
			
		||||
    public String getName() {
 | 
			
		||||
        return ManagementFactory.getRuntimeMXBean().getVmName();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getVersion() {
 | 
			
		||||
        return version;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setVersion(String version) {
 | 
			
		||||
        this.version = version;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getHome() {
 | 
			
		||||
        return home;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setHome(String home) {
 | 
			
		||||
        this.home = home;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * JDK启动时间
 | 
			
		||||
     */
 | 
			
		||||
    public String getStartTime()
 | 
			
		||||
    {
 | 
			
		||||
        return DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, DateUtils.getServerStartDate());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * JDK运行时间
 | 
			
		||||
     */
 | 
			
		||||
    public String getRunTime()
 | 
			
		||||
    {
 | 
			
		||||
        return DateUtils.getDatePoor(DateUtils.getNowDate(), DateUtils.getServerStartDate());
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,61 +0,0 @@
 | 
			
		||||
package com.ruoyi.framework.web.domain.server;
 | 
			
		||||
 | 
			
		||||
import cn.hutool.core.util.NumberUtil;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 內存相关信息
 | 
			
		||||
 * 
 | 
			
		||||
 * @author ruoyi
 | 
			
		||||
 */
 | 
			
		||||
public class Mem
 | 
			
		||||
{
 | 
			
		||||
    /**
 | 
			
		||||
     * 内存总量
 | 
			
		||||
     */
 | 
			
		||||
    private double total;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 已用内存
 | 
			
		||||
     */
 | 
			
		||||
    private double used;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 剩余内存
 | 
			
		||||
     */
 | 
			
		||||
    private double free;
 | 
			
		||||
 | 
			
		||||
    public double getTotal()
 | 
			
		||||
    {
 | 
			
		||||
        return NumberUtil.div(total, (1024 * 1024 * 1024), 2);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setTotal(long total)
 | 
			
		||||
    {
 | 
			
		||||
        this.total = total;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public double getUsed()
 | 
			
		||||
    {
 | 
			
		||||
        return NumberUtil.div(used, (1024 * 1024 * 1024), 2);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setUsed(long used)
 | 
			
		||||
    {
 | 
			
		||||
        this.used = used;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public double getFree()
 | 
			
		||||
    {
 | 
			
		||||
        return NumberUtil.div(free, (1024 * 1024 * 1024), 2);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setFree(long free)
 | 
			
		||||
    {
 | 
			
		||||
        this.free = free;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public double getUsage()
 | 
			
		||||
    {
 | 
			
		||||
        return NumberUtil.mul(NumberUtil.div(used, total, 4), 100);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,84 +0,0 @@
 | 
			
		||||
package com.ruoyi.framework.web.domain.server;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 系统相关信息
 | 
			
		||||
 * 
 | 
			
		||||
 * @author ruoyi
 | 
			
		||||
 */
 | 
			
		||||
public class Sys
 | 
			
		||||
{
 | 
			
		||||
    /**
 | 
			
		||||
     * 服务器名称
 | 
			
		||||
     */
 | 
			
		||||
    private String computerName;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 服务器Ip
 | 
			
		||||
     */
 | 
			
		||||
    private String computerIp;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 项目路径
 | 
			
		||||
     */
 | 
			
		||||
    private String userDir;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 操作系统
 | 
			
		||||
     */
 | 
			
		||||
    private String osName;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 系统架构
 | 
			
		||||
     */
 | 
			
		||||
    private String osArch;
 | 
			
		||||
 | 
			
		||||
    public String getComputerName()
 | 
			
		||||
    {
 | 
			
		||||
        return computerName;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setComputerName(String computerName)
 | 
			
		||||
    {
 | 
			
		||||
        this.computerName = computerName;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getComputerIp()
 | 
			
		||||
    {
 | 
			
		||||
        return computerIp;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setComputerIp(String computerIp)
 | 
			
		||||
    {
 | 
			
		||||
        this.computerIp = computerIp;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getUserDir()
 | 
			
		||||
    {
 | 
			
		||||
        return userDir;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setUserDir(String userDir)
 | 
			
		||||
    {
 | 
			
		||||
        this.userDir = userDir;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getOsName()
 | 
			
		||||
    {
 | 
			
		||||
        return osName;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setOsName(String osName)
 | 
			
		||||
    {
 | 
			
		||||
        this.osName = osName;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getOsArch()
 | 
			
		||||
    {
 | 
			
		||||
        return osArch;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setOsArch(String osArch)
 | 
			
		||||
    {
 | 
			
		||||
        this.osArch = osArch;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,114 +0,0 @@
 | 
			
		||||
package com.ruoyi.framework.web.domain.server;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 系统文件相关信息
 | 
			
		||||
 * 
 | 
			
		||||
 * @author ruoyi
 | 
			
		||||
 */
 | 
			
		||||
public class SysFile
 | 
			
		||||
{
 | 
			
		||||
    /**
 | 
			
		||||
     * 盘符路径
 | 
			
		||||
     */
 | 
			
		||||
    private String dirName;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 盘符类型
 | 
			
		||||
     */
 | 
			
		||||
    private String sysTypeName;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 文件类型
 | 
			
		||||
     */
 | 
			
		||||
    private String typeName;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 总大小
 | 
			
		||||
     */
 | 
			
		||||
    private String total;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 剩余大小
 | 
			
		||||
     */
 | 
			
		||||
    private String free;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 已经使用量
 | 
			
		||||
     */
 | 
			
		||||
    private String used;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 资源的使用率
 | 
			
		||||
     */
 | 
			
		||||
    private double usage;
 | 
			
		||||
 | 
			
		||||
    public String getDirName()
 | 
			
		||||
    {
 | 
			
		||||
        return dirName;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setDirName(String dirName)
 | 
			
		||||
    {
 | 
			
		||||
        this.dirName = dirName;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getSysTypeName()
 | 
			
		||||
    {
 | 
			
		||||
        return sysTypeName;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setSysTypeName(String sysTypeName)
 | 
			
		||||
    {
 | 
			
		||||
        this.sysTypeName = sysTypeName;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getTypeName()
 | 
			
		||||
    {
 | 
			
		||||
        return typeName;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setTypeName(String typeName)
 | 
			
		||||
    {
 | 
			
		||||
        this.typeName = typeName;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getTotal()
 | 
			
		||||
    {
 | 
			
		||||
        return total;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setTotal(String total)
 | 
			
		||||
    {
 | 
			
		||||
        this.total = total;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getFree()
 | 
			
		||||
    {
 | 
			
		||||
        return free;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setFree(String free)
 | 
			
		||||
    {
 | 
			
		||||
        this.free = free;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getUsed()
 | 
			
		||||
    {
 | 
			
		||||
        return used;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setUsed(String used)
 | 
			
		||||
    {
 | 
			
		||||
        this.used = used;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public double getUsage()
 | 
			
		||||
    {
 | 
			
		||||
        return usage;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setUsage(double usage)
 | 
			
		||||
    {
 | 
			
		||||
        this.usage = usage;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,210 +0,0 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="app-container">
 | 
			
		||||
    <el-row>
 | 
			
		||||
      <el-col :span="12" class="card-box">
 | 
			
		||||
        <el-card>
 | 
			
		||||
          <div slot="header"><span>CPU</span></div>
 | 
			
		||||
          <div class="el-table el-table--enable-row-hover el-table--medium">
 | 
			
		||||
            <table cellspacing="0" style="width: 100%;">
 | 
			
		||||
              <thead>
 | 
			
		||||
                <tr>
 | 
			
		||||
                  <th class="is-leaf"><div class="cell">属性</div></th>
 | 
			
		||||
                  <th class="is-leaf"><div class="cell">值</div></th>
 | 
			
		||||
                </tr>
 | 
			
		||||
              </thead>
 | 
			
		||||
              <tbody>
 | 
			
		||||
                <tr>
 | 
			
		||||
                  <td><div class="cell">核心数</div></td>
 | 
			
		||||
                  <td><div class="cell" v-if="server.cpu">{{ server.cpu.cpuNum }}</div></td>
 | 
			
		||||
                </tr>
 | 
			
		||||
                <tr>
 | 
			
		||||
                  <td><div class="cell">用户使用率</div></td>
 | 
			
		||||
                  <td><div class="cell" v-if="server.cpu">{{ server.cpu.used }}%</div></td>
 | 
			
		||||
                </tr>
 | 
			
		||||
                <tr>
 | 
			
		||||
                  <td><div class="cell">系统使用率</div></td>
 | 
			
		||||
                  <td><div class="cell" v-if="server.cpu">{{ server.cpu.sys }}%</div></td>
 | 
			
		||||
                </tr>
 | 
			
		||||
                <tr>
 | 
			
		||||
                  <td><div class="cell">当前空闲率</div></td>
 | 
			
		||||
                  <td><div class="cell" v-if="server.cpu">{{ server.cpu.free }}%</div></td>
 | 
			
		||||
                </tr>
 | 
			
		||||
              </tbody>
 | 
			
		||||
            </table>
 | 
			
		||||
          </div>
 | 
			
		||||
        </el-card>
 | 
			
		||||
      </el-col>
 | 
			
		||||
 | 
			
		||||
      <el-col :span="12" class="card-box">
 | 
			
		||||
        <el-card>
 | 
			
		||||
          <div slot="header"><span>内存</span></div>
 | 
			
		||||
          <div class="el-table el-table--enable-row-hover el-table--medium">
 | 
			
		||||
            <table cellspacing="0" style="width: 100%;">
 | 
			
		||||
              <thead>
 | 
			
		||||
                <tr>
 | 
			
		||||
                  <th class="is-leaf"><div class="cell">属性</div></th>
 | 
			
		||||
                  <th class="is-leaf"><div class="cell">内存</div></th>
 | 
			
		||||
                  <th class="is-leaf"><div class="cell">JVM</div></th>
 | 
			
		||||
                </tr>
 | 
			
		||||
              </thead>
 | 
			
		||||
              <tbody>
 | 
			
		||||
                <tr>
 | 
			
		||||
                  <td><div class="cell">总内存</div></td>
 | 
			
		||||
                  <td><div class="cell" v-if="server.mem">{{ server.mem.total }}G</div></td>
 | 
			
		||||
                  <td><div class="cell" v-if="server.jvm">{{ server.jvm.total }}M</div></td>
 | 
			
		||||
                </tr>
 | 
			
		||||
                <tr>
 | 
			
		||||
                  <td><div class="cell">已用内存</div></td>
 | 
			
		||||
                  <td><div class="cell" v-if="server.mem">{{ server.mem.used}}G</div></td>
 | 
			
		||||
                  <td><div class="cell" v-if="server.jvm">{{ server.jvm.used}}M</div></td>
 | 
			
		||||
                </tr>
 | 
			
		||||
                <tr>
 | 
			
		||||
                  <td><div class="cell">剩余内存</div></td>
 | 
			
		||||
                  <td><div class="cell" v-if="server.mem">{{ server.mem.free }}G</div></td>
 | 
			
		||||
                  <td><div class="cell" v-if="server.jvm">{{ server.jvm.free }}M</div></td>
 | 
			
		||||
                </tr>
 | 
			
		||||
                <tr>
 | 
			
		||||
                  <td><div class="cell">使用率</div></td>
 | 
			
		||||
                  <td><div class="cell" v-if="server.mem" :class="{'text-danger': server.mem.usage > 80}">{{ server.mem.usage }}%</div></td>
 | 
			
		||||
                  <td><div class="cell" v-if="server.jvm" :class="{'text-danger': server.jvm.usage > 80}">{{ server.jvm.usage }}%</div></td>
 | 
			
		||||
                </tr>
 | 
			
		||||
              </tbody>
 | 
			
		||||
            </table>
 | 
			
		||||
          </div>
 | 
			
		||||
        </el-card>
 | 
			
		||||
      </el-col>
 | 
			
		||||
 | 
			
		||||
      <el-col :span="24" class="card-box">
 | 
			
		||||
        <el-card>
 | 
			
		||||
          <div slot="header">
 | 
			
		||||
            <span>服务器信息</span>
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="el-table el-table--enable-row-hover el-table--medium">
 | 
			
		||||
            <table cellspacing="0" style="width: 100%;">
 | 
			
		||||
              <tbody>
 | 
			
		||||
                <tr>
 | 
			
		||||
                  <td><div class="cell">服务器名称</div></td>
 | 
			
		||||
                  <td><div class="cell" v-if="server.sys">{{ server.sys.computerName }}</div></td>
 | 
			
		||||
                  <td><div class="cell">操作系统</div></td>
 | 
			
		||||
                  <td><div class="cell" v-if="server.sys">{{ server.sys.osName }}</div></td>
 | 
			
		||||
                </tr>
 | 
			
		||||
                <tr>
 | 
			
		||||
                  <td><div class="cell">服务器IP</div></td>
 | 
			
		||||
                  <td><div class="cell" v-if="server.sys">{{ server.sys.computerIp }}</div></td>
 | 
			
		||||
                  <td><div class="cell">系统架构</div></td>
 | 
			
		||||
                  <td><div class="cell" v-if="server.sys">{{ server.sys.osArch }}</div></td>
 | 
			
		||||
                </tr>
 | 
			
		||||
              </tbody>
 | 
			
		||||
            </table>
 | 
			
		||||
          </div>
 | 
			
		||||
        </el-card>
 | 
			
		||||
      </el-col>
 | 
			
		||||
 | 
			
		||||
      <el-col :span="24" class="card-box">
 | 
			
		||||
        <el-card>
 | 
			
		||||
          <div slot="header">
 | 
			
		||||
            <span>Java虚拟机信息</span>
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="el-table el-table--enable-row-hover el-table--medium">
 | 
			
		||||
            <table cellspacing="0" style="width: 100%;">
 | 
			
		||||
              <tbody>
 | 
			
		||||
                <tr>
 | 
			
		||||
                  <td><div class="cell">Java名称</div></td>
 | 
			
		||||
                  <td><div class="cell" v-if="server.jvm">{{ server.jvm.name }}</div></td>
 | 
			
		||||
                  <td><div class="cell">Java版本</div></td>
 | 
			
		||||
                  <td><div class="cell" v-if="server.jvm">{{ server.jvm.version }}</div></td>
 | 
			
		||||
                </tr>
 | 
			
		||||
                <tr>
 | 
			
		||||
                  <td><div class="cell">启动时间</div></td>
 | 
			
		||||
                  <td><div class="cell" v-if="server.jvm">{{ server.jvm.startTime }}</div></td>
 | 
			
		||||
                  <td><div class="cell">运行时长</div></td>
 | 
			
		||||
                  <td><div class="cell" v-if="server.jvm">{{ server.jvm.runTime }}</div></td>
 | 
			
		||||
                </tr>
 | 
			
		||||
                <tr>
 | 
			
		||||
                  <td colspan="1"><div class="cell">安装路径</div></td>
 | 
			
		||||
                  <td colspan="3"><div class="cell" v-if="server.jvm">{{ server.jvm.home }}</div></td>
 | 
			
		||||
                </tr>
 | 
			
		||||
                <tr>
 | 
			
		||||
                  <td colspan="1"><div class="cell">项目路径</div></td>
 | 
			
		||||
                  <td colspan="3"><div class="cell" v-if="server.sys">{{ server.sys.userDir }}</div></td>
 | 
			
		||||
                </tr>
 | 
			
		||||
              </tbody>
 | 
			
		||||
            </table>
 | 
			
		||||
          </div>
 | 
			
		||||
        </el-card>
 | 
			
		||||
      </el-col>
 | 
			
		||||
 | 
			
		||||
      <el-col :span="24" class="card-box">
 | 
			
		||||
        <el-card>
 | 
			
		||||
          <div slot="header">
 | 
			
		||||
            <span>磁盘状态</span>
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="el-table el-table--enable-row-hover el-table--medium">
 | 
			
		||||
            <table cellspacing="0" style="width: 100%;">
 | 
			
		||||
              <thead>
 | 
			
		||||
                <tr>
 | 
			
		||||
                  <th class="is-leaf"><div class="cell">盘符路径</div></th>
 | 
			
		||||
                  <th class="is-leaf"><div class="cell">文件系统</div></th>
 | 
			
		||||
                  <th class="is-leaf"><div class="cell">盘符类型</div></th>
 | 
			
		||||
                  <th class="is-leaf"><div class="cell">总大小</div></th>
 | 
			
		||||
                  <th class="is-leaf"><div class="cell">可用大小</div></th>
 | 
			
		||||
                  <th class="is-leaf"><div class="cell">已用大小</div></th>
 | 
			
		||||
                  <th class="is-leaf"><div class="cell">已用百分比</div></th>
 | 
			
		||||
                </tr>
 | 
			
		||||
              </thead>
 | 
			
		||||
              <tbody v-if="server.sysFiles">
 | 
			
		||||
                <tr v-for="sysFile in server.sysFiles">
 | 
			
		||||
                  <td><div class="cell">{{ sysFile.dirName }}</div></td>
 | 
			
		||||
                  <td><div class="cell">{{ sysFile.sysTypeName }}</div></td>
 | 
			
		||||
                  <td><div class="cell">{{ sysFile.typeName }}</div></td>
 | 
			
		||||
                  <td><div class="cell">{{ sysFile.total }}</div></td>
 | 
			
		||||
                  <td><div class="cell">{{ sysFile.free }}</div></td>
 | 
			
		||||
                  <td><div class="cell">{{ sysFile.used }}</div></td>
 | 
			
		||||
                  <td><div class="cell" :class="{'text-danger': sysFile.usage > 80}">{{ sysFile.usage }}%</div></td>
 | 
			
		||||
                </tr>
 | 
			
		||||
              </tbody>
 | 
			
		||||
            </table>
 | 
			
		||||
          </div>
 | 
			
		||||
        </el-card>
 | 
			
		||||
      </el-col>
 | 
			
		||||
    </el-row>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import { getServer } from "@/api/monitor/server";
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  name: "Server",
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      // 加载层信息
 | 
			
		||||
      loading: [],
 | 
			
		||||
      // 服务器信息
 | 
			
		||||
      server: []
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
  created() {
 | 
			
		||||
    this.getList();
 | 
			
		||||
    this.openLoading();
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    /** 查询服务器信息 */
 | 
			
		||||
    getList() {
 | 
			
		||||
      getServer().then(response => {
 | 
			
		||||
        this.server = response.data;
 | 
			
		||||
        this.loading.close();
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
    // 打开加载层
 | 
			
		||||
    openLoading() {
 | 
			
		||||
      this.loading = this.$loading({
 | 
			
		||||
        lock: true,
 | 
			
		||||
        text: "拼命读取中",
 | 
			
		||||
        spinner: "el-icon-loading",
 | 
			
		||||
        background: "rgba(0, 0, 0, 0.7)"
 | 
			
		||||
      });
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
@@ -173,7 +173,7 @@ insert into sys_menu values('108',  '日志管理', '1',   '9', 'log',        ''
 | 
			
		||||
insert into sys_menu values('109',  '在线用户', '2',   '1', 'online',     'monitor/online/index',     1, 0, 'C', '0', '0', 'monitor:online:list',     'online',        'admin', sysdate(), '', null, '在线用户菜单');
 | 
			
		||||
insert into sys_menu values('110',  '定时任务', '2',   '2', 'job',        'monitor/job/index',        1, 0, 'C', '0', '0', 'monitor:job:list',        'job',           'admin', sysdate(), '', null, '定时任务菜单');
 | 
			
		||||
insert into sys_menu values('111',  '数据监控', '2',   '3', 'druid',      'monitor/druid/index',      1, 0, 'C', '0', '0', 'monitor:druid:list',      'druid',         'admin', sysdate(), '', null, '数据监控菜单');
 | 
			
		||||
insert into sys_menu values('112',  '服务监控', '2',   '4', 'server',     'monitor/server/index',     1, 0, 'C', '0', '0', 'monitor:server:list',     'server',        'admin', sysdate(), '', null, '服务监控菜单');
 | 
			
		||||
# insert into sys_menu values('112',  '服务监控', '2',   '4', 'server',     'monitor/server/index',     1, 0, 'C', '0', '0', 'monitor:server:list',     'server',        'admin', sysdate(), '', null, '服务监控菜单');
 | 
			
		||||
insert into sys_menu values('113',  '缓存监控', '2',   '5', 'cache',      'monitor/cache/index',      1, 0, 'C', '0', '0', 'monitor:cache:list',      'redis',         'admin', sysdate(), '', null, '缓存监控菜单');
 | 
			
		||||
insert into sys_menu values('114',  '表单构建', '3',   '1', 'build',      'tool/build/index',         1, 0, 'C', '0', '0', 'tool:build:list',         'build',         'admin', sysdate(), '', null, '表单构建菜单');
 | 
			
		||||
insert into sys_menu values('115',  '代码生成', '3',   '2', 'gen',        'tool/gen/index',           1, 0, 'C', '0', '0', 'tool:gen:list',           'code',          'admin', sysdate(), '', null, '代码生成菜单');
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user