使用Java编写一个简单的Web的监控系统cpu利用率,cpu温度,总内存大小

本文介绍如何使用Java编写一个简单的Web系统监控,包括获取CPU利用率、内存信息和CPU温度。利用Linux的/proc目录下的文件获取系统数据,通过Ajax无刷新更新前端展示。同时,文章讨论了实时告警系统的实现,考虑了网络延迟和数据重复的问题,设计了一张告警处理表来存储和检索告警信息。
摘要由CSDN通过智能技术生成

原文:http://www.jb51.net/article/75002.htm

 

这篇文章主要介绍了使用Java编写一个简单的Web的监控系统的例子,并且将重要信息转为XML通过网页前端显示,非常之实用,需要的朋友可以参考下

 

公司的服务器需要实时监控,而且当用户空间已经满了,操作失败,或者出现程序Exception的时候就需要实时提醒,便于网管和程序员调式,这样就把这个实时监控系统分为了两部分,

 

第一部分:实时系统监控(cpu利用率,cpu温度,总内存大小,已使用内存大小)
第二部分:实时告警
由于无刷新实时性,所以只能使用Ajax,这里没有用到任何ajax框架,因为调用比较简单
大家知道,由于java的先天不足,对底层系统的调用和操作一般用jni来完成,特别是cpu温度,你在window下是打死用命令行是得不到的, 但由于我们的服务器系统是linux,所以可以不调用jni完全用java的方式来得到系统信息,这里用到了runtime的exec()函数,通过解析 本地命令调用的结果来查询本地信息,

* 取得linux系统下的cpu、内存信息  
*  
* */  
public  final  class LinuxSystemTool  
{  
/**  
* get memory by used info  
*  
* @return int[] result  
* result.length==4;int[0]=MemTotal;int[1]=MemFree;int[2]=SwapTotal;int[3]=SwapFree;  
* @throws IOException  
* @throws InterruptedException  
*/ 
public  static  int [] getMemInfo() throws IOException, InterruptedException  
{  
File file = new File( "/proc/meminfo" );  
BufferedReader br = new BufferedReader( new InputStreamReader(  
new FileInputStream(file)));  
int [] result = new  int [ 4 ];  
String str = null ;  
StringTokenizer token = null ;  
while ((str = br.readLine()) != null )  
{  
token = new StringTokenizer(str);  
if (!token.hasMoreTokens())  
continue ;  
  
str = token.nextToken();  
if (!token.hasMoreTokens())  
continue ;  
  
if (str.equalsIgnoreCase( "MemTotal:" ))  
result[0 ] = Integer.parseInt(token.nextToken());  
else  if (str.equalsIgnoreCase( "MemFree:" ))  
result[1 ] = Integer.parseInt(token.nextToken());  
else  if (str.equalsIgnoreCase( "SwapTotal:" ))  
result[2 ] = Integer.parseInt(token.nextToken());  
else  if (str.equalsIgnoreCase( "SwapFree:" ))  
result[3 ] = Integer.parseInt(token.nextToken());  
}  
  
return result;  
}  
  
/**  
* get memory by used info  
*  
* @return float efficiency  
* @throws IOException  
* @throws InterruptedException  
*/ 
public  static  float getCpuInfo() throws IOException, InterruptedException  
{  
File file = new File( "/proc/stat" );  
BufferedReader br = new BufferedReader( new InputStreamReader(  
new FileInputStream(file)));  
StringTokenizer token = new StringTokenizer(br.readLine());  
token.nextToken();  
int user1 = Integer.parseInt(token.nextToken());  
int nice1 = Integer.parseInt(token.nextToken());  
int sys1 = Integer.parseInt(token.nextToken());  
int idle1 = Integer.parseInt(token.nextToken());  
  
Thread.sleep(1000 );  
  
br = new BufferedReader(  
new InputStreamReader( new FileInputStream(file)));  
token = new</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值