Springboot集成oshi远程监控主机

有时需监控服务器信息并在达到阈值时报警,本文介绍使用Spring Boot结合oshi获取系统信息的方法。包括排除Spring Boot自带的jna和jna - platform、引入oshi和高版本jna、编写通用信息实体(如CPU、内存等信息实体)、操作工具类,最后进行测试。

我们有时候需要去监控服务器的信息,在服务器达到某个阈值的时候需要报警,今天我们使用Springboot结合oshi来获取系统信息

1.排除springboot(这里使用springboot 2.1.14.RELEASE)自带的jna和jna-platform

    compile('org.springframework.boot:spring-boot-starter-web') {
        exclude group: 'net.java.dev.jna', module: 'jna'
        exclude group: 'net.java.dev.jna', module: 'jna-platform'
    }

2.引入oshi和高版本jna

    compile 'com.github.oshi:oshi-core:5.3.6'
    compile 'net.java.dev.jna:jna:5.6.0'
    compile 'net.java.dev.jna:jna-platform:5.6.0'

3.编写通用信息实体

import lombok.Data;

/**
 * @author lieber
 */
@Data
public class BaseInfo {

    /**
     * 总大小
     */
    private String total;

    /**
     * 空闲
     */
    private String available;

    /**
     * 已使用
     */
    private String used;

    /**
     * 使用率
     */
    private String usageRate;

}

CPU信息实体

import lombok.Data;

/**
 * @author lieber
 */
@Data
public class CpuInfo {

    /**
     * CPU名称
     */
    private String name;

    /**
     * 物理CPU
     */
    private int number;

    /**
     * 逻辑CPU
     */
    private int logic;

    /**
     * 物理核心数
     */
    private int core;

    /**
     * 空闲
     */
    private String idle;

    /**
     * 使用
     */
    private String used;

}

内存信息实体

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

/**
 * @author lieber
 */
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Data
public class MemoryInfo extends BaseInfo {
}

交换区信息实体

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

/**
 * @author lieber
 */
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Data
public class SwapInfo extends BaseInfo {
}

磁盘信息实体

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

/**
 * @author lieber
 */
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Data
public class DiskInfo ex
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值