学习snmp的体会(推荐一看,涵盖了初学者会犯的大部分错误)

本文详细介绍了如何获取、配置、编译及安装net-snmp,并分享了在Linux环境下遇到的问题及解决办法。内容包括配置选项解析、服务自启动设置、环境变量添加、snmpd.conf文件修改以及如何创建和添加自定义MIBs。通过实例展示了使用mib2c工具生成MIB文件的过程,并提供了自定义MIB的代码示例。
摘要由CSDN通过智能技术生成

1. 获取net-snmp开发包

可以用开源上http://www.net-snmp.org/download.html获取自己所需要的各种版本。

2. 分析需求,进行合理配置与编译安装

比如要不要将其编译成动态库,还是静态库;要不要某些库;等等。可以通过在其目录下执行./configure --help即可知道她有配置的选项。比如“—host=xxx”配置她将在什么样的环境下运行,“—build=xxx”配置她将在什么环境下建立的(即本机环境),“—with-endianness=xxx”配置所移殖的CPU是工作在大头模式还是小头模式,“—target=xxx”目标工具(即xxx-gcc, xxx-ar等等工具的xxx),“—disable-debug”不使能调试等等。下面是我自己配置的选项:

#tar xzvf net-snmp-5.3.4.tar.gz

#cd net-snmp-5.2

#./configure --with-perl-modules --prefix=/usr/local/net-snmp --enable-mfd-rewrites --with-default-snmp-version="2" --with-sys-contact="linguang,linguang661990@126.com"  --with-sys-location="China" --with-logfile="/var/log/snmpd.log"  --with-persistent-directory="/var/net-snmp"

(以上几个重要的字眼用红色画出,这些在以后会很重要,否则你又得重新编译了,切记!!其中含义如下:

Perl-modules:这个是mib2c依赖的关键模块。

prefix:net-snmp将要安装的路径 

enable-mfd-rewrites:允许用新的 MFD重写可用的 mid模块 

with-default-snmp-version:默认的 SNMP版本 

with-sys-contact:可以配置该设备的联系人 

with-sys-location:该设备的位置 

with-logfile:日志文件路径 

with-persistent-directory:不变数据存储目录 

#make;make install

(这里有一个小经验,这时我先声明一点,我当时做这些工作的时候是采用linux内核2.6.34,net-snmp是用5.0版本的。因为我当时编译的时候没那么快成功的,出现很多错误,最重要的是编译完成后执行mib2c这个命令(在/usr/local/net-snmp/bin/下执行,因为这是我还没有添加环境变量,所以只能到源目录下执行)时提示出没有安装perl模块,但是我们确实安装了啊???这时我又重新回到源文件,进入安装包的perl目录下,执行perl Makefile.PL -NET-SNMP-CONFIG="sh ../net-csnmp-config"  -NET-SNMP-IN-SOURCE=true,后再执行make;make test,这时就会出错,错误是找不到default_store.so,先不管,然后执行make install,没问题后再重新回到上次说的目录执行mib2c,还提示没有安装!!!!问题应该出现在这里的版本不大兼容上,后来我采用5.3版本,在前面configure上就没出现这个问题,而且执行mib2c时也没有在出错!!!这只是我的经验之谈!!!还有一点是如果不懂在安装包理由一个FAQ文件,里面的东西也挺有用的。。)

 3、将该服务自启动以及添加所需的环境变量

#cd /etc/

#vim rc.local

在文件的末尾添加上一行:/usr/local/net-snmp/sbin/snmpd -c /usr/local/net-snmp/share/snmp/snmpd.conf &

#vim profile

找到有export关键词单独的一行前添加下面一行:

PATH=/usr/local/net-snmp/bin:/usr/local/net-snmp/sbin:$PATH

这样在哪就都可以执行相关命令了。

4、修改snmpd.conf文件

本来在/usr/local/net-snmp/share/snmp/目录下没有这个文件的,所以我们将安装包的EXAMPLE.conf复制到这个目录下。

修改该文件,具体修改哪些,读者可以参考别的资料,这样类似的很多我就不废话说这些不是很重要的了。 

5、创建自定义的MIBs

 方法有好多。可以仿照agent/mibgroup目录下的.C文件来编写,也可以通过相应的工具来生成现稍微修改。比如net-snmp软件包的mib2c工具。如果是通过手写的MIB,这样花费的时间比工具生成的多得多。下面介绍mib2c生mib的简单方法。

一:将自己写好的mib文件(通常以.txt结尾的文件)复制到安装net-snmp的路径下的snmp/mibs目录下。

二:在命令行执行下以命令

#export MIBS=all 

就会将安装net-snmp的路径下的snmp/mibs目录的所有mibs文件包含进来了。

三:在命令行执行以下命令,就会在当前目录下生成你所需的MIB的.C和.H文件了。(我们这里举个例子,比如你的MIB文件叫LOOGSON-MIB,然后文件里有一个叶子,是依靠在enterprise下的叫loogson,所以你应该这样编译)

#mib2c mib2c.old-api.conf  LOOGSON-MIB::loogson

至于大家想生成什么风格的MIB的.C文件,可读取安装net-snmp的路径下的snmp目录下的*.conf文件。只要大家按照前面的说的去做并且没有提示错误的话,这一步肯定能成功,并且会在你执行的目录下产生四个文件,

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值