sigar监控
相关参照博客:
http://liningjustsoso.iteye.com/blog/1254584
http://blog.csdn.net/aoxida/article/category/1259086
jar包
我这里是一个使用timer+sigar的例子,之后用quartz做了后台任务修改,可以看另外那篇文章
实现功能是每秒查一下网卡的流量
package com.dsideal.Util; import java.util.Timer;
import java.util.TimerTask; import org.hyperic.sigar.NetInterfaceConfig;
import org.hyperic.sigar.NetInterfaceStat;
import org.hyperic.sigar.Sigar;
import org.hyperic.sigar.SigarException;
import org.hyperic.sigar.SigarNotImplementedException; import com.jfinal.plugin.memcached.MemcachedKit;
import com.jfinal.plugin.memcached.MemcachedPlugin; public class SigarTest extends TimerTask{
public static void main(String[] args) throws Exception { Timer timer = new Timer();
timer.schedule(new SigarTest(), 1000, 1000); } public static int getCpuCount() throws SigarException {
Sigar sigar = new Sigar();
try {
return sigar.getCpuInfoList().length;
} finally {
sigar.close();
}
} private static long dfRxBytes = 0;
private static long dfTxBytes = 0;
public static long dfRxBytesMb = 0; //每秒接收的总字节数
public static long dfTxBytesMb = 0; //每秒发送的总字节数
public void testNetIfList() {
try {
MemcachedPlugin memcachedPlugin = new MemcachedPlugin("10.10.3.151:11211");
memcachedPlugin.start();
Sigar sigar = new Sigar();
String ifNames[] = sigar.getNetInterfaceList();
for (int i = 0; i < ifNames.length; i++) {
String name = ifNames[i];
if(name.equals("eth6")) {
NetInterfaceConfig ifconfig = sigar.getNetInterfaceConfig(name);
// print("\nname(网络设备名) = " + name);// 网络设备名
// print("Address(IP地址) = " + ifconfig.getAddress());// IP地址
// print("Netmask(子网掩码) = " + ifconfig.getNetmask());// 子网掩码
if ((ifconfig.getFlags() & 1L) <= 0L) {
// print("!IFF_UP...skipping getNetInterfaceStat");
continue;
}
try {
NetInterfaceStat ifstat = sigar.getNetInterfaceStat(name);
// print("RxPackets(接收的总包裹数) = " + ifstat.getRxPackets());// 接收的总包裹数
// print("TxPackets(发送的总包裹数) = " + ifstat.getTxPackets());// 发送的总包裹数
if (dfRxBytes == 0) {
dfRxBytes = ifstat.getRxBytes();
}
// print("RxBytes(接收到的总字节数) = " + ifstat.getRxBytes());// 接收到的总字节数
// print("-------------------------------------------");
// print("RxBytes(每秒接收到的总字节数) = " + (ifstat.getRxBytes() - dfRxBytes) + "B");// 接收到的总字节数
// print("RxBytes(每秒接收到的总字节数) = " + ((ifstat.getRxBytes() - dfRxBytes) /1024) + "KB");// 接收到的总字节数
dfRxBytesMb = (ifstat.getRxBytes() - dfRxBytes) /1024 /1024;
print("RxBytes(每秒接收到的总字节数) = " + dfRxBytesMb + "MB");// 接收到的总字节数
// print("-------------------------------------------");
dfRxBytes = ifstat.getRxBytes();
// print("TxBytes(发送的总字节数) = " + ifstat.getTxBytes());// 发送的总字节数
// print("-------------------------------------------");
// print("TxBytes(每秒发送的总字节数) = " + (ifstat.getTxBytes() - dfTxBytes) + "B");// 发送的总字节数
// print("TxBytes(每秒发送的总字节数) = " + ((ifstat.getTxBytes() - dfTxBytes) /1024) + "KB");// 发送的总字节数
if (dfTxBytes != 0) {
dfTxBytesMb = (ifstat.getTxBytes() - dfTxBytes) /1024 /1024 ;
MemcachedKit.set("dfTxBytesMb", 0, dfTxBytesMb);
// System.out.println("dfTxBytesMb="+MemcachedKit.get("dfTxBytesMb"));
}
print("TxBytes(每秒发送的总字节数) = " + dfTxBytesMb + "MB");// 发送的总字节数
// print("-------------------------------------------");
// if (((ifstat.getTxBytes() - dfTxBytes) /1024 /1024) <= 8) {
// this.printA();
// } else {
// this.printB();
// }
dfTxBytes = ifstat.getTxBytes();
// print("RxErrors(接收到的错误包数) = " + ifstat.getRxErrors());// 接收到的错误包数
// print("TxErrors(发送数据包时的错误数) = " + ifstat.getTxErrors());// 发送数据包时的错误数
// print("RxDropped(接收时丢弃的包数) = " + ifstat.getRxDropped());// 接收时丢弃的包数
// print("TxDropped(发送时丢弃的包数) = " + ifstat.getTxDropped());// 发送时丢弃的包数
} catch (SigarNotImplementedException e) {
print(e.getMessage());
} catch (SigarException e) {
print(e.getMessage());
} catch (Exception e) {
e.printStackTrace();
}
}
}
} catch (Exception e) {
// TODO: handle exception
} } void print(String msg) {
System.out.println(msg);
} @Override
public void run() {
SigarTest s =new SigarTest();
s.testNetIfList(); } public static void printA() {
System.out.println("AAAAAAAAAAAAAAAAAAAAAAAAAAAA");
} public static void printB() {
System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBBBBB");
} }
sigar监控的更多相关文章
- sigar 监控服务器硬件信息
转载 http://www.cnblogs.com/jifeng/archive/2012/05/16/2503519.html 通过使用第三方开源jar包sigar.jar我们可以获得本地的信息 1 ...
- ava如何实现系统监控、系统信息收集、sigar开源API的学习(转)
ava如何实现系统监控.系统信息收集.sigar开源API的学习(转) 转自:http://liningjustsoso.iteye.com/blog/1254584 首先给大家介绍一个开源工具Sig ...
- Java系统监控(淘汰sigar)
Sigar是Hyperic-hq产品的基础包,是Hyperic HQ主要的数据收集组件.它用来从许多平台收集系统和处理信息. 这些平台包括:Linux, Windows, Solaris, AIX, ...
- sigar获取Windows系统的硬件信息进行JAVA后台系统资源监控
windows下,将sigar-amd64-winnt.dll复制到jdk的bin目录下或者拷贝到WEB-INF/lib下 linux下,将libsigar-amd64-linux.so拷贝到jdk的 ...
- java sigar 系统监控
<dependency> <groupId>org</groupId> <artifactId>sigar</artifactId> < ...
- Sigar使用
Sigar(System Information Gatherer And Reporter),是一个开源的工具,提供了跨平台的系统信息收集的API,核心由C语言实现的.项目中使用Sigar进行服务器 ...
- Netty 编解码技术 数据通信和心跳监控案例
Netty 编解码技术 数据通信和心跳监控案例 多台服务器之间在进行跨进程服务调用时,需要使用特定的编解码技术,对需要进行网络传输的对象做编码和解码操作,以便完成远程调用.Netty提供了完善,易扩展 ...
- 服务器资源监控插件(jmeter)
零.引言 我们对被测应用进行性能测试时,除了关注吞吐量.响应时间等应用自身的表现外,对应用运行所涉及的服务器资源的使用情况,也是非常重要的方面,通过 实时监控,可以准确的把握不同测试场景下服务器资源消 ...
- WebLogic使用总结(五)——Web项目使用Sigar在WebLogic服务器部署遇到的问题
今天在WebLogic 12c服务器上部署Web项目时,碰到了一个问题.项目中使用到了"Sigar.jar"监控Window平台下的cpu使用率.内存使用率和硬盘信息,sigar. ...
随机推荐
- asp.net 弹出式日历控件 选择日期 Calendar控件
原文地址:asp.net 弹出式日历控件 选择日期 Calendar控件 作者:逸苡 html代码: <%@ Page Language="C#" CodeFile=&quo ...
- 《linux程序设计》笔记 第一章 入门
linux程序存放位置linux主要有一下几个存放程序的目录: /bin 系统启动程序目录 /usr/bin 用户使用的标准程序 /usr/local/bin 用于存放软件安装目录 /usr ...
- OpenSSH ‘mm_newkeys_from_blob’函数权限许可和访问控制漏洞
漏洞名称: OpenSSH ‘mm_newkeys_from_blob’函数权限许可和访问控制漏洞 CNNVD编号: CNNVD-201311-117 发布时间: 2013-11-12 更新时间: 2 ...
- Linux Kernel ‘oz_cdev_write()’函数本地缓冲区溢出漏洞
漏洞名称: Linux Kernel ‘oz_cdev_write()’函数本地缓冲区溢出漏洞 CNNVD编号: CNNVD-201311-060 发布时间: 2013-11-07 更新时间: 201 ...
- A标签执行JS脚本
A标签执行JS脚本 分类: Web2012-12-25 22:48 1368人阅读 评论(0) 收藏 举报 前言 A标签是html中常用的标签,它与button按钮是实现页面跳转的两种最常用的方式,经 ...
- 【转】让itunes下载加速的真正办法,转向至香港台湾澳门苹果服务器 -- 不错不错!!!
原文网址:http://bbs.feng.com/read-htm-tid-2397269.html 今天,看了一个这个帖子是改dns的,http://bbs.feng.com/read-htm-ti ...
- CSS学习笔记——定位position属性的学习
今天学习之前剩下的一个问题:CSS的position属性.首先归纳出和position相关的问题: position作为一个属性,它一共有哪几个属性值? position常用的属性值有哪几个?分别有什 ...
- SQL经典题
1触发器的作用? 答:触发器是一中特殊的存储过程,主要是通过事件来触发而被执行的.它可以强化约束,来维护数据的完整性和一致性, 可以跟踪数据库内的操作从而不允许未经许可的更新和变化.可以联级运算 ...
- bzoj 1877 [SDOI2009]晨跑(最小费用最大流)
Description Elaxia最近迷恋上了空手道,他为自己设定了一套健身计划,比如俯卧撑.仰卧起坐等 等,不过到目前为止,他坚持下来的只有晨跑. 现在给出一张学校附近的地图,这张地图中包含N个十 ...
- 可在Azure上运行.NET的SDK
本节包含前几个版本的 for .NET 的发行说明.有关早期版本的详细信息,请参阅早期版本:Azure SDK for .NET.有关 SDK 支持和停用的信息,请参阅 Azure SDK for . ...