一、到mad-hacking下载相应的mib库包和工具包
http://www.mad-hacking.net/software/index.xml
http://downloads.mad-hacking.net/software/
需要下载snmpd-smartctl-connector-0.5.tar.bz2、smartctl-snmp-mib-0.2.tar.bz2、hacking-snmp-mib-0.1.tar.bz2、snmpd-mdraid-connector-0.4.tar.bz2、mdraid-snmp-mib-0.1.tar.bz2、hacking-bash-lib-0.1.tar.bz2
二、如何使用mibs库制作动态链接库
1、先创建自定义mib文件TEST-MIB.txt,放在/usr/local/net-snmp/share/snmp/mibs下
2、echo "mibs +TEST-MIB" >>$HOME/.snmp/snmp.conf;
设置snmp开机启动:vi /etc/rc.local, 添加如下内容:
SNMP_HOME=/usr/local/net-snmp/share/snmp
SNMP_BIN_HOME=/usr/local/net-snmp/sbin
SNMP_CONF_HOME=/root/.snmp
$SNMP_BIN_HOME/snmpd-c $SNMP_HOME/snmpd.conf -c $SNMP_CONF_HOME/snmp.conf &
3、重启snmp服务。具体操作:ps-ef|grep snmp;kill -9 snmp的pid
4、查看TEST-MIB文件结构,snmptranslate-IR -Tp testObj;testObj为TEST-MIB库中定义的Ojbect
5、利用mib2c生成testObj.c和testObj.h文件:mib2c-c mib2c.scalar.conf testObj ;修改testObj.c文件;
6. 编写makefile,编译成testObj.so
CC=gcc
FLAGS=-I.`net-snmp-config --cflags` -g
DLFLAGS=-shared -fPIC -g
testObj.so: testObj.c
$(CC)$(CFLAGS) $(DLFLAGS) -c -o testObj.o testObj.c
$(CC)$(CFLAGS) $(DLFLAGS) -o testObj.so testObj.o
.PHONY : clean
clean :
rm-f *.so *.o
7. 修改配置文件,加载动态库文件:vi /usr/local/net-snmp/share/snmp/snmpd.conf
加入:dlmodtestObj ${testObj.so所在绝对路径}/testObj.so
8. 启动snmpd:
/usr/local/net-snmp/sbin/snmpd -c/usr/local/net-snmp/share/snmp/snmpd.conf -c /root/.snmp/snmp.conf -f -d -L –DtestObj
三、如何是mad-hacking可以在Debian下使用
1. 安装net-snmp
snmp包以及snmpd包
2. 安装net-snmp的mibs库
需要将所需要的标准mibs库以及支持raid和disk的mibs库添加进系统。所有mibs库需要存放在/usr/share/mibs/netsnmp目录下。
3. 修改/etc/snmp/snmpd.conf中某些信息
rocommunity public default -V systemonly改成rocommunityhacking
添加以下两条信息于文件末尾
pass_persist .1.3.6.1.4.1.38696.2.1/usr/sbin/snmpd-smartctl-connector
pass_persist .1.3.6.1.4.1.38696.2.2/usr/sbin/snmpd-mdraid-connector
4. 向/etc/snmp/snmp.conf添加某些信息
mibs +SMARTCTL-MIB
mibs +HACKING-SNMP-MIB
mibs +MD-RAID-MIB
5. 向/usr/sbin/下添加某些shell脚本,并配置好权限
snmpd-mdraid-connector snmpd-smartctl-connector
6. 向/usr/lib/下添加某些shell脚本,并配置好权限
snmpd-connector-lib.sh hacking-bash.sh
7. 向/etc/下添加某些shell脚本,并配置好权限
snmpd-mdraid-connector snmpd-smartctl-connector
8. 向/usr/sbin/下添加某些shell脚本,并配置好权限
update-smartctl-cache update-mdraid-cache
9. 建立/etc/snmp/myso目录并将mdRaid.so与smartCtl.so放入其中
10. 修改/etc/init.d/snmpd脚本
在此shell脚本中判断输入值前(即case $1前)将SNMPDOPTS变量修改为“-Lsd -Lf /dev/null -p /var/run/snmpd.pid -DsmartCtl-DmdRaid”,以此使net-snmp可以调用smartCtl与mdRaid的动态链接库。
11. 一旦发生disk操作或者raid操作
需要先修改/etc目录下的snmpd-mdraid-connector或snmpd-smartctl-connector,然后再调用update-smartctl-cache或update-mdraid-cache,之后才可使用snmpwalk命令进行查询