Chinaunix首页 | 论坛 | 博客
  • 博客访问: 588440
  • 博文数量: 50
  • 博客积分: 4764
  • 博客等级: 上校
  • 技术积分: 597
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-18 09:00
个人简介

资深IT码农,擅长Linux、C/C++、bash

文章分类

全部博文(50)

文章存档

2015年(17)

2014年(2)

2011年(7)

2010年(4)

2009年(20)

分类: LINUX

2014-02-21 10:13:32

SNMP编程经验总结

冷胜魁(Seaquester)
lengshengkui@gmail.com
2013-10-30

1. MIB模块一般都由变量和表组成。因此net-snmp把SMI中的对象分为两大类:scalar和table。scalar包含我们常用的整型,字符串等数据类型。table是scalar的一种集合,由一个和多个列组成,类似于数据库中的表。它必须有一个索引项,用来按顺序检索表项。

2. mib2c工具通过模版把MIB文件解析成.c和.h文件,但它生成的仅仅是个框架,还需要手工在相应地方添加相应代码。mib2c有很多模版,可以根据需要来调用。mib2c目前不支持同时解析scalar和table对象,对于具有这两种对象的MIB模块,需要分别生成代码文件,然后再合并。

3. 在MIB文件中定义object时,要注意object的名字不能含有下划线“_”,否则,在使用mib2c生成代码时,会提示error:Bad operator (_): At line nn in xx_MIB.txt。

4. 今天在编写一个MIB文件时发现,如果定义的是Table,需要注意Table的名字(名字必须带有Table)。否则,可能无法用mib2c生成代码。

5. 如果MIB文件中有Table,则在用mib2c生成代码之后,需要注意,Table的Index字段可能会被重复定义。需要小心检查。

6. 使用net-snmp的库编写的SNMP Agent模块,支持两种模式。一种是master agent,这种模式的agent不需要snmpd就可以运行。
另外一种是sub-agent,必须要依赖于snmpd才能运行,sub-agent与snmpd之间通过AgentX协议通讯(local socket)。
运行sub-agent之前,必须修改snmpd.conf。最简单的方法是,创建一个新文件,文件内容只包含下面几行:
    rocommunity public
    rwcommunity private
    master agentx
这几行主要是告诉snmpd 启用AgentX协议,sub-agent的community定义等。
然后,先启动snmpd,再运行sub-agent程序。

阅读(5948) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~