`
wangrui
  • 浏览: 186412 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

sigar使用:在web中应用sigar取得系统信息

阅读更多
直接看代码:

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.hyperic.sigar.Cpu;
import org.hyperic.sigar.CpuPerc;
import org.hyperic.sigar.Mem;
import org.hyperic.sigar.Sigar;
import org.hyperic.sigar.Swap;

public class SigarServlet extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		try {
			Sigar sigar = new Sigar();
			CpuPerc perc = sigar.getCpuPerc();
			Mem mem = sigar.getMem();
			Swap swap = sigar.getSwap();
			
			int cpuUsage = (int)perc.getCombined();
			int memFree = (int)(mem.getFree()/(1024l*1024l));
			int memTotal = (int)(mem.getTotal()/(1024l*1024l));
			
			int pageFileFree = (int)(swap.getPageOut()/(1024l*1024l));
			int pageFileTotal = (int)(swap.getPageIn()/(1024l*1024l));
			int swapFree = (int)(swap.getFree()/(1024l*1024l));
			int swapTotal = (int)(swap.getTotal()/(1024l*1024l));
			
			
			response.setContentType("text/html;charset=GB2312");
			PrintWriter out = response.getWriter();

			Cpu cpu = sigar.getCpu();
			
			out.println("CPU Usage:"+perc.getCombined());
			out.println("<br/>");
			out.println("Memory Free:"+memFree);
			out.println("<br/>");
			out.println("Memory Total:"+memTotal);
			out.println("<br/>");
			out.println("Swap Free:"+swapFree);
			out.println("<br/>");
			out.println("Swap Total:"+swapTotal);
			out.println("<br/>");
			out.println("Page Free:"+pageFileFree);
			out.println("<br/>");
			out.println("Page Total:"+pageFileTotal);

			out.close();

		} catch (Exception e) {
			
		}
	}

}



配置:

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
	<display-name>sigar</display-name>
	<servlet>
	   <servlet-name>sigarServlet</servlet-name>
	   <servlet-class>sigar.SigarServlet</servlet-class>
	</servlet>
	
	<servlet-mapping>
	    <servlet-name>sigarServlet</servlet-name>
	    <url-pattern>/sigar</url-pattern>
	</servlet-mapping>
	
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
		<welcome-file>index.htm</welcome-file>
		<welcome-file>index.jsp</welcome-file>
		<welcome-file>default.html</welcome-file>
		<welcome-file>default.htm</welcome-file>
		<welcome-file>default.jsp</welcome-file>
	</welcome-file-list>
</web-app>



需要的jar:
.sigar_shellrc
pdh.dll
sigar-1.5.0.1.jar
sigar-x86-winnt.dll
sigar-x86-winnt.lib

测试结果:

访问http://127.0.0.1:8080/sigar/sigar

CPU Usage:0.22815533980582525
Memory Free:863
Memory Total:2046
Swap Free:2048
Swap Total:4330
Page Free:0
Page Total:0


测试系统:windows Vista

注意其他系统需要引入sigar相关的库文件,具体看看sigar的网站:http://hyperic-hq.sourceforge.net/

3
0
分享到:
评论
5 楼 mystrjiang 2016-05-07  
你好 我想问下 可以sigar可以监控多台服务器吗?或者是可配置哪些服务器可以被监控
4 楼 valiant303 2014-06-17  
我想监控远程linux(阿里云服务器)的参数 该怎么配置 ?
3 楼 Kai_Ge 2014-03-21  
extjhyh 写道
你好!我想问下,sigar-x86-winnt.dll放在什么地方?为什么我运行程序报如下错误:
Failed to load sigar-x86-winnt: java.lang.NullPointerException
org.hyperic.sigar.SigarException: Failed to load sigar-x86-winnt: java.lang.NullPointerException
at org.hyperic.sigar.Sigar.loadLibrary(Sigar.java:172)
at org.hyperic.sigar.Sigar.<clinit>(Sigar.java:102)
at info.test.Test.main(Test.java:17)

源代码是:
System.out.println( Sigar.class.getClassLoader());//打印是null
Sigar sigar = new Sigar();//用debug调试,发现getLoaderClass().getClassLoader()为null,所以就抛出以上异常。
请问如何解决?
谢谢。

System.out.println("java.library.path = " + System.getProperty("java.library.path"));
打印出的语句,找到第一个,目录,把sigar-x86-winnt.dll和sigar-x86-winnt.lib放进去就可以了。64位系统还有个amdx64的dll文件。
2 楼 美丽的小岛 2013-04-10  
磁盘的利用率怎么获取呀?
1 楼 extjhyh 2010-06-10  
你好!我想问下,sigar-x86-winnt.dll放在什么地方?为什么我运行程序报如下错误:
Failed to load sigar-x86-winnt: java.lang.NullPointerException
org.hyperic.sigar.SigarException: Failed to load sigar-x86-winnt: java.lang.NullPointerException
at org.hyperic.sigar.Sigar.loadLibrary(Sigar.java:172)
at org.hyperic.sigar.Sigar.<clinit>(Sigar.java:102)
at info.test.Test.main(Test.java:17)

源代码是:
System.out.println( Sigar.class.getClassLoader());//打印是null
Sigar sigar = new Sigar();//用debug调试,发现getLoaderClass().getClassLoader()为null,所以就抛出以上异常。
请问如何解决?
谢谢。

相关推荐

Global site tag (gtag.js) - Google Analytics