- 浏览: 387974 次
- 性别:
- 来自: 北京
最新评论
-
liuzhongzhou2721:
不错啊
Snmp4j编程简介之三:Snmp -
ahong520:
我在Keystore.getInstance("JK ...
java实现 SSL双向认证 -
tanghanlin:
好吧,还是支持下
Snmp4j编程简介之三:Snmp -
sjp524617477:
mark
java实现 SSL双向认证 -
dikesky:
您好,看了您的这篇文章学到很多东西。希望您提供一个QQ号(发到 ...
httpclient笔记(二)
常用SNMP OID
Linux SNMP OID’s for CPU,Memory and Disk Statistics
SNMP stands for Simple Network Management Protocol and consists of three key components: managed devices, agents, and network-management systems (NMSs). A managed device is a node that has an SNMP agent and resides on a managed network. These devices can be routers and access server, switches and bridges, hubs, computer hosts, or printers. An agent is a software module residing within a device. This agent translates information into a compatible format with SNMP. An NMS runs monitoring applications. They provide the bulk of processing and memory resources required for network management.
SNMP MIBs, OIDs Overview
MIB stands for Management Information Base and is a collection of information organized hierarchically. These are accessed using a protocol such as SNMP. There are two types of MIBs: scalar and tabular. Scalar objects define a single object instance whereas tabular objects define multiple related object instances grouped in MIB tables.
MIB files for specific devices or systems can be downloaded from here
OIDs or Object Identifiers uniquely identify manged objects in a MIB hierarchy. This can be depicted as a tree, the levels of which are assigned by different organizations. Top level MIB object IDs (OIDs) belong to different standard organizations. Vendors define private branches including managed objects for their own products.
Here is a sample structure of an OID
Iso (1).org(3).dod(6).internet(1).private(4).transition(868).products(2).chassis(4).card(1).slotCps(2)
.cpsSlotSummary(1).cpsModuleTable(1).cpsModuleEntry(1).cpsModuleModel(3).3562.3
Most of the people may be looking for OID’s for Linux OID’s for CPU,Memory and Disk Statistics for this first you need to install SNMP server and clients. If you want to install SNMP server and client installation in linux学习 check here
CPU Statistics
Load
1 minute Load: .1.3.6.1.4.1.2021.10.1.3.1
5 minute Load: .1.3.6.1.4.1.2021.10.1.3.2
15 minute Load: .1.3.6.1.4.1.2021.10.1.3.3
CPU
percentage of user CPU time: .1.3.6.1.4.1.2021.11.9.0
raw user cpu time: .1.3.6.1.4.1.2021.11.50.0
percentages of system CPU time: .1.3.6.1.4.1.2021.11.10.0
raw system cpu time: .1.3.6.1.4.1.2021.11.52.0
percentages of idle CPU time: .1.3.6.1.4.1.2021.11.11.0
raw idle cpu time: .1.3.6.1.4.1.2021.11.53.0
raw nice cpu time: .1.3.6.1.4.1.2021.11.51.0
Memory Statistics
Total Swap Size: .1.3.6.1.4.1.2021.4.3.0
Available Swap Space: .1.3.6.1.4.1.2021.4.4.0
Total RAM in machine: .1.3.6.1.4.1.2021.4.5.0
Total RAM used: .1.3.6.1.4.1.2021.4.6.0
Total RAM Free: .1.3.6.1.4.1.2021.4.11.0
Total RAM Shared: .1.3.6.1.4.1.2021.4.13.0
Total RAM Buffered: .1.3.6.1.4.1.2021.4.14.0
Total Cached Memory: .1.3.6.1.4.1.2021.4.15.0
Disk Statistics
The snmpd.conf needs to be edited. Add the following (assuming a machine with a single ‘/’ partition):
disk / 100000 (or)
includeAllDisks 10% for all partitions and disks
The OIDs are as follows
Path where the disk is mounted: .1.3.6.1.4.1.2021.9.1.2.1
Path of the device for the partition: .1.3.6.1.4.1.2021.9.1.3.1
Total size of the disk/partion (kBytes): .1.3.6.1.4.1.2021.9.1.6.1
Available space on the disk: .1.3.6.1.4.1.2021.9.1.7.1
Used space on the disk: .1.3.6.1.4.1.2021.9.1.8.1
Percentage of space used on disk: .1.3.6.1.4.1.2021.9.1.9.1
Percentage of inodes used on disk: .1.3.6.1.4.1.2021.9.1.10.1
System Uptime: .1.3.6.1.2.1.1.3.0
Examples
These Commands you need to run on the SNMP server
Get available disk space for / on the target host
#snmpget -v 1 -c “community” target_name_or_ip .1.3.6.1.4.1.2021.9.1.7.1
this will return available disk space for the first entry in the ‘disk’ section of snmpd.conf; replace 1 with n for the nth entry
Get the 1-minute system load on the target host
#snmpget -v 1 -c “community” target_name_or_ip .1.3.6.1.4.1.2021.10.1.3.1
Get the 5-minute system load on the target host
#snmpget -v 1 -c “community” target_name_or_ip .1.3.6.1.4.1.2021.10.1.3.2
Get the 15-minute system load on the target host
#snmpget -v 1 -c “community” target_name_or_ip .1.3.6.1.4.1.2021.10.1.3.3
Get amount of available swap space on the target host
#snmpget -v 1 -c “community” target_name_or_ip .1.3.6.1.4.1.2021.4.4.0
import java.io.IOException; import java.net.InetAddress; import java.util.Vector; import org.snmp4j.AbstractTarget; import org.snmp4j.CommunityTarget; import org.snmp4j.PDU; import org.snmp4j.Snmp; import org.snmp4j.TransportMapping; import org.snmp4j.event.ResponseEvent; import org.snmp4j.mp.SnmpConstants; import org.snmp4j.smi.Address; import org.snmp4j.smi.GenericAddress; import org.snmp4j.smi.OID; import org.snmp4j.smi.OctetString; import org.snmp4j.smi.UdpAddress; import org.snmp4j.smi.VariableBinding; import org.snmp4j.transport.DefaultUdpTransportMapping; public class SNMP_oper ...{ public static void main(String[] args) ...{ try ...{ Address targetAddress = GenericAddress.parse("udp:127.0.0.1/161"); TransportMapping transport = new DefaultUdpTransportMapping(); Snmp snmp = new Snmp(transport); transport.listen();//监听 CommunityTarget target = new CommunityTarget(); target.setCommunity(new OctetString("public"));//设置共同体名 target.setAddress(targetAddress);//设置目标Agent地址 target.setRetries(2);//重试次数 target.setTimeout(5000);//超时设置 target.setVersion(1);//版本 PDU request = new PDU(); request.setType(PDU.GET);//操作类型GET request.add(new VariableBinding(new OID(".1.3.6.1.2.1.1.1.0")));//OID_sysDescr request.add(new VariableBinding(new OID(".1.3.6.1.2.1.1.2.0")));//OID_sysObjectID request.add(new VariableBinding(new OID(".1.3.6.1.2.1.1.3.0")));//OID_sysUpTime System.out.println("Request UDP:" + request); ResponseEvent respEvt = snmp.send(request, target); //读取得到的绑定变量 if (respEvt != null && respEvt.getResponse()!=null) ...{ Vector <VariableBinding> revBindings = respEvt.getResponse().getVariableBindings(); for (int i=0; i<revBindings.size();i++) ...{ VariableBinding vbs = revBindings.elementAt(i); System.out.println(vbs.getOid()+":"+vbs.getVariable()); } } } catch (IOException e) ...{ e.printStackTrace(); } } }
更详细是资料 http://blog.chinaunix.net/u/10921/showart_202809.html
评论
使用您的这段代码试了一下,能读取到本机的一些信息,然后我把IP改成远程主机的就读取不到信息了,但是我用MG-SOFT MIB Browser能读取到那台的信息,比如已运行时间什么的,这是为什么?
是不是OID的格式有问题,最前面的那个点代表什么?
谢谢
你好又有个问题要问你,table型的数据要怎么全部读出来。例如网络流入数据包这个信息,它的oid是1.3.6.1.2.1.2.2.1.10.0,这个oid对应着是一个表格。如果按照上面讲的方法去做,那么只能读出table的第一个数据。如果想全部读出来要怎么做呢?网上搜来一段程序,如下......OID[] columns = new OID[1]; columns[0] = new VariableBinding(new OID ("1.3.6.1.2.1.2.2.1.10.0")).getOid(); List list = tu.getTable(target, columns, null, null); System.out.println(list.size()); for(int i=0;i<list.size();i++){ System.out.println("aaaaaa"); System.out.println(list); TableEvent te = (TableEvent)list.get(i); System.out.println("bbbb"); VariableBinding [] vbs = te.getColumns(); System.out.println(vbs[0]); for(int j=0;j<vbs.length;j++){ System.out.println(vbs[j]); } }..............但是运行会出错误,不知道该怎么办,能指导下吗,谢谢
上面的例子,返回的是个ResponseEvent,如果返回的是个Table,我觉得应该用TableEvent,这个我没有用到过,你可以试试看。
The TableEvent class reports events in a table retrieval operation.
网上搜来一段程序,如下
......
OID[] columns = new OID[1];
columns[0] = new VariableBinding(new OID ("1.3.6.1.2.1.2.2.1.10.0")).getOid();
List list = tu.getTable(target, columns, null, null);
System.out.println(list.size());
for(int i=0;i<list.size();i++){
System.out.println("aaaaaa");
System.out.println(list);
TableEvent te = (TableEvent)list.get(i);
System.out.println("bbbb");
VariableBinding [] vbs = te.getColumns();
System.out.println(vbs[0]);
for(int j=0;j<vbs.length;j++){
System.out.println(vbs[j]);
}
}
..............
但是运行会出错误,不知道该怎么办,能指导下吗,谢谢
不同硬件设备的OID是不一样的,与设备的制造商有关,通过一些开源的监控设备可以检测到这些OID的值,或者咨询设备生产商。
如果开发通用的监控程序,必须知道你所检测设备中各项功能的OID值,如果只是自己公司内部用的,可以自己实现这些功能,比如监测CPU等信息。
谢谢!明白了
你好,我最近也在做一个snmp4j的开发项目,类似于网络监测系统。要显示服务器的cpu和内存以及磁盘的使用情况。看了你的关于snmp的资料,收获很多。这里有个问题想请教下:服务器的cpu、内存的oid,不同的机器是一样的吗?还是说不同的机器的cpu和内存有不同的oid?我写了一个target的程序,能够读出public的oid,例如系统的名字和运行时间等。那如果要读取cpu的相关信息的话,直接按照你给的oid去读取如:CPUpercentage of user CPU time: .1.3.6.1.4.1.2021.11.9.0raw user cpu time: .1.3.6.1.4.1.2021.11.50.0percentages of system CPU time: .1.3.6.1.4.1.2021.11.10.0raw system cpu time: .1.3.6.1.4.1.2021.11.52.0percentages of idle CPU time: .1.3.6.1.4.1.2021.11.11.0raw idle cpu time: .1.3.6.1.4.1.2021.11.53.0raw nice cpu time: .1.3.6.1.4.1.2021.11.51.0还是要查找针对相应机器的cpu的oid。还有就是如果我想查看我的目标服务器的cpu和内存以及磁盘的oid的话,要怎么做,谢谢!
不同硬件设备的OID是不一样的,与设备的制造商有关,通过一些开源的监控设备可以检测到这些OID的值,或者咨询设备生产商。
如果开发通用的监控程序,必须知道你所检测设备中各项功能的OID值,如果只是自己公司内部用的,可以自己实现这些功能,比如监测CPU等信息。
你好,我最近也在做一个snmp4j的开发项目,类似于网络监测系统。要显示服务器的cpu和内存以及磁盘的使用情况。看了你的关于snmp的资料,收获很多。这里有个问题想请教下:服务器的cpu、内存的oid,不同的机器是一样的吗?还是说不同的机器的cpu和内存有不同的oid?我写了一个target的程序,能够读出public的oid,例如系统的名字和运行时间等。
那如果要读取cpu的相关信息的话,直接按照你给的oid去读取
如:
CPU
percentage of user CPU time: .1.3.6.1.4.1.2021.11.9.0
raw user cpu time: .1.3.6.1.4.1.2021.11.50.0
percentages of system CPU time: .1.3.6.1.4.1.2021.11.10.0
raw system cpu time: .1.3.6.1.4.1.2021.11.52.0
percentages of idle CPU time: .1.3.6.1.4.1.2021.11.11.0
raw idle cpu time: .1.3.6.1.4.1.2021.11.53.0
raw nice cpu time: .1.3.6.1.4.1.2021.11.51.0
还是要查找针对相应机器的cpu的oid。
还有就是如果我想查看我的目标服务器的cpu和内存以及磁盘的oid的话,要怎么做,谢谢!
发表评论
-
OpenNMS® 安裝指南
2011-03-10 16:20 1906THIS DOCUMENT IS FOR OpeNNMS 1. ... -
OSGI学习笔记(三)
2010-09-09 11:08 1205OSGi依赖性管理 OSGi允许您把您的应用程序分成多个模 ... -
OSGI学习笔记(二)
2010-09-09 11:03 1537开发一个简单的Hello World的OSGi Bundle( ... -
OSGI学习笔记(一)
2010-09-09 10:43 1200OSGi是什么 OSGi亦称做Java语言的动态模块系统,它 ... -
Javarebel小试
2010-09-07 16:49 34191 Javarebel简介 JavaRebel是一个JV ... -
240多个jQuery插件下载地址
2009-08-11 17:24 12049概述 jQuery 是继 prototype 之后又一个优秀 ... -
关于SNMP的RFC文档号
2009-05-04 16:10 4635一. SMIv1Full Standards: ... -
JavaCard CPU的设计与FPGA实现
2009-05-04 14:28 22581 JavaCard简介 智能 ... -
Java Card 技术(三)
2009-05-04 14:17 2665Java Card 应用程序的元素 请记住,Java ... -
Java Card 技术(二)
2009-05-04 14:13 2764本系列文章的第 1 部分介绍了 Java Card 技术的 ... -
Extjs学习笔记(一)
2008-12-15 13:39 1634下载extj :http://extjs.com/deploy ... -
ftp4j之FTP
2008-12-01 10:11 3740The ftp4j library implements a ... -
James学习笔记
2008-11-25 15:13 3421Apache James 简称 James, 是 Java ... -
非阻塞的Socket链接(来自老紫竹)
2008-11-25 11:10 1751import java.io.IOException; ... -
java实现 SSL双向认证
2008-11-24 16:36 31291实现技术:JSSE(Java Security Socket ... -
编码传说
2008-11-21 17:38 1349很久很久以前,有一群人,他们决定用8个可以开合的晶体管来 ... -
使用Log4j进行日志操作
2008-10-16 11:36 1182使用Log4j进行日志操作1. 概述1.1. 背景在应用程序中 ... -
linux 下cpu 内存 磁盘 jvm的使用监控
2008-07-24 13:50 2986java 监控linux CPU 内存 磁盘 JVM: imp ... -
snmp4j获取数据agent实例(三)
2008-07-03 11:43 6735agent代理端例子: import java.util. ... -
snmp4j获取数据实例(二)之SnmpTrap示例
2008-07-03 10:27 6655snmp4j的jar包可以在它的官方网站http://www. ...
相关推荐
本篇文章将详细介绍如何在Windows环境下配置SNMP服务,并利用Snmp4j获取本地所有OID(对象标识符)。 首先,我们需要了解SNMP服务的安装与配置。在Windows系统中,SNMP服务通常不默认安装,因此我们需要手动进行...
一个用SNMP4J编的读取OID值的源码 SNMP4J开发trap监听实例 snmp4j获取数据实例
通过这些基础知识点的学习,网络管理员可以利用Java语言和SNMP4J库完成服务器监控的工作,比如监控服务器的CPU负载、内存使用情况、磁盘空间以及各种网络接口的状态等。这对于维护服务器的稳定运行和及时发现网络...
在Java环境中,SNMP4J库为开发者提供了便利,可以用来读取和操作SNMP协议的数据。本文将深入探讨如何利用SNMP4j包来读取SNMP协议数据。 首先,理解SNMP4j的基本概念至关重要。SNMP4j是一个开源的Java库,完全实现了...
SNMP4j库为Java开发者提供了一个完整的SNMP解决方案,包括PDU(协议数据单元)的构建、编码、解码以及错误处理等功能。使用SNMP4j,你可以轻松地创建SNMPv1、SNMPv2c或SNMPv3的请求,并处理来自目标设备的响应。 ...
总结来说,通过SNMP获取远程主机的内存利用率和CPU使用率涉及SNMP协议的理解、OID的选择、以及使用像SNMP4J这样的库来构建SNMP请求和解析响应。在Java程序中,这通常包括建立SNMP会话、构造PDU、发送GET请求以及解析...
在“snmp4j获取数据实例.doc”文档中,我们将探讨如何利用 SNMP4J 库来获取网络设备的数据。这个实例将涵盖以下几个关键知识点: 1. **SNMP 协议基础** SNMP 由三个主要组件构成:管理站(Manager)、代理(Agent...
在这个"SNMP4J远程获取设备信息案例"中,我们将深入探讨如何使用SNMP4J库来从远程设备获取数据。 首先,我们需要理解SNMP的基本概念。SNMP由三个主要组件构成:管理站(Manager)、代理(Agent)和管理信息库(MIB...
基于java的Oid获取软件.rar Java进行SNMP通信的指南SnmpProgrammingGuideViaJava.doc Java实现snmp的get和walk代码示例.doc snmp4j.chm snmp.chm SnmpMain.java snmp配置说明.doc snmp协议详细讲解.doc ...
本文将详细介绍SNMP实例,特别是通过Java库snmp4j实现的GET、GETNEXT、SET操作以及TRAP发送和MIB获取。 1. **SNMP基本概念** SNMP由三个主要组件构成:管理站(Manager)、代理(Agent)和管理信息库(MIB)。管理...
在Java中,利用`Snmp4j`库可以方便地实现SNMP的GET操作,用于获取网络设备上特定OID的值。以下是对代码示例的详细解析: 1. **初始化环境** - 定义了版本号、协议类型、端口号等基础参数。 - 引入必要的包,包括`...
SNMP4J是一个Java实现的SNMP协议库,使得Java开发者能够轻松地在应用程序中集成SNMP功能,从而对网络设备进行监控和管理。 SNMP4J.jar是这个库的核心组件,包含了SNMP协议的各种操作所需的类和方法。这个压缩包中的...
"SNMP_WALK"是利用SNMP协议进行数据查询的一个功能,它能够遍历设备的MIB(Management Information Base)树,获取指定OID(Object Identifier,对象标识符)的所有子节点信息。 SNMP_WALK工具通常是一个命令行实用...
在SNMP4J中,你需要创建一个GetNextRequest PDU,同样指定一个OID。这个操作通常用于遍历MIB树,获取连续的对象信息。 5. SET操作: SET操作允许你修改MIB中的对象值。通过创建SetRequest PDU,指定要修改的OID...
SNMP(简单网络管理协议)是用于网络设备管理的标准协议,而SNMP4J是一个Java实现的SNMP库,它提供了在Java应用程序中与SNMP兼容设备交互的能力。"SNMP get walk" 是一个关键的操作,它允许从网络设备中批量获取MIB...
SNMP4J是一个Java库,专门用于实现简单网络管理协议(SNMP)的应用程序。SNMP是一种广泛应用于网络设备管理的标准协议,它允许系统管理员远程监控和管理网络设备,如路由器、交换机、服务器等。在Java环境中,SNMP4J...
SNMP4J-Agent是SNMP4J项目的一部分,是一个开源的Java库,用于实现SNMP代理功能。它提供了丰富的API,可以方便地构建自定义的SNMP代理。通过模拟SNMP服务,开发者可以在没有实际网络设备的情况下测试SNMP客户端应用...
标题中的"snmp4j-1.9.3d.zip_snmp4j-1.9.3d_snmp管理工具"表明这是一个版本为1.9.3d的SNMP4J库的压缩包,它包含了对SNMP协议的支持和一些管理功能。 SNMP,全称Simple Network Management Protocol,是一种应用层...