- 浏览: 971032 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
custjcy:
不错,赞一个。尤其是这个,在查找指定目录下,列出所有包含某个字 ...
shell命令的批量修改文件内容 -
qw173795180:
你好,请问Start这个参数怎么使用不了?
视频播放flv player的使用 -
cheeruplc:
xml进行修改之后 刷新请求 不执行 看了你的博文解决 ...
同一页面无法多次使用XmlHttp发起Ajax请求的真实原因--l转 -
dongbiying:
没有想到还有map的概念
js数组的操作及数组与字符串的相互转化 -
wangtuda:
打酱油的~
js中随机排序
@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”不使能调试等等。下面说下我将net-snmp-5.2移殖到小头mips的配置和编译过程:
#tar xzvf net-snmp-5.2.tar.gz
#cd net-snmp-5.2
#./configure --host=mipsel-linux --build=i386-linux --target=mipsel-linux --disable-shared --with-endianness=little -disable-debugging --disable-manuals --disable-scripts --disable-mibs --disable-applications
#make
生成的库分别在编译目录下snmplib/.libs目录、agent/.libs目录和agent/helpers/.libs目录。
注意:有些人就会问,我是如此配置的,但在执行配置时或编译时,就是通不过,报有关“crypto”或“z”的出错。这是因为snmpv3用到加密处理,而交叉编译工具中没有此库。下面说下如何添加此两个库:
A.添加zlib库
从http://zlib.net获取最新有版本库,配置zlib,执行./configure,修改生成的Makefile,将里面的gcc、ranlib、ar改为你所用的交叉编译器的xxx-gcc、xxx-ranlib、xxx-ar,执行make,一般都没错(除非你所用的交叉编译工具gcc版本太低,如果是这样,就要找个合适的zlib版本,否则改它的原码是件痛苦的事件,而又要确保它的正确性),那好,编译完后,将生成的库(libz.a和libz.so*)和头(zlib.h和zconf.h)分别copy到交叉编译器所在的环境下的库(/*/lib)目录和头(/*/include)目录下。
B. 添加ssl库
从htttp://www.openssl.org获取适合的版本ssl库(最好是openssl-0.9.7h或更高的版本)。配置ssl,有些版本里面的configure是没有加target选项的,那就得在执行./config后,修改里面的Makefile,将里面的gcc、ranlib、ar改为你所用的交叉编译工具。然后编译ssl,将ssl的头目录(include/openssl)和生成的libcrypto.* 、libssl.*分别复制到交叉编译器所在的环境下的头(/*/include)目录和库(/*/lib)目录下。
@3. 添加代理用户(v1、v2c团体名和v3用户)
方法好多。可以通加在系/etc/snmpd.conf文件里添加自己所需的团体或v3用户,比如,要想添加一个v1和v2c的可读写的团体rwtyy,可以在/etc/snmpd.conf文件里加一行rwcommunit rwtyy;如果想加一个v1和v2c的只读团体rotyy,可以在/etc/snmpd.conf文件里加一行rocommunity rotyy;对于v3代理用户,可以通过net-snmp-config工具来生成,也可直接在/etc/snmpd.conf文件添加。其中agent/mibgroup/examples/ucdDemoPublic.conf文件介绍更多更好更详细的配置方法,大家可以读取此文件,比如介绍了限制IP访问的设置、mib-view访问的设置等等。
@4. 添加自己所需的MIBs
在配置net-snmp时,软件包就加了一些默认的mibs进来了,她们的.C和.H文件都存放在agent/mibgroup目录下。那么,怎么样来添加大家所需的自定义的MIB文件呢?方法好多,比如又回到初始状态,通过有关配置命令来增加。但此方法不是好方法,个人觉得如此方法太烦人,每当想要添加一个自定义的MIB,又得重新配置一次。下面将讲解本人添加自定义的MIB的方法。
一:将自己的MIB文件的.C和.H文件copy到agent/mibgroup/YourDefinedPath目录下。因为所有的MIB文件都放在此目录下,文件生成libnetsnmpmib.a库。
二:将自己所定义的MIB的初始化函数注册到agent/mibgroup/mib_module_inits.h文件中来,因为snmpd启动时会先初始化这样注册函数,具体可以从代码agent/snmpd.c文件的main函数查下去。一般用mib2c生成的mib的注册函数形式都是init_****(void),函数都要调用REGISTER_MIB()函数来注册大家相关的东东。说到此处,如果大家不需要系统那些自带的MIB,可以在此文件把相关的注册函数屏闭,可减少可执行文件的大小。同时大家要将自义的MIB的.H头文件增加到agent/mibgroup/mib_module_includes.h文件里,这只要是系统编译链接的问题。比如你的MIB的.C文件为agent/mibgroup/YourDefinedPath/yourMIB.c,.H文件为agent/mibgroup/YourDefinedPath/yourMIB.h,则在agent/mibgroup/mib_module_includes.h文件里添加一行“#include "mibgroup/ YourDefinedPath/yourMIB.h””即可。
三:MIB文件是加进来了,但还得改下有关Makefile,让添加进来的MIB也编译进去libnetsnmpmib.a。这要改两个文件,一个是agent/Makefile文件,另一个是agent/mibgroup/Makefile文件。先打开agent/Makefile文件,找到“LMIBOBJS =”这一行,仿照已有东东,在后面加上自己的东东“ mibgroup/YourDefinedPath/yourMIB.lo”,注意不要漏了空格。还要找到“MIBOBJS =”这一行,在其后加上自己的东东“mibgroup/YourDefinedPath/yourMIB.o”。最后打开agent/mibgroup/Makefile,找到“OBJS =”这一行的最后面添加你自己的东东“ YourDefinedPath/yourMIB.o”,在“LOBJS =”这一行的最后面添加你的东东“ YourDefinedPath/yourMIB.lo”,并在“SRCS =”此行的最后面添加你的东东“ YourDefinedPath/yourMIB.c”。这样,编译链接的东东也搞完了。
四:好多人都以为做了以上三步并认为代码没错就一定可以编译得过去了,并不然。因为net-snmp的开源软件的Makefile做得好严紧,每次编译时,Makefile都得查下你在命令行配置生成的文件有没有改变,如有改变,则会恢复回你命令行配置的makefile状态,如果这样,大家在第三步做工作不是白搭了?呵呵,那么大家就要找到这个文件,将大家修改的Makefile不让其恢复到配置时的状态。这个文件是config.status,只要将此文件的内容全部清空就没问题了。
这样,执行#make就可以将大家所加进的MIB也编译进来了。
@创建自定义的MIBs
方法有好多。可以仿照agent/mibgroup目录下的.C文件来编写,也可以通过相应的工具来生成现稍微修改。比如net-snmp软件包的mib2c工具。如果是通过手写的MIB,这样花费的时间比工具生成的多得多。下面介绍mib2c生mib的简单方法。
一:将自己写好的mib文件(如yourmib.MIB,最好检查没有语法错误和警告,否则用mib2c生成的mib的.C文件就不全了,可通过SNMPC工具检查)放进自己PC机上安装net-snmp的路径下的snmp/mibs目录下。
二:在命令行执行下以命令
#export MIBS=all
就会将安装net-snmp的路径下的snmp/mibs目录的所有mibs文件包含进来了。
三:在命令行执行以下命令,就会在当前目录下生成你所需的MIB的.C和.H文件了。
#mib2c mib2c.old-api.conf YourOwnerMib
至于大家想生成什么风格的MIB的.C文件,可读取安装net-snmp的路径下的snmp目录下的*.conf文件。
最后说下一些朋友在使用mib2c工具时出现的问题。有些朋友在PC安装了net-snmp,也按照上面的三个步骤来生成自己的MIB,但在第三步时总是出错,不是说没有找到自己的YourOwnerMib,就是说perl有异常等等一系列问题。这些问题都是在安装net-snmp时,执行的配置做得不好所导致,所以在PC上安装net-snmp时,记得在配置时加上—enable-embedded-perl 和—with-perl-modules选项,最好配置安装路径为/usr,即加上—prefix=/usr。同时要查看下~/.bash_profile文件,看下/usr/bin和/usr/sbin的路径是否加了进来。
发表评论
-
防火墙实现URL过滤原理
2014-05-08 18:45 4276对于URL过滤:1.HTTP URL过滤 2.https UR ... -
解决webserver在IE下载文件,文件名为乱码问题
2013-12-28 16:26 1371通常使用以下代码就能导出为流的文件,而不是打开文件 w ... -
C实现urlencode&urldecode
2013-12-28 16:20 5930static unsigned char char_to_he ... -
c语言实现urlencode
2013-12-28 16:19 1976#include <stdio.h> #inc ... -
wifidog+authpuppy认证页面的配置
2013-10-29 02:15 3403转自:http://blog.sina.com.cn/s/ ... -
atoi() & itoa()&atol()<oa()函数的实现
2013-05-01 13:53 3005#include "stdio.h" ... -
详解sigaction --转
2013-04-20 03:31 11215详解sigaction 这是挺好理解的,就好比在系 ... -
Linux定时器的使用 --转
2013-04-20 01:13 1381使用定时器的目的无非是为了周期性的执行某一任务,或者是到了 ... -
Linux C 函数参考(日期时间) --转
2013-04-20 00:03 11383Linux C 函数参考(日期时间) 1.1 概述 世 ... -
对(*(volatile unsigned long *)) 的理解
2013-03-20 15:10 1479对(*(volatile unsign ... -
Linux内核模块概述 --转
2013-01-08 10:43 2378Linux内核模块概述 . Linux 内 ... -
linux上搭建pppoe-server
2012-12-28 15:53 8734记录下过程,主要还是参 ... -
Ubuntu上架设PPPoE Server--转
2012-12-28 01:25 7413一。安裝 PPPoE Server Software ... -
移植rp-pppoe到s3c2440实现ADSL拨号上网--转
2012-12-28 01:22 3199一:总的来说可以分 ... -
Linux下C语言实现文件拷贝--转
2012-11-01 23:11 13943Linux下C语言实现文件拷贝 /* Func ... -
linux操作系统的DNS客户端配置
2012-09-16 16:52 11279基于linux操作系统的DNS客户端配置: Linux ... -
/etc/hosts配置文件解析
2012-06-20 14:46 2480/etc/hosts配置文件解析 这个文件可以配置主机ip及 ... -
strtok 和strtok_r 的使用
2012-06-01 17:13 106111. strtok介绍众所周知,strtok可以根据用户所提供 ... -
关于LINUX C中函数strtok使用要点
2012-06-01 15:45 2201strtok函数的使用是一个老生常谈的问题了。该函数的作用很大 ... -
基于SNMP网络管理系统的设计与实现
2012-05-25 15:54 819原文链接:http://www.docin.com/p-265 ...
相关推荐
移植net-snmp和应用net-snmp开发流程详解。适合于初学者
net-snmp-5.5-49.el6_5.3.x86_64.rpm net-snmp-devel-5.5-49.el6_5.3.i686.rpm net-snmp-devel-5.5-49.el6_5.3.x86_64.rpm net-snmp-libs-5.5-49.el6_5.3.i686.rpm net-snmp-libs-5.5-49.el6_5.3.x86_64.rpm ...
yum install -y perl-devel perl-ExtUtils-Embed elfutils-devel elfutils-libelf-devel lm_sensors-devel rpm-devel perl-Tk perl-Mail-Sender perl-JSON perl-IO-Socket-SSL perl-Net-SSLeay perl-IO-Socket-IP ...
net-snmp-5.9.1.tar.gz,可移植,开发学习
SNMP安装包-net-snmp-utils-5.7.2-49.el7_9.2.x86_64
net-snmp所需的安装补丁包,NETSNMP程序补丁包net-snmp-devel-5.3.2.2-14.el5.x86_64.rpm
net-snmp-5.7.0-1.x86.exe 客户端windows。
net-snmp-5.4.3是Linux环境下的snmp软件,想学习net-snmp内容,必须的软件之一。我的资源中还用MIB查看软件,欢迎下载使用
net-snmp源码5.9.1
NET-SNMP工具的使用 当环境设置好后,运行snmpd,即snmp代理进程,就可以使用管理工具查询其中的信息了。
windows 7 x64下面的 net-snmp 安装包。可以再命令行下使用snmp命令。
扩展一个子代理,让SNMPD以主代理的模式运行,对于SNMPD我们只要让它启动就可以,不需要任何的更改和配置,把子代理编译生成的程序运行起来就可以扩展自定义的MIB库
windows x64下面的 net-snmp 安装包。可以再命令行下使用snmp命令。 如果安装在自定义的位置,需要将路径添加到系统环境变量Path中
netsnmp程序补丁包net-snmp-utils-5.3.2.2-14.el5.x86_64.rpm
net-snmp-5.7.3的tar包(源码包),可直接编译安装(内附安装说明),同时内附gcc编译工具的rpm包,执行里边的install.sh即可安装
net-snmp-x86_64组包,包含net-snmp-5.3.2.2-20.el5.x86_64.rpm net-snmp-libs-5.3.2.2-20.el5.x86_64.rpm net-snmp-perl-5.3.2.2-20.el5.x86_64.rpm net-snmp-utils-5.3.2.2-20.el5.x86_64.rpm
lm_sensors-libs-3.1.1-17.el6.x86_64.rpm。net-snmp-5.7.2-37.el7.x86_64.rpm,net-snmp-agent-libs-5.7.2-37.el7.x86_64.rpm,net-snmp-libs-5.7.2-37.el7.x86_64.rpm,net-snmp-utils-5.7.2-37.el7.x86_64.rpm
cacti安装所需安装包之一 net-snmp-5.7.2.tar.gz
net-snmp-5.4.0-1.win32.exe应用平台windows
这个是本人由于公司需要扩展Net-SNMP的Agent而写的一个开发流程文档,压缩包中也包含程序的源代码,和配置文件。根据Net-SNMP官方的实例程序,详细介绍了SNMP代理开发的各个步骤,各位读者按照步骤可以轻松的完成一...