sigar监控

来源:互联网 发布:java扑克牌比大小 编辑:程序博客网 时间:2024/05/15 23:48

首先介绍下什么是sigar:

Hyperic-Sigar是一个收集系统各项底层信息的工具集.他有如下特点:
1. 收集信息全面
收集CPU,MEM,NETWORK,PROCESS,IOSTAT等
使用Sigar,你完全可以模仿出cpuinfo,meminfo,top,free,ifconfig,ipconfig,netstat,route,df,du,ps,ls等多种unix平台和windows平台的指令.
2.跨平台,支持多数平台
支持的平台包括:windows系列(32系列,IA64系列,AMD64系列),linux系列,freeBsd系列,HPUnix 系列,Sun solaris/Sparc/Sparc64系列,macOs系列,AIX系列等

3.提供的API接口全面
sigar本身由C语言开发而成,提供了丰富的API接口,包括:JAVA,.NET,PERL,PHP,PYTHON,RUBY.Sigar.jar包是通过本地方法来调用操作系统API来获取系统相关数据。Windows操作系统下Sigar.jar依赖sigar-amd64-winnt.dll或sigar-x86-winnt.dll,linux 操作系统下则依赖libsigar-amd64-linux.so或libsigar-x86-linux.so……而Sigar.jar还依赖于jug-asl-2.0.0.jar、log4j-1.2.14.jar、Junit.jar,

Hyperic-hq官方网站:http://www.hyperic.com

Sigar.jar下载地址:http://sigar.hyperic.com


sigar可以用来获取机器的信息,这个上面已经介绍了。如果你留意一下可能会发现,监控机器信息,怎么监控?其实就是在一个计算机上进行一些操作来获取该计算机的信息。这个应该是很容易实现的,无论用什么语言,都有类似的功能吧。刚好最近也在研究webservice,就想着我如何在客户端获取一台服务器的信息,其实很简单,只需要将sigar获取机器信息的方法发布成webservice服务就可以了,然后对外暴露一个wsdl路径,我们在远程就可以调用到那个远在服务器端的方法了,那么这样不就可以获取服务器信息了吗?说到这里,有的人建议用snmp4j,这个工具也很强大,有点感觉它是基于socket的,需要安装服务端和客户端,其实原理上差不多(非专业角度看),现在正在研究这个东西。


现在想实现路由监控,已知snmp4j可以实现,sigar还没有研究,不知有人用过没?这两者都是基于snmp协议,应该都有对应的方法。