`
coding1688
  • 浏览: 236782 次
  • 来自: 上海
社区版块
存档分类
最新评论

用java也可以轻松实现收集系统信息:Sigar介绍

 
阅读更多

Sigar简介

今天意外发现了一个开源工具包 SIGAR - System Information Gatherer And Reporter,即 系统信息收集和报告。

官方站点:

http://support.hyperic.com/display/SIGAR/Home;jsessionid=A9705887A07D20BBAC9A96500BC60822

 

 

SIGAR 官方站点 写道
The Sigar API provides a portable interface for gathering system information such as:

System memory, swap, cpu, load average, uptime, logins
Per-process memory, cpu, credential info, state, arguments, environment, open files
File system detection and metrics
Network interface detection, configuration info and metrics
TCP and UDP connection tables
Network route table

This information is available in most operating systems, but each OS has their own way(s) providing it.
SIGAR provides developers with one API to access this information regardless of the underlying platform.
The core API is implemented in pure C with bindings currently implemented for Java, Perl, Ruby, Python, Erlang, PHP and C#.

 

几乎所有的硬件信息、网络情况都可以得到。

 

1, CPU信息,包括基本信息(vendor、model、mhz、cacheSize)和统计信息(user、sys、idle、nice、wait)

2, 文件系统信息,包括Filesystem、Size、Used、Avail、Use%、Type

3, 事件信息,类似Service Control Manager

4, 内存信息,物理内存和交换内存的总数、使用数、剩余数;RAM的大小

5, 网络信息,包括网络接口信息和网络路由信息

6, 进程信息,包括每个进程的内存、CPU占用数、状态、参数、句柄

7, IO信息,包括IO的状态,读写大小等

8, 服务状态信息

9, 系统信息,包括操作系统版本,系统资源限制情况,系统运行时间以及负载,JAVA的版本信息等.

 

Linux下Sigar的安装步骤

wget http://downloads.sourceforge.net/project/sigar/sigar/1.6/hyperic-sigar-1.6.4-src.tar.gz

tar zxf hyperic-sigar-1.6.4-src.tar.gz

cd hyperic-sigar-1.6.4-src

cd src

cd bindings

cd java

ant

 

Sigar提供的命令行工具

它还提供了一个命令行的使用方式,如下所示:

[root@node16 java]# java -jar sigar-bin/lib/sigar.jar

Loaded rc file: ./.sigar_shellrc

sigar> help

Available commands:

        alias          - Create alias command

        cpuinfo        - Display cpu information

        df             - Report filesystem disk space usage

        du             - Display usage for a directory recursively

        free           - Display information about free and used memory

        get            - Get system properties

        help           - Gives help on shell commands

        ifconfig       - Network interface information

        iostat         - Report filesystem disk i/o

        kill           - Send signal to a process

        ls             - simple FileInfo test at the moment (like ls -l)

        mps            - Show multi process status

        netinfo        - Display network info

        netstat        - Display network connections

        nfsstat        - Display nfs stats

        pargs          - Show process command line arguments

        penv           - Show process environment

        pfile          - Display process file info

        pidof          - Find the process ID of a running program

        pinfo          - Display all process info

        pmodules       - Display process module info

        ps             - Show process status

        quit           - Terminate the shell

        route          - Kernel IP routing table

        set            - Set system properties

        sleep          - Delay execution for the a number of seconds 

        source         - Read a file, executing the contents

        sysinfo        - Display system information

        time           - Time command

        ulimit         - Display system resource limits

        uptime         - Display how long the system has been running

        version        - Display sigar and system version info

        who            - Show who is logged on

sigar> df

Filesystem      Size Used Avail Use% Mounted on      Type

/dev/mapper/VolGroup00-LogVol00  29G  24G  4.3G  85% /               ext3/local

proc              0    0     0     - /proc           proc/none

sysfs             0    0     0     - /sys            sysfs/none

devpts            0    0     0     - /dev/pts        devpts/none

/dev/sda1        99M  12M   82M  13% /boot           ext3/local

tmpfs           378M   0   378M    - /dev/shm        tmpfs/none

none              0    0     0     - /proc/sys/fs/binfmt_misc binfmt_misc/none

sigar> cpuinfo

Vendor.........Intel

Model..........Core(TM)2 Duo CPU     E8400  @ 3.00GHz

Mhz............2993

Total CPUs.....1

Cache size....6144

 

CPU 0.........

User Time.....0.0%

Sys Time......0.0%

Idle Time.....100.0%

Wait Time.....0.0%

Nice Time.....0.0%

Combined......0.0%

Irq Time......0.0%

SoftIrq Time..0.0%

Stolen Time....0.0%

 

Totals........

User Time.....0.0%

--More-- (Page 1 of 2) 

Sys Time......0.0%

Idle Time.....100.0%

Wait Time.....0.0%

Nice Time.....0.0%

Combined......0.0%

Irq Time......0.0%

SoftIrq Time..0.0%

Stolen Time....0.0%

 

sigar> quit

Goodbye.

[root@node16 java]# 

 

Sigar提供的java的命令行工具,实现了常用的Linux命令,如下所示:

 

SIGAR 官方站点 写道
The shell and commands are implemented in Java, the source code is located in
bindings/java/src/org/hyperic/sigar/cmd/.
Including implementations of well-known commands such as:

df
du
free
ifconfig
iostat
netstat
ps
route
top
ulimit
uptime
who

 

 

PTQL (Process Table Query Language)  

这是sigar的内部查询语言(类似于数据库的 SQL)

http://support.hyperic.com/display/SIGAR/PTQL

 

SIGAR 官方站点 写道
Hyperic SIGAR provides a mechanism to identify processes called Process Table Query Language. All operating systems assign a unique id (PID) to each running process. However, the PID is a random number that may also change at any point in time when a process is restarted. PTQL uses process attributes that will persist over time to identify a process.
 

 

 

[root@node16 java]# java -jar sigar-bin/lib/sigar.jar 

Loaded rc file: ./.sigar_shellrc

sigar> ps "State.Name.eq=java"

4338    root    15:02   402M    144M    6.7M    S       0:52    java:org.apache.catalina.startup.Bootstrap

4775    root    16:16   309M     16M    5.7M    S       0:0     java:org.hyperic.sigar.cmd.Runner

sigar> 

 

 

 

 

 

 

在 java 中如何使用

由于时间关系,只列出一些很好的网络资料:

 

sigar官方javadoc

http://www.hyperic.com/support/docs/sigar/

评论:用sigar写程序的时候肯定用得着

 

snmp采集服务器信息(sigar.jar实现) 

http://blog.csdn.net/ocelight/article/details/4147278

评论:列举了获取常用系统信息的java代码

 

Sigar系统监控 

http://blog.csdn.net/yaerfeng/article/details/7018362

评论:另外一篇介绍资料,也包括一些java示例代码。

 

 

 

4
1
分享到:
评论
1 楼 plandu 2012-07-05  
不错,我有个问题,怎么通过sigar获取CPU序列号、硬盘卷标号或序列号?

我知道windows可以通过File类创建vbs临时文件获取,但是Linux始终没有合适的方法。

相关推荐

    系统信息监控sigar

    SIGAR是由Hadoop项目的主要贡献者之一——Yammer(现为微软一部分)开发的,它提供了丰富的API,使得开发者能够轻松地在不同操作系统上收集系统级的数据,如CPU使用率、内存状态、网络流量、磁盘I/O等。 SIGAR库的...

    使用sigar获取系统信息,内存,磁盘,jvm虚拟机等

    Sigar(System Information Gatherer and Reporter)是一款强大的跨平台系统信息收集库,由Hypertable组织开发。它提供了一种统一的API,允许开发者在多种操作系统上获取系统级别的信息,包括内存、CPU、磁盘、网络...

    基于java的sigar_mirror(系统信息收集API_Sigar).zip

    总的来说,"基于java的sigar_mirror(系统信息收集API_Sigar).zip"提供的Java版Sigar库是一个强大的工具,它使得Java开发者能够轻松地获取和分析操作系统的各种核心信息,从而更好地理解和管理运行环境。使用这个库,...

    Sigar包相关

    Sigar(System Information Gatherer and Reporter)是一款强大的跨平台系统信息收集库,它提供了一种简单、统一的方式来获取操作系统的基本信息,包括但不限于内存状态、CPU使用率、进程信息、网络状态、磁盘I/O等...

    借助Sigar API获取操作系统信息

    Sigar(System Information Gatherer and Reporter)是一款强大的跨平台系统信息收集库,由Hypertable组织开发。它提供了一种统一的接口,允许开发者在多种操作系统上获取各种系统级别的信息,包括但不限于CPU状态、...

    sigar java采集win/linux 系统指标工具

    Sigar(System Information Gatherer and Reporter)是一款强大的跨平台系统信息收集库,由Hypertable组织开发,可用于获取各种操作系统的关键性能指标。它提供了一种简单统一的接口,使得开发者能够轻松地在Windows...

    基于java通过第三方jar包sigar的支持,完成对服务器系统的参数监控,包括CPU、内存、硬盘以及网络流量的实时监控.zip

    总之,通过使用Sigar库,Java开发者能够轻松构建一个全面的服务器监控系统,对CPU、内存、硬盘和网络流量进行实时监控,从而确保服务的高效稳定运行。这对于任何依赖于服务器性能的应用来说,都是至关重要的。

    sigar-amd64-86-win-linux.zip

    Sigar(System Information Gatherer and Reporter)是一款跨平台的系统信息收集库,由Hypertable组织开发,它提供了一种简单的方式来获取操作系统层面的各种信息,包括但不限于CPU、内存、网络、磁盘I/O等。...

    hyperic-sigar-1.6.4

    1. **系统信息收集**:Sigar提供了丰富的API,可以获取系统的基本信息,如操作系统类型、内核版本、主机名等。同时,它还能获取详细的硬件配置,如CPU型号、内存容量、磁盘空间等。 2. **进程管理**:Sigar可以监控...

    AArch64-sigar1.6.4.rar

    Sigar(System Information Gatherer and Reporter)是一个跨平台的系统信息收集和报告工具,它提供了丰富的API,允许开发者轻松地获取各种操作系统级别的信息,如内存使用情况、CPU负载、网络状态、进程列表等。...

    sigar包文件.zip

    使用Java开发时,Sigar库通常会与JNA(Java Native Access)或者JNI(Java Native Interface)一起工作,因为Sigar本身是用C语言编写的,通过这些接口可以让Java代码调用底层操作系统的服务。 在实际应用中,开发...

    Java运用sigar.jar获取服务器信息测试类

    总的来说,这个"Java运用sigar.jar获取服务器信息测试类"的目标是展示如何在Java程序中利用`sigar.jar`库来收集和报告服务器的详细信息。通过对CPU、内存、网络和操作系统的监控,可以帮助我们更好地理解服务器的...

    sigar兼容linux和windows

    Sigar(System Information Gatherer and Reporter)是一款跨平台的系统信息收集库,它为开发者提供了一种简单的方式来获取操作系统及硬件的各种信息。Sigar库由Hypertable项目开发并维护,现在已成为Apache软件基金...

    sigar.jar、sigar-amd64-winnt.dll、sigar-x86-winnt.dll

    Sigar(System Information Gatherer and Reporter)是一款强大的跨平台系统...通过使用sigar.jar和对应的DLL文件,Java开发者可以轻松地实现对服务器CPU、内存、网络等关键信息的监控,从而更好地管理和优化服务性能。

    sigar使用教程

    通过集成Sigar到你的应用程序,你可以实现跨平台的系统监控解决方案,无需深入了解不同操作系统的底层细节。此外,Sigar的API设计得相当直观,使得开发人员可以快速上手。 总之,Sigar作为一个强大的系统信息收集...

    sigar获取系统属性的jar

    Sigar(System Information Gatherer and Reporter)是一款强大的跨平台系统信息收集库,它允许开发者获取各种操作系统级别的数据,如CPU使用率、内存状态、网络信息、进程详情等。标题中的"sigar获取系统属性的jar...

    如何借助Sigar API获取CPU相关信息

    Sigar(System Information Gatherer and Reporter)是一款强大的跨平台系统信息收集库,它提供了一种简单的方法来获取操作系统级别的信息,包括CPU、内存、网络、磁盘和其他资源的状态。本项目将详细介绍如何利用...

    sigar-1.6.4-src

    Sigar(System Information Gatherer and Reporter)是一个跨平台的库,用于收集和查询操作系统和硬件级别的信息。在Java环境中,Sigar提供了一种简单而统一的API,允许开发者轻松地获取关于CPU、内存、硬盘以及其他...

    hyperic-sigar-1.6.4相关.rar

    Hyperic Sigar(System Information Gatherer and Reporter)是一款强大的跨平台系统管理工具,它提供了丰富的API,用于收集和监控各种操作系统级别的信息,如CPU使用率、内存状态、网络接口统计、磁盘I/O等。...

    sigar.jar等

    Sigar(System Information Gatherer and Reporter)是一款强大的跨平台系统信息收集库,由Hypertable组织开发。它提供了一种简单一致的API,用于获取各种操作系统(包括Linux、Windows、Unix等)的系统资源信息,如...

Global site tag (gtag.js) - Google Analytics