SNMP Agent添加私有MIB

本文介绍了如何在Ubuntu 14.04 LTS环境下,为SNMP Agent添加私有MIB,包括编写MIB文件,使用mib2c工具生成C文件,编译动态库,配置snmpd.conf加载SO文件,并进行验证。
摘要由CSDN通过智能技术生成

环境:

系统:Ubuntu 14.04 LTS
snmp版本:net-snmp-5.7.3

step1.编写自己的MIB文件

这部分内容,网上的资料还是比较多的,自己在挖坑过程中没有遇到太多问题,不啰嗦了。给出一个自己写好的MIB文件,里面包含了一些注释:

QOS-MIB DEFINITIONS ::= BEGIN 

IMPORTS 
    OBJECT-GROUP, MODULE-COMPLIANCE, NOTIFICATION-GROUP
        FROM SNMPv2-CONF
    enterprises, Integer32, Unsigned32, OBJECT-TYPE, MODULE-IDENTITY,NOTIFICATION-TYPE
        FROM SNMPv2-SMI
    DisplayString
        FROM SNMPv2-TC;

--enterprises就是.1.3.4.1.4.1
-- ::={}格式里定义的就是当前节点的访问地址
--.1.3.6.1.4.1.73691
QosMIB MODULE-IDENTITY
    LAST-UPDATED "201803021450Z"
    ORGANIZATION
        ""
    CONTACT-INFO
        "sedwt-zjzhu"
    DESCRIPTION
        "XXX's QOS List MIB."
    ::= { enterprises 73691 }

--定义一个自己的根节点,访问地址为 QosMIB.1,也就是
--.1.3.6.1.4.1.73691.1
--这个根节点下面又定义了3个子节点
--SYNTAX是该节点数据类型,可以自己定义,也可以用标准里定义好的
--MAX-Access是该节点的读写属性,有not-accessible,read-only,read-write,read-create,根据自己需求选择合适的属性,read-create比较特殊,会在下一篇博客中单独讲。
Qos OBJECT IDENTIFIER ::= { QosMIB 1 }
    WANDevice OBJECT-TYPE
        SYNTAX Integer32 
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "参数解释:广域网侧设备。取值范围:4 - 4 ,默认值:4"
        ::= { Qos 1 }

    WANConnectionDevice OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "参数解释:广域网侧连接设备。,取值范围:1 - 1,默认值:1"
        ::= { Qos 2 }

    CID OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "参数解释:CID。取值范围:2 - 20,默认值:2"
        ::= { Qos 3 }
END 

step2.使用mib2c工具生成c文件

写好的MIB文件我们放在用户根目录/.snmp/MIBS/文件夹中,例如我的目录为:
/home/zzj/.snmp/MIBS/QOS-MIB.txt

前一篇博客中,我们已经是搭好了snmp环境的。但是在我过坑的过程中发现,环境的事还没完,比如这里的.snmp目录就是没有的,需要我们手动创建。
如果你问为啥非要是这个目录?其实也一定,哈哈。不过当你后面运行mib2c提示Cannot find module xxx异常时,命令行会输出扫描过的目录,其中就包含.snmp这个目录,你把MIB文件放在它扫描的其他目录也是阔以滴!

ok,跳过了第一个小坑,咱们接着跳。

按照一般攻略,咱们就要执行mib2c生成c文件了。执行前先which mib2c看看环境变量设置好了没:

zzj@sed:/home$ which mib2c
/usr/local/snmp/bin/mib2c

good,看来没问题,接下来就是关键的mib2c。执行如下命令:

zzj@sed:/home$ env MIBS="+/home/zzj/.snmp/mibs/QOS-MIB.txt" mib2c Qos
Can't find a configuration file called mib2c.conf
I looked in:
  .
  /usr/local/snmp/
  /usr/local/snmp/share/snmp/mib2c-data
  ./mib2c-conf.d

嗯?看来不太对?没看人提起过还有mib2c.conf这个文件啊!各种百度、Google,想着可能是和snmpd.conf类似,然而并不是啊。这里折腾了不少时间,一直没法转成c文件。某天我看net-snmp的安装目录的local文件,发现这里面就有mib2c.conf,而且这里也有mib2c.pl,抱着死马当活马医的心态,在这个目录下试了一下。终于和网上教程对上了有木有!!如下:

zzj@sed:~/net-snmp/net-snmp-5.7.3/local$ env MIBS="+/home/zzj/.snmp/mibs/QOS-MIB.txt" mib2c Qos
writing to -
mib2c has multiple configuration files depending on the type of
code you need to write.  You must pick one depending on your need.

You requested mib2c to be run 
  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
SNMP Agent源码是指基于SNMP协议的网络管理协议代理程序源代码。SNMP是一种用于管理网络设备的协议,通过SNMP Agent可以对网络设备进行监控、管理和配置,是目前网络管理中比较常用的一种协议。SNMP Agent源码主要用于开发SNMP协议代理程序,实现网络设备的监控和管理。SNMP Agent源码是复杂的、庞大的,因为SNMP协议涉及的领域很广,需要实现大量的功能模块。 SNMP Agent源码中包含了大量的代码和库文件,用于实现SNMP协议的各种功能。其中包括对SNMP协议的解析和构建、对SNMP消息的处理和转发、对网络设备的数据采集和监控等。此外,SNMP Agent源码还包含了多种通信模式的实现,如UDP、TCP、SNMP over IPv6等。因此,SNMP Agent源码需要开发者具备一定的网络编程和数据结构知识,同时对SNMP协议有一定的了解。 在开发SNMP Agent源码时,需要注意以下几点:首先,需要根据实际需求进行模块划分,将整个程序分为多个模块,方便后期维护和扩展。其次,需要充分考虑程序的可靠性和安全性,防止攻击者利用SNMP协议进行网络攻击。最后,还需要进行充分的测试工作,确保程序的稳定性和可靠性。 综上所述,SNMP Agent源码是实现SNMP协议代理程序的关键,对于网络管理和监控至关重要。开发SNMP Agent源码需要充分理解SNMP协议的原理和功能,掌握网络编程和数据结构知识,同时注重程序的可靠性、安全性和稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值