基于(siger)开发的SpringBoot探针,Java监控服务器信息

基于(siger)开发的SpringBoot探针,Java监控服务器信息

Scroll Down

前段时间开发了一套Java获取服务器信息监控探针

后端采用的技术为:

  1. springboot
  2. springboot-security(用户接口安全认证,防止非法爬取服务器信息入侵服务器)
  3. sigar(获得服务器信息)
  4. swagger(提供详细的接口文档)

注:sigar是有依赖的,可能部署起来会比较麻烦,有能力的可以换oshi(Arthas底层) oshi没有这么多依赖,部署比较简单一些

oshi地址:https://github.com/oshi/oshi

monitor-2

开源地址:

https://github.com/hiparker/system-monitor

Sigar插件地址:

https://github.com/hiparker/system-monitor/tree/master/sigar%E6%8F%92%E4%BB%B6%E5%8C%85

目录结构:
monitor-10

使用场景

在没有使用 分布式的项目,进行集群管理时
有时候来了做服务器监控的需求
如果没有特殊要求 阿里开源的 Arthas 是非常好用的java诊断工具
但是 如果要做 监控数据化的话 就需要自己开发了

这里我分享一套 最近刚写的Java探针

运行起来后查看接口

monitor-3

monitor-4

monitor-5

API接口文档

127.0.0.1:7000/doc.html

monitor-1

使用主服务 去定时抓接口,即可做到,集群下多服务器监控

运行

nohup java -jar system-monitor.jar &

有能力的 可以配置一下 开机启动

踩坑指南:

1. 使用Sigar在不同操作系统

Sigar是Hyperic-hq产品的基础包,是Hyperic HQ主要的数据收集组件。
底层主要由C来编写,所以会比较吃依赖

如果是windows系统,那么需要
sigar-amd64-winnt.dll(64位的)或者是sigar-x86-winnt.dll(32位系统的)
放在 jdkbin 目录下

如果是Linux系统,那么需要
libsigar-amd64-linux.so(64位系统的)或者libsigar-x86-linux.so(32位系统的)
放在 java.library.path
接口文档里提供了 查询Linux的java.library.path方法
在我linux系统输出的是:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
只需要放入其中一个文件夹里面就行,我这里放的是/usr/lib64目录下面,亲测正常使用

注:放置好依赖文件 注意一定要重启 否则不生效!