java通过snmp查询linux节点,linux下snmp4j获取net-snmp的基本信息

本文介绍了如何在Linux环境下利用net-snmp获取系统信息,如sysObjectId、CPU和内存等。同时,文章讨论了如何通过Java的snmp4j库实现SNMP V3 trap功能,特别是解决如何获取并设置msgAuthoritativeEngineID、msgAuthoritativeEngineBoots和msgAuthoritativeEngineTime的方法,以确保与网管系统的有效通信。
摘要由CSDN通过智能技术生成

linux下,net-snmp已经提供了完整的snmp服务和框架,尤其是基本的snmp信息,如sysObjectId、CPU、内存等。通过标准的snmp的oid,可以很容易的从net-snmp所提供的服务中获取这些信息。但net-snmp的trap功能需要通过脚本来配置和实现,这对于很多做web或java开发的人来说,比较陌生。借助snmp4j,很多熟悉java的人,可以快速的实现基于snmp4j的trap功能。

trap就是基于snmp的agent,运行在被检测的服务器节点上,检测所需要的服务运行状态,当某些指标超过所配置的告警指标,就自动想所配置的网管汇报告警信息。

通常情况下,对于不同的agent,网管中会有独立的标识,也即是sysObjectId。网管与agent之间也会保持心跳信息。net-snmp提供了基本的心跳服务。在心跳信息中,会包含sysObjectId,如果是V3协议,还需要在所有通讯交互的协议头中包含msgAuthoritativeEngineID、msgAuthoritativeEngineBoots、msgAuthoritativeEngineTime,这些信息,snmp4j默认是不对外提供的,也就是没有现成的接口供我们使用(至少目前我没找到,如果有人找到了,告诉我一下)。

msgAuthoritativeEngineID:是trap的ID,唯一标识一个trap,网管通过该值区分不同的trap。该值可以通过net-snmp的配置文件中配置,如在snmpd.conf中增加一下配置项:

oldEngineID 0x8000bee9043133363134313438383733

oldEngineID为

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值