SNMP Agent添加私有MIB

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境:

系统: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 on the following part of the MIB tree</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值