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)
沒放感情吼 ?
噗~~~ 我找到問題了 冏
又來了…………>_<
跟著做 到最後
Starting snmpd: [FAILED]