Net-SNMP这是一套很常见的系统监测软体,像什么MRTG啦~CATTI啦!都是从SNMP抓资讯作输出的,好久没写LiNUX文章了,这次利用一点空闲时间来写一下,主要是因为俺的部落格前几天突然挂点,才想说用一直都有用这个搭配监控宝来检测系统,看现在监控宝现在是越做越好了,功能一直有在增加也很不错,虽然最可惜的就是没支援台湾的手机警告,但其他方面其实都很棒的!管理机器真的很实用,另外之前有很简单的介绍过监控宝搭配NGiNX的监控~ 有兴趣可以参考看看,监控宝官网也有监控Apache的教学或是设定MySQL的监控。
文章中的安装及应用方法皆以手动鞭译为主,利用YUM简便安装的童鞋请务必确认修改对应的conf设定档的位置再启动SNMP。
Step.1 利用YUM简便安装
A. 先导入rpmforge这个CentOS官方认可的第三方套件库
i386 / 32位元
rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
rpm -ihv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
x86_64 / 64位元
rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
rpm -ihv http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
B. 导入完毕后再下这行指令就好啦 ?
yum install -y lm_sensors net-snmp net-snmp-libs net-snmp-utils
Step.2 有自虐倾向喜欢手动鞭译的童鞋眼睛放亮看仔细啦! ? 这边安装的是官方的5.7.1版(YUM安装的是5.3.2.2)!
1 2 3 4 5 6 7 8 9 |
cd /usr/src wget http://sourceforge.net/projects/net-snmp/files/net-snmp/5.7.1/net-snmp-5.7.1.tar.gz tar xzf net-snmp-*.tar.gz cd net-snmp-* ./configure --prefix=/usr/local/snmp --with-openssl=/usr/bin/openssl --with-mib-modules=ucd-snmp/diskio --with-mysql=/usr/local/mysql --with-defaults --enable-ipv6 make && make install cp EXAMPLE.conf.def /usr/local/snmp/share/snmp/snmpd.conf cd /usr/src rm -fr net-snmp-* |
Step.3 设定SNMP参数
A. 设定SNMP伺服器的外网IP
vi +/agentAddress /usr/local/snmp/share/snmp/snmpd.conf
在第15行的agentAddress udp:127.0.0.1:161的之后新增以下参数
agentAddress udp:8.8.8.8:161
注意8.8.8.8的IP位置要修改成伺服器的外网IP位置,监控宝才找的到,不然就是唱追追追也找不到你的伺服器唷! ?
B. 设定帐号密码
vi +/r[ow]community /usr/local/snmp/share/snmp/snmpd.conf
在第66行的# r[ou]user and r[ow]community, together with suitable views, should cover most requirements的之后新增以下参数
rocommunity jiankongbao 60.195.249.83 # ← v2c的验证帐号和IP位置
rocommunity jiankongbao 60.195.252.107 # ← v2c的验证帐号和IP位置
rocommunity jiankongbao 60.195.252.110 # ← v2c的验证帐号和IP位置
rouser jiankongbao auth # ← v3c的验证帐号
Step.4 新增使用者jiankongbao的密码档案
1 2 3 |
mkdir -p /var/net-snmp/ touch /var/net-snmp/snmpd.conf echo "createUser |
jiankongbao
1 |
<code> MD5 </code> |
qooqooqoo
1 |
" >> /var/net-snmp/snmpd.conf |
这边要注意帐密的格式是这样的,帐号:jiankongbao / 密码:qooqooqoo,而且密码部分要设定在8位数以上,另外担心v2c安全问题的可以只增加v3c格式的就好,但其实在防火墙设定好161能通行的IP就没什么大问题了。
Step.5 启动SNMP并检察SNMP运作是否正常
/usr/local/snmp/sbin/snmpd
ps ax | grep snmpd
netstat -atunp | grep snmpd
这边的重点是要看SNMP有启动吗?有没有在使用161的PORT。
Step.6
最后再到监控宝的测试工具网页去测试连线吧!
Step.7 启动SNMP服务
vi /etc/init.d/snmpd
把这个启动档案的内容换成如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
#!/bin/sh # # snmpd This shell script takes care of starting and stopping # the net-snmp SNMP daemon # # chkconfig: - 26 74 # description: snmpd is net-snmp SNMP daemon. # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ "${NETWORKING}" = "no" ] && exit 0 RETVAL=0 name="snmpd" prog="/usr/local/snmp/sbin/snmpd" [ -x $prog -a -f /usr/local/snmp/share/snmp/snmpd.conf ] || exit 0 start() { # Start daemons. echo -n $"Starting $name: " daemon $prog RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$name return $RETVAL } stop() { # Stop daemons. echo -n $"Shutting down $name: " killproc $prog RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$name return $RETVAL } # See how we were called. case "$1" in start) start ;; stop) stop ;; status) status $name RETVAL=$? ;; restart|reload) stop start RETVAL=$? ;; condrestart) if [ -f /var/lock/subsys/$name ]; then stop start RETVAL=$? fi ;; *) echo $"Usage: $0 {start|stop|restart|condrestart|status}" exit 1 esac exit $RETVAL |
然后启动
chkconfig --levels 235 snmpd on
/etc/init.d/snmpd start
收工啦! ?
PS:防火墙相关设定(8.8.8.8要修改成本机IP)
iptables -A INPUT -p udp -s 8.8.8.8 --dport 161 -j ACCEPT
iptables -A INPUT -p udp -s 124.202.149.17 --dport 161 -j ACCEPT
iptables -A INPUT -p udp -s 124.202.149.13 --dport 161 -j ACCEPT
iptables -A INPUT -p udp -s 60.195.252.107 --dport 161 -j ACCEPT
iptables -A INPUT -p udp -s 127.0.0.1 --dport 161 -j ACCEPT
iptables -A INPUT -p udp --dport 161 -j DROP
iptables -I INPUT 1 -m tcp -p tcp --dport 111 -j DROP
iptables -I INPUT 1 -m udp -p udp --dport 111 -j DROP
其他资讯
监控宝 → 注册页面
监控宝 → 功能特色
监控宝 → 监控项目类型概述
监控宝 → 安全指引
监控宝 → 常见问题(FAQ)
