HY! 我尝试编写自己的net-snmp MIB模块,但是我有一些问题...... :) 我在www.net-snmp.org网站上阅读了文档。 我做的步骤:
1。)mib2c -c mib2c.scalar.conf netSnmpExampleScalars - 现在我得到一个.c和一个.h文件,我复制到../agent/mibgroup目录
2.)我写了一个配置脚本:
./configure \
--with-ldflags="" \
--with-cflags="-I/usr/src/net-snmp-5.4.4/agent/mibgroup" \
--enable-mini-agent \
--with-logfile="/var/log/snmpd.log" \
--with-default-snmp-version=2 \
--with-sys-contact=xxx@yyyy.com \
--with-sys-location=HU/Sze \
--disable-applications \
--disable-debugging \
--disable-manuals \
--with-mib-modules="netSnmpExampleScalars" \
--disable-scripts \
--without-perl-modules \
--disable-embedded-perl \
--without-python-modules \
--without-libwrap \
--without-openssl \
--without-rpm \
--without-zlib
3。)运行./myconfig
SNMP Versions Supported: 1 2c 3
Building for: linux
Net-SNMP Version: 5.7.3
Network transport support: Callback Unix Alias TCP UDP IPv4Base SocketBase TCPBase UDPIPv4Base UDPBase
SNMPv3 Security Modules: usm
Agent MIB code: default_modules netSnmpExampleScalars => snmpv3mibs mibII/snmp_mib mibII/system_mib mibII/sysORTable mibII/vacm_vars mibII/vacm_conf
MYSQL Trap Logging: unavailable
Embedded Perl support: disabled
SNMP Perl modules: disabled
SNMP Python modules: disabled
Crypto support from:
Authentication support: MD5
Encryption support:
Local DNSSEC validation: disabled
4.。)运行make命令
netSnmpExampleScalars.c: In function 'handle_netSnmpExampleInteger':
netSnmpExampleScalars.c:55:90: error: expected expression before ',' token
netSnmpExampleScalars.c:75:58: error: expected expression before ')' token
netSnmpExampleScalars.c:88:34: error: expected expression before ')' token
netSnmpExampleScalars.c:95:34: error: expected expression before ')' token
netSnmpExampleScalars.c:103:34: error: expected expression before ')' token
netSnmpExampleScalars.c: In function 'handle_netSnmpExampleSleeper':
netSnmpExampleScalars.c:134:90: error: expected expression before ',' token
netSnmpExampleScalars.c:154:58: error: expected expression before ')' token
netSnmpExampleScalars.c:167:34: error: expected expression before ')' token
netSnmpExampleScalars.c:174:34: error: expected expression before ')' token
netSnmpExampleScalars.c:182:34: error: expected expression before ')' token
netSnmpExampleScalars.c: In function 'handle_netSnmpExampleString':
netSnmpExampleScalars.c:213:90: error: expected expression before ',' token
netSnmpExampleScalars.c:233:58: error: expected expression before ')' token
netSnmpExampleScalars.c:246:34: error: expected expression before ')' token
netSnmpExampleScalars.c:253:34: error: expected expression before ')' token
netSnmpExampleScalars.c:261:34: error: expected expression before ')' token
make[2]: *** [netSnmpExampleScalars.lo] Error 1
make[2]: Leaving directory `/usr/src/net-snmp-5.7.3/agent/mibgroup'
make[1]: *** [subdirs] Error 1
make[1]: Leaving directory `/usr/src/net-snmp-5.7.3/agent
make: *** [subdirs] Error 1
我仍然需要编辑mib2c生成的c文件=或者我需要使用其他.conf
文件?
另外我不知道我的配置脚本是正确还是不正确。如何退出目录错误?
答案 0 :(得分:0)
我猜你还没有编辑mib2c生成的.c文件。 mib2c在C代码中转换你的mib,但你必须编辑代码以返回值MIB数据(或在处理SET时接受它)。例如。你的mib是关于健康监测(心跳,...)。 mib2c将生成C代码的所有内容,除了要返回的内容(考虑到snmp get请求)。当然,mib2c不知道应该返回什么。你怎么读心跳?您将从设备,文本文件或其他内容中读取此信息?所以你需要在.c代码中填写它,因为mib2c让它空白而不会编译。