[CentOS]監控寶搭配Net-SNMP監控伺服器狀態

Logo

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)!

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的密碼檔案

mkdir -p /var/net-snmp/
touch /var/net-snmp/snmpd.conf
echo "createUser

jiankongbao

 MD5 

qooqooqoo

" >> /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

Photobucket

這邊的重點是要看SNMP有啟動嗎?有沒有在使用161的PORT。

Step.6

最後再到監控寶的測試工具網頁去測試連線吧!

v2c測試範例
點偶放大

v3c測試範例
點偶放大

Step.7 啟動SNMP服務

vi /etc/init.d/snmpd

把這個啟動檔案的內容換成如下

#!/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)


在〈“[CentOS]監控寶搭配Net-SNMP監控伺服器狀態”〉中有 3 則留言

發佈留言