欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java服务器状态监控实现 Java浏览器OSLinuxBing 

程序员文章站 2022-07-04 22:38:07
...
<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&hellip;&hellip;而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(&quot;=========操作系统========&quot;);
// 操作系统内核类型如: 386、486、586等x86
System.out.println(&quot;操作系统内核 = &quot; + OS.getArch());
System.out.println(&quot;OS.getCpuEndian() = &quot; + OS.getCpuEndian());//
System.out.println(&quot;OS.getDataModel() = &quot; + OS.getDataModel());//
// 系统描述
System.out.println(&quot;系统描述 = &quot; + OS.getDescription());

// 操作系统类型
System.out.println(&quot;系统类型 = &quot; + OS.getName());
// 操作系统的卖主
System.out.println(&quot;系统卖主 = &quot; + OS.getVendor());
// 卖主名称
System.out.println(&quot;卖主名称 = &quot; + OS.getVendorCodeName());
// 操作系统名称
System.out.println(&quot;系统名称 = &quot; + OS.getVendorName());
// 操作系统卖主类型
System.out.println(&quot;系统类型 = &quot; + OS.getVendorVersion());
// 操作系统的版本号
System.out.println(&quot;版本号 = &quot; + OS.getVersion());

System.out.println(&quot;==============cpu===================&quot;);
Sigar sigar = new Sigar();
CpuInfo infos[] = sigar.getCpuInfoList();
CpuPerc cpu = sigar.getCpuPerc();
String address = InetAddress.getLocalHost().getHostAddress();
System.out.println(&quot;本机IP地址&quot; + address);
for (int i = 0; i &lt; infos.length; i++)
{
    CpuInfo info = infos[i];
    //CPU的总量MHz
    System.out.println(&quot;CPU总量mhz=&quot; + info.getMhz());
    //获得CPU的卖主,如:Intel
    System.out.println(&quot;vendor=&quot; + info.getVendor());
    //获得CPU的类别,如:Celeron
    System.out.println(&quot;model=&quot; + info.getModel());
    //缓冲存储器数量
    System.out.println(&quot;cache size=&quot; + info.getCacheSize());
    // 用户使用率
    System.out.println(&quot;User :&quot; + CpuPerc.format(cpu.getUser()));
    // 系统使用率
    System.out.println(&quot;Sys :&quot; + CpuPerc.format(cpu.getSys()));
}
FileSystem fslist[] = sigar.getFileSystemList();
System.out.println(&quot;长度为什么是:&quot;+fslist.length);

for (int i = 0; i &lt; fslist.length - 2; i++)
{
    System.out.println(&quot;============硬盘描述============&quot;);
    System.out.println(&quot;\n~~~~~~~~~~&quot; + i + &quot;~~~~~~~~~~&quot;);
    FileSystem fs = fslist[i];
    // 分区的盘符名称
    System.out.println(&quot;fs.getDevName() = &quot; + fs.getDevName());
    // 分区的盘符名称
    //System.out.println(&quot;fs.getDirName() = &quot; + fs.getDirName());
   
    // 文件系统类型,比如 FAT32、NTFS
    System.out.println(&quot;fs.getSysTypeName() = &quot; + fs.getSysTypeName());
    // 文件系统类型名,比如本地硬盘、光驱、网络文件系统等
    System.out.println(&quot;fs.getTypeName() = &quot; + fs.getTypeName());
    // 文件系统类型
   
    FileSystemUsage usage = sigar.getFileSystemUsage(fs.getDirName());
    String sub = fs.getDevName().substring(0, 1);
    // 文件系统总大小
    System.out.println(&quot; 硬盘 &quot; + sub + &quot;=&quot; + usage.getTotal() / 1024
            / 1024 + &quot;GB&quot;);
   
    // 文件系统剩余大小
    System.out.println(&quot; 硬盘剩余大小= &quot; + usage.getFree() / 1024 / 1024
            + &quot;GB&quot;);
    // 文件系统可用大小
    System.out.println(&quot; 硬盘可用大小 = &quot; + usage.getAvail() / 1024 / 1024
            + &quot;GB&quot;);
    // 文件系统已经使用量
    System.out.println(&quot; 经使用量 = &quot; + usage.getUsed() / 1024 / 1024
            + &quot;GB&quot;);
    double usePercent = usage.getUsePercent() * 100D;
    // 文件系统资源的利用率
    System.out.println(&quot; 利用率 = &quot; + usePercent + &quot;%&quot;);
   
    System.out.println(&quot; DiskReads = &quot; + usage.getDiskReads());
    System.out.println(&quot; DiskWrites = &quot; + usage.getDiskWrites());
}

if (java.awt.Desktop.isDesktopSupported())
{
    try
    {
        //创建一个URI实例
        java.net.URI uri = java.net.URI.create(&quot;http://cn.bing.com/&quot;);
        //获取当前系统桌面扩展
        java.awt.Desktop dp = java.awt.Desktop.getDesktop();
        //获得系统属性集   
        Properties props = System.getProperties();
        //操作系统名称   
        String osName = props.getProperty(&quot;os.name&quot;);
        System.out.println(&quot;操作系统名称:&quot; + osName);
        //操作系统构架   
        String osArch = props.getProperty(&quot;os.arch&quot;);
        System.out.println(&quot;系统架构:&quot; + osArch);
        //操作系统版本
        String osVersion = props.getProperty(&quot;os.version&quot;);
        System.out.println(&quot;操作系统版本:&quot; + osVersion);
        //Java安装目录
        String home = props.getProperty(&quot;java.home&quot;);
        System.out.println(&quot;java安装目录:&quot; + home);
        //用户的账户名称
        String user = props.getProperty(&quot;user.home&quot;);
        System.out.println(&quot;用户帐户名称:&quot; + user);
        //Java 运行时环境规范名称
        String version = props.getProperty(&quot;java.specification.name&quot;);
        System.out.println(&quot;Java 运行时环境规范名称 :&quot; + version);
        //获取当前jdk的版本号
        String number = props.getProperty(&quot;java.specification.version&quot;);
        System.out.println(&quot;jdk的版本号:&quot; + number);
       
        //判断系统桌面是否支持要执行的功能
        if (dp.isSupported(java.awt.Desktop.Action.BROWSE))
        {
            //获取系统默认浏览器打开链接
            dp.browse(uri);


        }
    }
    catch (java.lang.NullPointerException e)
    {
        //此为uri为空时抛出异常
    }
    catch (java.io.IOException e)
    {
        //此为无法获取系统默认浏览器
    }
 
}
}
}

java服务器状态监控实现
            
    
    
        Java浏览器OSLinuxBing 
  • java服务器状态监控实现
            
    
    
        Java浏览器OSLinuxBing 
  • 大小: 61.9 KB