免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6674 | 回复: 8
打印 上一主题 下一主题

SNMP Agent扩展主要步骤,内容及问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-11 20:12 |只看该作者 |倒序浏览
我采用的方法是将自定义mib文件编译后加入到net-snmp-5.4.1.2的代理中扩展.主要步骤及问题如下:
1 自定义MIB文件SC-ST.txt

SCN-PRIVATE DEFINITIONS ::= BEGIN

-- SC-ST.txt
-- this file is a MIB tree description for ucd-snmpd.
--
--    private
--      |
--      scn
--              |______________
--              |                      |
--      scboxTable              scnodeTable
--
-- copy scboxTable.[hc] and scnodeTable.[hc] into ucd-snmp-src/agent/mibgroup, remake and install ucd-snmp
--              include with-mib-modules="scboxTable scnodeTable ..." config option.
-- copy this file into ucd-snmpd mibs directory. (usually be /usr/local/share/snmp/mibs) , and
--              copy
-- copyright: socix
-- developer: Joshua Yu
-- date: 2004-06-13


IMPORTS
        private        FROM SNMPv2-SMI;

--    ORGANIZATION "Socix"
--        LAST-UPDATED "2004-6-13 04:38:51 CST"
--    CONTACT-INFO "Joshua Yu
--            Phone:  +86 1358848xxxx
--            Email:  JoshuaYu@hotmail.com"
--    DESCRIPTION
--            "The MIB module for managing SCBOX implementations."
--    REVISION      "1.2"


-- the scn group

scn            OBJECT IDENTIFIER ::= { private 2 }
......
2 使用mib2c编译为.c .h文件,并略作修改.
.......

#define SBDEVADDR              1
    {SBDEVADDR, ASN_OCTET_STR, RWRITE, var_scboxTable, 2, {1, 1}},
#define SBDEVNAME              2
    {SBDEVNAME, ASN_OCTET_STR, RWRITE, var_scboxTable, 2, {1, 2}},
#define SBDEVNOTE              3
    {SBDEVNOTE, ASN_OCTET_STR, RWRITE, var_scboxTable, 2, {1, 3}},
#define SBPOWERI                4
    {SBPOWERI, ASN_INTEGER, RONLY, var_scboxTable, 2, {1, 4}},
#define SBPOWERII              5
    {SBPOWERII, ASN_INTEGER, RONLY, var_scboxTable, 2, {1, 5}},
#define SBTEMP          6
    {SBTEMP, ASN_INTEGER, RONLY, var_scboxTable, 2, {1, 6}},
};

/*
* (L = length of the oidsuffix)
*/


/** Initializes the scboxTable module */
void
init_scboxTable(void)
{

    DEBUGMSGTL(("scboxTable", "Initializing\n"));

    /*
    * register ourselves with the agent to handle our mib tree
    */
    REGISTER_MIB("scboxTable", scboxTable_variables, variable4,
                scboxTable_variables_oid);

    /*
    * place any other initialization junk you need here
    */
}

/*
.......

3 通过net-snmp-5.4.1开发包,按readme操作说明将这两个文件编译进snmpd代理
4 启动snmpd代理如下
  C:\usr\bin>snmpd -f -Le -d
  netsnmp_assert x failed /home/yy/soft/net-snmp-5.4.1.2/agent/agent_registry.c:
535
netsnmp_assert x failed /home/yy/soft/net-snmp-5.4.1.2/agent/agent_registry.c:
535
netsnmp_assert x failed /home/yy/soft/net-snmp-5.4.1.2/agent/agent_registry.c:
535
NET-SNMP version 5.4.1.2

5 另开窗口,发送查询命令
snmpget -c public -v 2c localhost system.sysUpTime.0
  当前窗口提示如下
  DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (13650) 0:02:16.50
  代理窗口提示如下:
  Received 41 bytes from UDP: [127.0.0.1]:1120
0000: 30 27 02 01  01 04 06 70  75 62 6C 69  63 A0 1A 02    0'.....public...
0016: 02 5A DE 02  01 00 02 01  00 30 0E 30  0C 06 08 2B    .Z.......0.0...+
0032: 06 01 02 01  01 03 00 05  00                          .........

Received SNMP packet(s) from UDP: [127.0.0.1]:1120
  GET message
    -- DISMAN-EVENT-MIB::sysUpTimeInstance

Sending 43 bytes to UDP: [127.0.0.1]:1120
0000: 30 29 02 01  01 04 06 70  75 62 6C 69  63 A2 1C 02    0).....public...
0016: 02 5A DE 02  01 00 02 01  00 30 10 30  0E 06 08 2B    .Z.......0.0...+
0032: 06 01 02 01  01 03 00 43  02 35 52                    .......C.5R
  
6 发送查询自定义节点信息命令
  snmpget -c public -v 2c localhost scboxTable.1
  当前窗口提示如下
  BRITGW-MIB::BitSyn = No Such Object available on this agent at this OID
  代理窗口提示如下:
  Received 40 bytes from UDP: [127.0.0.1]:1125
0000: 30 26 02 01  01 04 06 70  75 62 6C 69  63 A0 19 02    0&.....public...
0016: 02 76 95 02  01 00 02 01  00 30 0D 30  0B 06 07 2B    .v.......0.0...+
0032: 06 01 04 01  01 01 05 00                              ........

Received SNMP packet(s) from UDP: [127.0.0.1]:1125
  GET message
    -- BRITGW-MIB::scboxEntry

Sending 40 bytes to UDP: [127.0.0.1]:1125
0000: 30 26 02 01  01 04 06 70  75 62 6C 69  63 A2 19 02    0&.....public...
0016: 02 76 95 02  01 00 02 01  00 30 0D 30  0B 06 07 2B    .v.......0.0...+
0032: 06 01 04 01  01 01 80 00                              ......

论坛徽章:
0
2 [报告]
发表于 2008-10-11 20:32 |只看该作者
[root@localhost mibs]# snmptranslate -Tp -IR scn
+--scn(2)
   |
   +--scboxTable(1)
   |  |
   |  +--scboxEntry(1)
   |     |
   |     +-- -RW- String    sbDevAddr(1)
   |     |        Size: 0..32
   |     +-- -RW- String    sbDevName(2)
   |     |        Size: 0..32
   |     +-- -RW- String    sbDevNote(3)
   |     |        Size: 0..32
   |     +-- -R-- INTEGER   sbPowerI(4)
   |     |        Range: 0..1
   |     +-- -R-- INTEGER   sbPowerII(5)
   |     |        Range: 0..1
   |     +-- -R-- INTEGER   sbTemp(6)
   |
   +--scnodeTable(2)
      |
      +--scnodeEntry(1)
         |
         +-- -R-- INTEGER   snBoxNum(1)
         |        Range: 0..15
         +-- -R-- INTEGER   snNodeNum(2)
         |        Range: 0..15
         +-- -R-- INTEGER   snNodeType(3)
         |        Range: 0..254
         +-- -R-- INTEGER   snOnline(4)
         |        Range: 0..1
         +-- -RW- INTEGER   snDisable(5)
         |        Range: 0..1
         +-- -RW- INTEGER   snSpeed(6)
         |        Range: 1..3
         +-- -RW- INTEGER   snDuplex(7)
         |        Range: 1..3
         +-- -RW- INTEGER   snFlowRate(
         |        Range: 1..7
         +-- -R-- INTEGER   snLed(9)
                  Range: 0..255
[root@localhost mibs]#
这样可以看看到节点但是
[root@localhost mibs]# snmpwalk -v2c -c public localhost scnodeTable
SCN-PRIVATE::scnodeTable = No Such Object available on this agent at this OID
[root@localhost mibs]# snmpget -v2c -c public localhost scnodeTable.0  
SCN-PRIVATE::scnodeTable.0 = No Such Object available on this agent at this OID
[root@localhost mibs]# snmpget -v2c -c public localhost 1.3.6.1.4.2.1.1
SCN-PRIVATE::scboxEntry = No Such Object available on this agent at this OID
[root@localhost mibs]#
确都出现这个问题,不知道怎么回事的;请大家帮个忙!

论坛徽章:
0
3 [报告]
发表于 2008-10-11 22:13 |只看该作者
自己顶一下

论坛徽章:
0
4 [报告]
发表于 2008-10-11 23:26 |只看该作者
还真是奇怪的了
[root@localhost mibs]# snmptranslate -On SCN-PRIVATE::scn.scboxTable.1                  
.1.3.6.1.4.2.1.1
[root@localhost mibs]#
[root@localhost mibs]# snmpget -v2c -c public localhost scboxTable.0               
SCN-PRIVATE::scboxTable.0 = No Such Instance currently exists at this OID
[root@localhost mibs]# snmpget -v2c -c public localhost 1.3.6.1.4.2.1
SCN-PRIVATE::scboxTable = No Such Instance currently exists at this OID

我明明把代码添加进去的了,也有初始化函数的,但是他怎么就认不到呢?到底是snmpd那个地方还要添加我这个模块初始化的呢、?

论坛徽章:
0
5 [报告]
发表于 2008-10-13 09:19 |只看该作者
自己再顶

论坛徽章:
0
6 [报告]
发表于 2014-08-15 16:14 |只看该作者
问题解决了吗?我也是可以识别MIB,但就是读不出来???你是怎么解决的,非常感谢,已经被困扰快一个月了,非常感谢啊!!!回复 5# yyying


   

论坛徽章:
14
水瓶座
日期:2014-06-10 09:51:0215-16赛季CBA联赛之江苏
日期:2017-11-27 11:42:3515-16赛季CBA联赛之八一
日期:2017-04-12 14:26:2815-16赛季CBA联赛之吉林
日期:2016-08-20 10:43:1215-16赛季CBA联赛之广夏
日期:2016-06-23 09:53:58程序设计版块每日发帖之星
日期:2016-02-11 06:20:00程序设计版块每日发帖之星
日期:2016-02-09 06:20:0015-16赛季CBA联赛之上海
日期:2015-12-25 16:40:3515-16赛季CBA联赛之广夏
日期:2015-12-22 09:39:36程序设计版块每日发帖之星
日期:2015-08-24 06:20:002015亚冠之德黑兰石油
日期:2015-08-07 09:57:302015年辞旧岁徽章
日期:2015-03-03 16:54:15
7 [报告]
发表于 2014-08-15 17:15 |只看该作者
本帖最后由 lxyscls 于 2014-08-15 17:16 编辑

你妈,6年的坟啊,草都人高了{:3_197:}

你们只是简单的把mib文件添加到了识别系统里面去,所以snmptranslate可以读出来

但是没有代码,读得出来才怪!

mib2c生成代码,集成到snmpd里面,或者实现成一个agent端(使用agentx协议)

http://www.net-snmp.org/wiki/index.php/TUT:Writing_a_Subagent

论坛徽章:
0
8 [报告]
发表于 2014-09-29 15:39 |只看该作者
6楼的,我也遇到上边的问题,请问你解决了吗?能留个联系方式吗?可以一起研究呀,huizi0009@163.com

论坛徽章:
0
9 [报告]
发表于 2014-10-21 17:19 |只看该作者
6楼的朋友,你怎么样了?问题解决了吗?这个问题也困扰我好久了,能留个联系方式吗?我的huizi0009@163.com
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP