一、配置和启动SNMP服务
通过SNMP监控Windows主机需要在被监控的服务器上安装简单网络管理协议(SNMP)的Windows组件,以Windows 7系统为例:
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.OID;
import org.snmp4j.smi.OctetString;
import org.snmp4j.smi.UdpAddress;
import org.snmp4j.smi.VariableBinding;
import org.snmp4j.transport.DefaultUdpTransportMapping;
public class SNMPTestExample {
public static void main(String[] args) throws Exception {
System.out.println(" --------------- SNMPExample start ---------------");
TransportMapping<UdpAddress> transportMapping = new DefaultUdpTransportMapping();
Snmp snmp = new Snmp(transportMapping);
transportMapping.listen();
ResponseEvent response = null;
PDU pdu = new PDU();
pdu.add(new VariableBinding(new OID("1.3.6.1.2.1.1.2.0")));
pdu.setType(PDU.GET);
String address = "localhost" + "/" + 161;
Address targetAddress = new UdpAddress(address);
CommunityTarget target = new CommunityTarget();
target.setCommunity(new OctetString("public")); // 改字符串是我们在上面配置的
target.setAddress(targetAddress);
target.setRetries(2);
target.setTimeout(3000);
target.setVersion(SnmpConstants.version2c);
response = snmp.get(pdu, target);
System.out.println("result: " + response.getResponse());
System.out.println(" --------------- SNMPExample ended ---------------");
}
}
import org.snmp4j.ScopedPDU;
import org.snmp4j.Snmp;
import org.snmp4j.Target;
import org.snmp4j.TransportMapping;
import org.snmp4j.UserTarget;
import org.snmp4j.event.ResponseEvent;
import org.snmp4j.mp.MPv3;
import org.snmp4j.mp.SnmpConstants;
import org.snmp4j.security.AuthMD5;
import org.snmp4j.security.PrivDES;
import org.snmp4j.security.SecurityLevel;
import org.snmp4j.security.SecurityModels;
import org.snmp4j.security.SecurityProtocols;
import org.snmp4j.security.USM;
import org.snmp4j.security.UsmUser;
import org.snmp4j.smi.Address;
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 SNMPExampleVersion3 {
public static void main(String[] args) throws Exception {
TransportMapping<UdpAddress> transportMapping = new DefaultUdpTransportMapping();
Snmp snmp = new Snmp(transportMapping);
USM usm = new USM(SecurityProtocols.getInstance(), new OctetString(MPv3.createLocalEngineID()), 0);
SecurityModels.getInstance().addSecurityModel(usm);
transportMapping.listen();
ResponseEvent response = null;
ScopedPDU pdu = new ScopedPDU();
pdu.add(new VariableBinding(new OID("1.3.6.1.2.1.1.2.0")));
pdu.setType(PDU.GETNEXT);
String[] communities = {"private", "cur", "console", "public", "dashboard"};
// String address = "10.14.228.24"; // phxlb129a.phx.ebay.com big ip
// String address = "10.10.66.82"; // sr-filer07b.smf.ebay.com filer
String address = "localhost"; // lvslb05a.lvs.ebay.com netscaler
address = address + "/" + 161;
for (String communityString : communities) {
Address targetAddress = new UdpAddress(address);
Target target = new UserTarget();
//添加用户
snmp.getUSM().addUser(
new OctetString("MD5DES"),
new UsmUser(new OctetString("MD5DES"), AuthMD5.ID,
new OctetString("MD5DESUserAuthPassword"), PrivDES.ID,
new OctetString("MD5DESUserPrivPassword")));
//设置安全级别
target.setSecurityLevel(SecurityLevel.AUTH_PRIV);
target.setSecurityName(new OctetString("MD5DES"));
target.setVersion(SnmpConstants.version3);
pdu.setContextName(new OctetString(communityString));
target.setAddress(targetAddress);
target.setRetries(2);
target.setTimeout(3000);
target.setVersion(SnmpConstants.version3);
// response = snmp.send(pdu, getTarget(), null);
response = snmp.get(pdu, target);
System.out.println("result: " + response.getResponse());
}
}
}
相关推荐
通过这些基础知识点的学习,网络管理员可以利用Java语言和SNMP4J库完成服务器监控的工作,比如监控服务器的CPU负载、内存使用情况、磁盘空间以及各种网络接口的状态等。这对于维护服务器的稳定运行和及时发现网络...
SNMP协议通过简单的GET、SET操作来获取或设置网络设备的配置信息,同时提供TRAP机制用于设备向管理站报告异常事件。SNMP由三个主要组件构成:管理信息库(MIB)、管理站和代理。 二、net-snmp-5.9.4特性 1. 多平台...
通过解压、编译和安装net-snmp-5.8.tar.gz,我们可以获得SNMP代理和客户端工具,并利用其丰富的插件系统实现高效、灵活的网络监控。无论是新手还是经验丰富的系统管理员,掌握Net-SNMP都是提升网络管理能力的重要一...
Cacti利用SNMP协议从网络设备收集数据,如CPU利用率、内存使用情况、网络流量等,然后通过图形化界面展示出来,便于监控和故障排查。因此,net-snmp-5.7.2作为Cacti的数据采集工具,需要先进行安装和配置。 首先,...
通过上述内容,你应能掌握使用snmp4j库进行SNMP操作的基本方法,包括获取和设置MIB值,发送TRAP,以及在SNMPv3环境下的安全配置。这个eclipse工程提供了一个实用的起点,帮助你开始在Java项目中集成SNMP功能。
4. **日志监控**:配置日志记录,以便于跟踪和分析SNMP操作,帮助诊断问题。 通过以上步骤,你就可以成功地在你的系统中安装并运行net-snmp-5.7.3了。这个过程不仅锻炼了你的Linux操作技能,也让你更好地理解了网络...
SNMP(简单网络管理协议)是一种广泛用于网络设备管理的...例如,使用SNMP4J,你可以创建一个`Session`对象来建立与网络设备的连接,然后使用`PDU`(协议数据单元)对象来封装请求和响应。 下面是一个简单的Java SNM
这是我学习SNMP从零开始的学习资料,因为这方面的资料网上比较少,现拿出来和大家分享! 目录: docs_1.4.1 jar/jpcap.jar jar/SNMP4J.jar jar/snmp4jclt-1.2.1.zip jar/snmp.jar 基于java的Oid获取软件.rar Java...
SNMP4J是一个Java库,专门用于实现简单网络管理协议(SNMP)的应用程序。SNMP是网络管理和监控的...通过学习和应用SNMP4J,你可以有效地获取和处理网络设备的各种信息,这对于网络监控、故障排查和性能优化至关重要。
它们可以通过查询设备的MIB信息,获取设备的配置、性能和连接状态,从而构建网络的拓扑结构。 网络拓扑发现是网络管理中的重要环节,它能够帮助管理员了解网络设备间的物理和逻辑连接关系,识别潜在的问题,优化...
SNMP4J-Agentx 2.5.2版本的源码、示例和jar包包含在这个压缩包中,对于开发者来说是一个非常有价值的资源,可以帮助他们深入理解SNMP协议以及如何在Java环境中实现它。 SNMP(Simple Network Management Protocol)...
SNMP安装包-net-snmp-utils-5.7.2-49.el7_9.2.x86_64
SNMP4J是一个Java实现的SNMP协议库,使得Java开发者能够轻松地在应用程序中集成SNMP功能,从而对网络设备进行监控和管理。 SNMP4J.jar是这个库的核心组件,包含了SNMP协议的各种操作所需的类和方法。这个压缩包中的...
总结起来,通过在Windows上配置SNMP服务和使用Snmp4j库,我们可以轻松地在Java应用程序中获取本地设备的所有OID信息。这为网络管理、监控和故障排查提供了强大的工具。同时,深入理解和熟练运用Snmp4j,能够帮助IT...
SNMP4J是一个Java库,专门用于实现简单网络管理协议(SNMP)的应用程序。SNMP是一种广泛应用于网络设备管理的标准协议,它允许...这份文档将帮助你深入理解和应用SNMP4J库,以便在Java环境中有效地管理和监控网络设备。
本文将详细讲解如何使用Java的SNMP4J库来实现SNMP Trap接口,发送这些消息。 首先,我们需要了解SNMP4J库。SNMP4J是Java平台上的一个开源SNMP库,它提供了完整的SNMPv1、SNMPv2c和SNMPv3支持。该库不仅包含SNMP协议...
通过实际操作,例如设置SNMP代理,使用命令行工具查询设备信息,或者编写简单的SNMP应用程序,可以加深对SNMP的理解和应用。同时,配合MIB查看器,可以更有效地管理和维护网络设备。 总的来说,Net-SNMP-5.4.3是一...
- **snmpwalk**:这是一个非常有用的命令,用于遍历SNMP代理提供的所有MIB对象,帮助用户获取网络设备上的大量信息,如接口状态、内存使用情况、CPU负载等。 - **snmpget**:此命令用于获取特定的MIB对象值,用户...
3. **ReadMe**:提供了关于项目的基本信息和使用指南,包括如何安装、如何运行示例代码等。 4. **build.xml**:这是Apache Ant的构建文件,Ant是Java的一个构建工具,用于自动化构建过程,类似于Java项目的`pom.xml...
snmpget用于获取单个MIB对象的值,而snmpwalk则可以递归地获取整个MIB树的值,这对于了解网络设备的状态和配置非常实用。 在net-snmp-5.5.0-2.x64中,除了命令行工具外,还包括C语言编写的库函数,开发者可以利用...