穩定性檢測工具smokeping安裝配置和使用方法
Smokeping介紹
是對IDC網絡質量,穩定性等最好的檢測工具,包括常規的 ping,dig,echoping,curl等,可以監視www服務器性能,監視dns查詢性能,監視ssh性能等。底層也是 rrdtool 做支持,特點是畫的圖非常漂亮,網絡丟包和延遲用顏色和陰影來表示。
smokeping的優點:
1)最佳的畫圖功能,延遲和丟包用顏色和陰影表示很直觀。
2)免費和開源,作者是MRTG和RRDtool作者。
3)支持主從的分布式模式。
4)可以自定義報警功能。
下載頁面
http://oss.oetiker.ch/smokeping/pub/
1.1安裝smokeping
[root@oracle-standby ~]# cat /etc/redhat-release #查看服務器信息
CentOS release 6.7 (Final)
[root@oracle-standby ~]# uname -r
2.6.32-573.el6.x86_64
[root@oracle-standby ~]# yum -y install perl perl-Net-Telnet perl-Net-DNS perl-LDAP perl-libwww-perl perl-RadiusPerl perl-IO-Socket-SSL perl-Socket6 perl-CGI-SpeedyCGI perl-FCGI perl-CGI-SpeedCGI perl-Time-HiRes perl-ExtUtils-MakeMaker perl-RRD-Simple rrdtool rrdtool-perl curl fping echoping httpd httpd-devel gcc make wget libxml2-devel libpng-devel glib pango pango-devel freetype freetype-devel fontconfig cairo cairo-devel libart_lgpl libart_lgpl-devel mod_fastcgi screen #通過yum安裝所依賴的庫以及環境
[root@oracle-standby ~]# cd /usr/local/src/
[root@oracle-standby src]# wget http://oss.oetiker.ch/smokeping/pub/smokeping-2.6.9.tar.gz
[root@oracle-standby src]# tar xf smokeping-2.6.9.tar.gz
[root@oracle-standby src]# cd smokeping-2.6.9
[root@oracle-standby smokeping-2.6.9]# ./setup/build-perl-modules.sh /usr/local/smokeping/thirdparty
[root@oracle-standby smokeping-2.6.9]# ./configure --prefix=/usr/local/smokeping #編譯smokeping到/usr/local
[root@oracle-standby smokeping-2.6.9]# /usr/bin/gmake install
[root@oracle-standby smokeping-2.6.9]# cd /usr/local/smokeping/
[root@oracle-standby smokeping]# mkdir cache data var
##這個data用於存放rrd數據庫,由於要存放較長時間,可能會比較大,建議放到一個有足夠空間的地方。
##cache存放緩存的圖片
[root@oracle-standby smokeping]# touch /var/log/smokeping.log
[root@oracle-standby smokeping]# chown apache.apache cache/ data/ var/ /var/log/smokeping.log
[root@oracle-standby smokeping]# cd /usr/local/smokeping/htdocs/ #進入smokeping下htdocs目錄
[root@oracle-standby htdocs]# mv smokeping.fcgi.dist smokeping.fcgi #修改smokeping文件名
[root@oracle-standby ~]# mv /usr/local/smokeping/etc/config.dist /usr/local/smokeping/etc/config
#修改smokeping下etc目錄smokeping
1.2修改smokeping配置文件
[root@oracle-standby ~]# sed -i 's#cgiurl = http://some.url/smokeping.cgi#cgiurl = http://10.2.2.249/smokeping.cgi#g' /usr/local/smokeping/etc/config
[root@oracle-standby ~]# sed -i 's#300#500#g' /usr/local/smokeping/etc/config #默認檢測時間300秒修改為500秒
[root@oracle-standby ~]# sed -i 's#20#100#g' /usr/local/smokeping/etc/config #默認ping20次,修改為500秒ping100次
解釋:
*** Database ***
step = 500
pings = 100
Database RRD數據庫配置。step和pings這兩個參數要在啟動smokeping之前配置好,如果在smokeping啟動后再配置這兩個參數,需要把原來的rrd文件都刪除,然后再啟動smokeping才可以。所以這個一定要先配置好。默認是step=300 pings=20 是每300s內執行20次ping的動作。
[root@oracle-standby ~]# vim /usr/local/smokeping/etc/config #在presentation添加utf-8中文字符集
*** Presentation ***
charset = utf-8
[root@oracle-standby ~]# chmod 600 /usr/local/smokeping/etc/smokeping_secrets.dist #修改密碼權限為root只讀
1.3修改apache配置文件
[root@oracle-standby ~]# htpasswd -c /usr/local/smokeping/htdocs/htpasswd peng #設置登錄密碼認證 通過apache自帶驗證功能
New password:
Re-type new password:
Adding password for user peng
修改apache的配置
# DocumentRoot: The directory out of which you will serve your # documents. By default, all requests are taken from this directory, but # symbolic links and aliases may be used to point to other locations. # DocumentRoot "/var/www/html" #在這行下面添加如下---標紅的代表密碼驗證 Alias /cache "/usr/local/smokeping/cache/"
Alias /cropper "/usr/local/smokeping/htdocs/cropper/"
Alias /smokeping "/usr/local/smokeping/htdocs/smokeping.fcgi"
<Directory "/usr/local/smokeping">
AllowOverride None
Options All
AddHandler cgi-script .fcgi .cgi
Order allow,deny
Allow from all
AuthName "Smokeping"
AuthType Basic
AuthUserFile /usr/local/smokeping/htdocs/htpasswd
Require valid-user
DirectoryIndex smokeping.fcgi </Directory> |
1.4設置smokeping啟動腳本
[root@oracle-standby ~]# cat /etc/init.d/smokeping #!/bin/bash # # chkconfig: 2345 80 05 # Description: Smokeping init.d script # Get function from functions library
. /etc/init.d/functions
# Start the service Smokeping
function start() { echo -n "Starting Smokeping: " /usr/local/smokeping/bin/smokeping >/dev/null 2>&1
### Create the lock file ###
touch /var/lock/subsys/smokeping success $"Smokeping startup" echo }
# Restart the service Smokeping
function stop() { echo -n "Stopping Smokeping: " kill -9 `ps ax |grep "/usr/local/smokeping/bin/smokeping" |grep -v grep | awk '{ print $1 }'` >/dev/null 2>&1
### Now, delete the lock file ### rm -f /var/lock/subsys/smokeping success $"Smokeping shutdown" echo }
#Show status about Smokeping
function status() { NUM="`ps -ef|grep smokeping|grep -v grep|wc -l`" if [ "$NUM" == "0" ];then echo "Smokeping is not run" else echo "Smokeping is running" fi }
### main logic ###
case "$1" in start) start ;; stop) stop ;; status) status ;; restart|reload) stop start ;; *) echo $"Usage: $0 {start|stop|restart|reload|status}" exit 1 esac exit 0 |
1.5啟動服務以及訪問smokeping
[root@linux-node2 ~]# chmod 755 /etc/init.d/smokeping
[root@linux-node2 ~]# chkconfig --add smokeping
[root@linux-node2 ~]# chkconfig smokeping on
[root@linux-node2 ~]# chkconfig httpd on
[root@linux-node2 ~]# /etc/init.d/httpd restart
[root@linux-node2 ~]# /etc/init.d/smokeping restart
查看進程:
[root@oracle-standby ~]# ps -ef |grep smoke
root 44447 1 0 13:24 ? 00:00:00 /usr/local/smokeping/bin/smokeping [FPing]
1.6打開檢測主機的Web頁面
在Web瀏覽器里輸入 http://您的監控主機IP/smokeping,出現如下登錄界面:
1.7添加需要監控的網站和節點
注意事項:
1)在/usr/local/smokeping/etc/config中添加
2)smokeping就這點不好,添加節點不能在前台Web頁面添加,一定要在后台的配置文件中添加。
3)修改/usr/local/smokeping/etc/config 后,必須重啟smokeping 程序,配置才會生效
4)smokeping 會根據配置文件config在/usr/local/smokeping/data 之下添加moniter文件夾,其下包含website子文件夾
添加監控節點示例:注意+是第一層,++是第二層,+++ 是第三層
我們這里的配置如下:
[root@oracle-standby var]# tail -60 /usr/local/smokeping/etc/config
+CRM menu = 各機構CRM業務 title = 監控統計
++xian menu = 西安網絡監控 title = 西安網絡監控列表 host = /CRM/xian/xian-app /CRM/xian/xian-rsync /CRM/xian/xian-rule /CRM/xian/xian-db
+++ xian-app menu = 西安app title = 西安app alerts = someloss host = x.x.x.x
+++ xian-rsync menu = 西安rsync title = 西安rsync alerts = someloss host = x.x.x.x
+++ xian-rule menu = 西安rule title = 西安rule alerts = someloss host = x.x.x.x
+++ xian-db menu = 西安db title = 西安db alerts = someloss host = x.x.x.x
++zhengzhou menu = 鄭州網絡監控 title = 鄭州網絡監控列表 host = /CRM/zhengzhou/zhengzhou-app
+++ zhengzhou-app menu = 鄭州app title = 鄭州app alerts = someloss host = x.x.x.x |
重啟smokeping服務,並在瀏覽器上輸入:http://10.2.2.249/smokeping
圖表參數說明
(1) RTT(Round-Trip Time):簡單說它是一個數據包在網絡上兩點中間往返一次的時間。是影響TCP性能和表征網絡運行狀況的重要參數。在網絡中實時、准確地測量大量TCP設備和系統的RTT參數是網絡管理的重要環節之一。Smokeping就是這樣的自動測試系統,它向目標設備和系統發送各種類型的測試數據包,測量、記錄和展示RTT。
(2) Median RTT:它是中間數並不是平均值。Smokeping有多種類型的探針,探針在默認的設置下,每300秒向目標設備發送20個探測數據包。假如這20個數據包都返回的話,它就記錄下了20個RTT,那么Median RTT就是第十個包的RTT;如果有5個包丟失的話,那么Median RTT就是第八個返回的包的RTT值。
(3) Avg RTT:它是每一個測試回合中所有RTT的算術評價值。
(4) Avg pkt loss:丟包率。
(5) Probe:100 ICMP Echo Pings(56 Bytes)every 500
每一個綠色的短橫線都是一個測試回合500秒內用ping測試100次。綠色畫出的是中間數的位置,一個回合中的其它值都在它附近被以灰度的形式被刻畫;
查看網絡狀況
Smokeping可以方便地查看所監控的網絡狀況:
可以很具體在圖上看出網絡的延遲及丟包等狀況;
具有Last 3 Hours,Last 30 Hours,Last 10 Days,Last 400 Days圖像,還可以通過輸入具體的時段來查看圖像,如下圖:
Last 3 Hours 最近的3小時
Median Ping RTT (506.2 ms avg)中間數的平均值是10.2毫秒。如果是綠色的短橫線,說明一個周期內所有的包都返回都有RTT的時間記錄下來;如果是藍色的短橫線則說明有2個包丟失。
Packet Loss:丟包率。從上圖中我們看出全都是綠線,所以丟包率當然是0。
Probe:10 ICMP Echo Pings(56 Bytes)every 60s
這張圖是2012-12-13 09:47:27生成的。每一個綠色的短橫線都是一個測試回合60秒內用echoping測試icmp協議10次。
每個有顏色的點描述的是median rrt(中間數)時間,灰色的范圍,是描述每個包返回的時間,灰色范圍越小,表示每個包返回的時間較統一,說明網絡越平穩。顏色越深的地方,表示包返回的時間集中在那一塊。RTT曲線的起伏還顯示了網絡的負載情況。
所有單位都是:ms
在“Charts”下可以查看 “Top Packet Loss”,“Top Max Roundtrip Time”,“Top Median Roundtrip Time”,“Top Standard Deviation”情況,這樣可以相當方便地判斷哪里的網絡有問題,從而可以快速地作出處理。如下圖所示:
traceroute功能
在smokeping的2.4版本開始加入了traceroute功能,但2.5開始,又將其移除了。
traceroute的使用方法如下:
在左邊欄目中選擇需要進行traceroute的主機,點擊網段右側的“*”進行測試。
測試結果如圖所示:
可以看到從當前位置到目標位置的網絡追蹤的所有情況。
參考文章:
http://mayulin.blog.51cto.com/blog/1628315/514397
http://www.tuicool.com/articles/6vqArm