net-snmp agent开发

本文介绍了在opensuse 11.3环境下,如何使用net-snmp包进行SNMP代理开发。包括安装必要的软件包,编写MIB库,使用mib2c工具生成代码,修改关键代码以处理数据,以及编译、配置和启动服务的过程。
摘要由CSDN通过智能技术生成


1、
系统环境:
opensuse 11.3

2、
需要安装的net-snmp包:
net-snmp
net-snmp-devel
perl-SNMP
snmp-mibs
libsnmp20
可以使用 zypper 安装来解决包依赖问题(zypper install net-snmp 和 net-snmp-devel)。

3、
写一个MIB库:(参照ASN.1抽象标记语言生成SMI、MIB)
 MyMIB DEFINITIONS::=BEGIN

      
 IMPORTS     

             
     enterprises,OBJECT-TYPE,Integer32,TimeTicks

                    
      FROM SNMPv2-SMI
.....

4、编译
MIB库存放路径:/usr/share/snmp/mibs/mymib.mib
配置文件路径: /etc/snmp/mymib.conf
指令:
env MIBS="+/usr/share/snmp/mibs/mymib.mib" mib2c mymib
利用向导生成.c文件
  步骤如下: (选2)Net-SNMP style code --> (选1) destroyed independently of the SNMP agent -->
      (选2)mib2c -c mib2c.iterate_access.conf mymib -->看到提示:
**********************************************************************
NOTE:  The only files you MUST modify should be the following:
  mymib_access.c
  mymib_access.h
  mymib_checkfns_local.h
  mymib_checkfns_local.c
**********************************************************************
则生成成功。

5、修改部分代码:
修改mymib.c mymibIfTable_handler函数

修改点1:
138         case MODE_GET:
       // 不采用链表方式,可以注释掉这里。
139            /* data_context =  netsnmp_extract_iterator_context(request);
140             if (data_context == NULL) {
141                 netsnmp_set_request_error(reqinfo, request,
142                                           SNMP_NOSUCHINSTANCE);
143                 continue;
144             }*/
145             break;

修改点2:
switch(reqinfo->mode) {
161             case MODE_GET:
162                 switch(table_info->colnum) {
163                     case COLUMN_IFINDEX:
164                             {
       // 这里就是查询返回值的地方:ge

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值