如何移植mad-hacking到Debian系统,使net-snmp可以监控raid和disk

来源:互联网 发布:甘敬 知乎 编辑:程序博客网 时间:2024/05/20 21:45

一、到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命令进行查询