<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
分享到:
相关推荐
3. 用户界面:提供一个友好的用户界面,使管理员能直观地查看服务器状态和历史数据。 4. 性能优化:监控程序自身不应消耗过多资源,需要合理设计数据采集频率和处理策略。 综上所述,Java 服务器信息监控项目涵盖了...
综合运用这些监控工具和脚本,开发者和运维人员可以实现对Java服务器的全方位监控,及时发现问题,保证服务的稳定运行和高效性能。在实际操作中,还需要结合系统日志、性能指标阈值报警等手段,构建完整的监控体系,...
在Java中实现远程监控可以利用Java的多种内置特性,如JMX(Java Management Extensions)、RMI(Remote Method Invocation)以及网络编程API。下面我们将详细探讨如何使用Java来构建一个简单的远程监控系统。 首先...
JavaMelody是一款强大的JAVA Web项目服务器性能监控工具,它能够实时、全面地监控应用程序的运行状态,帮助开发者和运维人员了解系统性能瓶颈,及时发现并解决问题。通过在Java Web应用中简单集成,JavaMelody就能...
Java网络远程监控系统是一种能够实时收集、分析和管理分布在不同地理位置的计算机系统状态的软件解决方案。这个基于JAVA的网络远程监控系统提供了强大的功能,包括硬件性能监控、软件运行状况检查、网络流量分析以及...
Java实现实时监控目录下文件变化的方法 Java实现实时监控目录下文件变化的方法是指通过Java语言来实现实时监控目录下文件的变化情况,包括文件的创建、删除、修改等操作。这种方法可以应用于各种场景,例如文件系统...
首先,"Java服务器监控"是指通过特定的工具或框架对运行在Java虚拟机(JVM)上的服务进行实时监控,包括CPU使用率、内存占用、线程状态、类加载、垃圾收集等关键指标。这有助于及时发现性能瓶颈,预防系统崩溃,提高...
这个“java监控开发示例”旨在提供一种方法来实现这一目标,通过Java代码远程监控系统资源,如CPU使用率、内存占用、磁盘空间以及网络状态等。 首先,我们需要理解Java中用于系统监控的基础概念和技术。Java提供了...
在屏幕监控应用中,服务端需要创建一个ServerSocket,设置监听端口,然后进入循环等待状态,当客户端发起连接请求时,服务器端会接受这个连接并返回一个新的Socket对象。客户端则需要创建一个Socket,指定服务器的IP...
使用 Java 语言实现自定义的 Weblogic 监控可以实时了解服务器的运行状态,提高服务器的稳定运行。通过本文的介绍,读者可以了解如何使用 Java 语言来实现自定义的 Weblogic 监控,提高服务器的监控和管理水平。
Java远程监控是一个重要的技术领域,它允许开发者或系统管理员在远离目标系统的地方收集、分析和管理应用程序的运行状态。在Java中实现远程监控通常涉及到JMX(Java Management Extensions)框架,这是一种标准的...
总结来说,"Tomcat服务器监控1.2版"是一个针对Java应用服务器Tomcat的监控解决方案,它可以帮助管理员在Windows和Linux环境中实时监控服务器状态,自动处理故障,提升服务的稳定性和效率。通过提供的源码,开发者...
为了提高系统的可靠性和稳定性,开发了一个Java实现的监控程序,它的主要功能是监听服务程序的状态,如果检测到程序意外终止或挂掉,它会自动重启该程序,并且向开发人员发送短信通知,以便快速了解问题并采取相应的...
通过以上步骤,我们可以有效地监控服务器上的Java进程状态,确保所有必需的任务都已启动且没有重复启动的情况。这种方法不仅可以提高系统的可靠性和稳定性,还能减轻运维人员的工作负担。此外,还可以根据实际情况...
Java远程监控功能是一种在分布式系统中,通过编程方式获取并管理远程计算机状态和资源的技术。在本项目中,主要利用了Java的Socket通信机制和Robot类来实现这一功能。Socket是网络通信的基础,用于在不同计算机之间...
本项目是基于 Spring Boot Admin 的一个演示(Demo)源码,旨在帮助开发者理解和实践如何集成并使用 Spring Boot Admin 对 Java 服务器进行监控。 首先,让我们详细了解一下 Spring Boot Admin: 1. **Spring Boot...
在服务器监控中,如果检测到服务器状态异常,JavaMail可以被用来发送带有警报信息的邮件给管理员,以便他们能够及时处理问题。 在提供的压缩包文件"monitoring"中,可能包含了实现上述功能的源代码、配置文件或者...
最后,为了实现远程监控,我们可以利用SNMP(Simple Network Management Protocol)协议,JavaSNMP库可以帮助我们在Java程序中实现SNMP协议,从而监控网络设备的状态。 总的来说,基于Java的网络远程监控系统软件的...
6. **性能优化**:了解如何进行Java服务器的性能监控和调优,包括JVM内存管理、垃圾回收机制、线程分析、数据库连接池配置等,这些是确保应用高效运行的关键。 7. **安全**:包括身份验证、授权、加密和防止SQL注入...