我们有时候需要去监控服务器的信息,在服务器达到某个阈值的时候需要报警,今天我们使用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

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





