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

作者: | 2011-10-18
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. 導入完畢後再下這行指令就好啦 :P

yum install -y lm_sensors net-snmp net-snmp-libs net-snmp-utils

Step.2 有自虐傾向喜歡手動鞭譯的童鞋眼睛放亮看仔細啦! :cute 這邊安裝的是官方的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位置,監控寶才找的到,不然就是唱追追追也找不到你的伺服器唷! GY

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

把這個啟動檔案的內容換成如下,或是點此下載snmpd-init.d

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

收工啦! ({)

其他資訊

監控寶 → 註冊頁面
監控寶 → 功能特色
監控寶 → 監控項目類型概述
監控寶 → 安全指引
監控寶 → 常見問題(FAQ)

臉書回應

篇回應

3 thoughts on “監控寶搭配Net-SNMP監控伺服器狀態

  1. 779

    又來了…………>_<
    跟著做 到最後

    Starting snmpd: [FAILED]

    回覆

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *

(A)  :@  (brb)  (U)  (:cc)  :S  (H)  :-(  :cute  (6)  :-#  :$  :er  8-)  FUCK 
(})  ({)  GY  (L)  :kao  (K)  :cc  :pu  (F)  :(  ^o)  :-*  :O  +o(  |-) 
:)  (*)  :D  *-)  (N)  (Y)  :P  :|  (W)  ;)  XD