<p>通过Hyperic-hq产品的基础包sigar.jar来实现服务器状态数据的获取。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,<br />
Hyperic-hq官方网站:http://www.hyperic.com<br />
Sigar.jar下载地址:http://sigar.hyperic.com<br /></p>
<pre name="code" class="java">package com.huawei.test;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Properties;
import org.hyperic.sigar.CpuInfo;
import org.hyperic.sigar.CpuPerc;
import org.hyperic.sigar.FileSystem;
import org.hyperic.sigar.FileSystemUsage;
import org.hyperic.sigar.OperatingSystem;
import org.hyperic.sigar.Sigar;
import org.hyperic.sigar.SigarException;
public class Test {
public static void main(String[] args) throws SigarException,
UnknownHostException
{
OperatingSystem OS = OperatingSystem.getInstance();
System.out.println("=========操作系统========");
// 操作系统内核类型如: 386、486、586等x86
System.out.println("操作系统内核 = " + OS.getArch());
System.out.println("OS.getCpuEndian() = " + OS.getCpuEndian());//
System.out.println("OS.getDataModel() = " + OS.getDataModel());//
// 系统描述
System.out.println("系统描述 = " + OS.getDescription());
// 操作系统类型
System.out.println("系统类型 = " + OS.getName());
// 操作系统的卖主
System.out.println("系统卖主 = " + OS.getVendor());
// 卖主名称
System.out.println("卖主名称 = " + OS.getVendorCodeName());
// 操作系统名称
System.out.println("系统名称 = " + OS.getVendorName());
// 操作系统卖主类型
System.out.println("系统类型 = " + OS.getVendorVersion());
// 操作系统的版本号
System.out.println("版本号 = " + OS.getVersion());
System.out.println("==============cpu===================");
Sigar sigar = new Sigar();
CpuInfo infos[] = sigar.getCpuInfoList();
CpuPerc cpu = sigar.getCpuPerc();
String address = InetAddress.getLocalHost().getHostAddress();
System.out.println("本机IP地址" + address);
for (int i = 0; i < infos.length; i++)
{
CpuInfo info = infos[i];
//CPU的总量MHz
System.out.println("CPU总量mhz=" + info.getMhz());
//获得CPU的卖主,如:Intel
System.out.println("vendor=" + info.getVendor());
//获得CPU的类别,如:Celeron
System.out.println("model=" + info.getModel());
//缓冲存储器数量
System.out.println("cache size=" + info.getCacheSize());
// 用户使用率
System.out.println("User :" + CpuPerc.format(cpu.getUser()));
// 系统使用率
System.out.println("Sys :" + CpuPerc.format(cpu.getSys()));
}
FileSystem fslist[] = sigar.getFileSystemList();
System.out.println("长度为什么是:"+fslist.length);
for (int i = 0; i < fslist.length - 2; i++)
{
System.out.println("============硬盘描述============");
System.out.println("\n~~~~~~~~~~" + i + "~~~~~~~~~~");
FileSystem fs = fslist[i];
// 分区的盘符名称
System.out.println("fs.getDevName() = " + fs.getDevName());
// 分区的盘符名称
//System.out.println("fs.getDirName() = " + fs.getDirName());
// 文件系统类型,比如 FAT32、NTFS
System.out.println("fs.getSysTypeName() = " + fs.getSysTypeName());
// 文件系统类型名,比如本地硬盘、光驱、网络文件系统等
System.out.println("fs.getTypeName() = " + fs.getTypeName());
// 文件系统类型
FileSystemUsage usage = sigar.getFileSystemUsage(fs.getDirName());
String sub = fs.getDevName().substring(0, 1);
// 文件系统总大小
System.out.println(" 硬盘 " + sub + "=" + usage.getTotal() / 1024
/ 1024 + "GB");
// 文件系统剩余大小
System.out.println(" 硬盘剩余大小= " + usage.getFree() / 1024 / 1024
+ "GB");
// 文件系统可用大小
System.out.println(" 硬盘可用大小 = " + usage.getAvail() / 1024 / 1024
+ "GB");
// 文件系统已经使用量
System.out.println(" 经使用量 = " + usage.getUsed() / 1024 / 1024
+ "GB");
double usePercent = usage.getUsePercent() * 100D;
// 文件系统资源的利用率
System.out.println(" 利用率 = " + usePercent + "%");
System.out.println(" DiskReads = " + usage.getDiskReads());
System.out.println(" DiskWrites = " + usage.getDiskWrites());
}
if (java.awt.Desktop.isDesktopSupported())
{
try
{
//创建一个URI实例
java.net.URI uri = java.net.URI.create("http://cn.bing.com/");
//获取当前系统桌面扩展
java.awt.Desktop dp = java.awt.Desktop.getDesktop();
//获得系统属性集
Properties props = System.getProperties();
//操作系统名称
String osName = props.getProperty("os.name");
System.out.println("操作系统名称:" + osName);
//操作系统构架
String osArch = props.getProperty("os.arch");
System.out.println("系统架构:" + osArch);
//操作系统版本
String osVersion = props.getProperty("os.version");
System.out.println("操作系统版本:" + osVersion);
//Java安装目录
String home = props.getProperty("java.home");
System.out.println("java安装目录:" + home);
//用户的账户名称
String user = props.getProperty("user.home");
System.out.println("用户帐户名称:" + user);
//Java 运行时环境规范名称
String version = props.getProperty("java.specification.name");
System.out.println("Java 运行时环境规范名称 :" + version);
//获取当前jdk的版本号
String number = props.getProperty("java.specification.version");
System.out.println("jdk的版本号:" + number);
//判断系统桌面是否支持要执行的功能
if (dp.isSupported(java.awt.Desktop.Action.BROWSE))
{
//获取系统默认浏览器打开链接
dp.browse(uri);
}
}
catch (java.lang.NullPointerException e)
{
//此为uri为空时抛出异常
}
catch (java.io.IOException e)
{
//此为无法获取系统默认浏览器
}
}
}
}
- 大小: 61.9 KB
分享到:
相关推荐
这是java做的服务器监控程序,支持多系统如window,Linux等主流系统,可监控物理内存,cpu,网络连接,服务等
java实现远程监控WINDOWS,linux案例
内容概要:通过带着读者采用 JAVA 作为开发语言,使用基于瘦客户端的 B/S 架构对整个系统模块进行设计,再选择 Oracle 数据库作为系统的数据库服务器软件,并且引入了 MVC 设计模式来指导整个系统的开发,进而提高了...
很好的一个远程监控代码,这个给java朋友们的一个很好的礼物哦。 很抢啊,一下就这么多人下载。
1. 实现远程主机的监控和控制:用户可以通过该软件远程监控和控制目标主机的状态和操作。 2. 实现实时屏幕监控和录制:用户可以实时查看目标主机的屏幕,并对其进行录制和回放。 3. 实现远程文件传输和管理:用户...
Java-gateway通过配置文件中START_POLLERS参数设置启动多个线程,在zabbix服务器这边如果一个连接所用时间超过Timeout,将会被中断,但是Java-gateway将继续从JMXcounter取数据。所以 StartJavaPollers设置的值要...
一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大...
内容:Java代码,获取服务器的基本信息(内存,cpu,存储状态等) 适用场景:服务器均可适用,主要是监测服务器的使用状态。 使用方法: 1.添加工程依赖 <!-- 获取系统信息 --> <groupId>...
通过quartz 循环访问服务器,返回状态码,异常则发送邮件
目前开源世界中暂没有一个比较成熟的zookeeper-monitor,公司内部的各个zookeeper运行也都是无监控,无报表状态。于是开始zookeeper监控这块工作。 目前zookeeper-monitor能做哪些事情,讲到这个,首先来看看哪些...
这种软件通常用于监控和控制安全系统、工业自动化系统、网络设备、服务器和计算机等,以及其他需要实时监视和控制的设备和系统。一些远程监控系统软件还可以提供警报和通知功能,帮助用户在设备或系统出现问题时及时...
监控服务器CPU使用率,内存(MEM)使用率,硬盘剩余,网络连接状态,开启线程数量,是否开启某进程或某APP; 自动开启某服务某进程...etc. 有问题发邮件,发钉钉群里面。。。通过配置文件配置。。。主要用了pslist获取...
java监控工具。oracle公司免费工具。就是oracle下载太慢了。所以在这里共享一份。 监控利用的是java程序的相关状态端口。所以服务器上的java应用必须打开对应端口。
基于JAVA开发的血压实时监控app源码+项目说明 毕设:一个血压实时监控app,该app主要功能为与测量设备进行通信,获取测量数据并在客户端进行处理,由服务器进行数据分析,为用户提供健康评估及建议。 蓝牙功能 可以...
java利用sigar模块实现监控服务器运行状态,资料包含win和linux dll动态库和案例代码。
第一步:运行ServerData.java 启动服务器,然后服务器处于等待状态 第二步:运行LoginData.java 启动(客户端)登陆界面 输入用户名 ip为本机localhost 第三步:在登陆后的界面文本框输入文本,然后发送 可以同时启动...
第一步:运行ServerData.java 启动服务器,然后服务器处于等待状态 第二步:运行LoginData.java 启动(客户端)登陆界面 输入用户名 ip为本机localhost 第三步:在登陆后的界面文本框输入文本,然后发送 可以同时启动...
监控您的Java服务器 安装 像这样的启动参数添加到任何JVM进程中 -javaagent:/path/to/jhealthagent.jar=port=5566,path=/path/to/health.log 配置 您可以使用端口或路径,或同时使用两者: -javaagent:/path/to/...
登陆用户认证- 定时刷新 Beanstalk 队列服务器状态- 对每个 Tube 的 ready/delayed/buried 状态进行管理- 支持批量清空 Tube 中的 Job- 支持 Job 文本高亮显示- 支持 Job 模糊搜索- 自定义队列服务器状态监控项 ...