1.1安裝smokeping
[root@linux-node2 ~]# cat /etc/redhat-release #查看服務器信息
CentOS release 6.7 (Final)
[root@linux-node2 ~]# uname -r
2.6.32-573.el6.x86_64
[root@linux-node2 ~]# 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@linux-node2 ~]# cd /usr/local/src/ #進入默認源碼包存放路徑
[root@linux-node2 src]# tar xf smokeping-2.6.9.tar.gz #解壓smokeping
[root@linux-node2 src]# cd smokeping-2.6.9 #進入smokeping目錄
[root@linux-node2 smokeping-2.6.9]# ./setup/build-perl-modules.sh /usr/local/smokeping/thirdparty #
[root@linux-node2 smokeping-2.6.9]# ./configure --prefix=/usr/local/smokeping #編譯smokeping到/usr/local
[root@linux-node2 smokeping-2.6.9]# cd /usr/local/smokeping/ #進入smokeping目錄
[root@linux-node2 smokeping]# mkdir cache data var #創建三個目錄
[root@linux-node2 smokeping]# touch /var/log/smokeping.log #創建smokeping日志文件
[root@linux-node2 smokeping]# chown apache.apache cache/ data/ var/ /var/log/smokeping.log #授權屬主屬組為apache
[root@linux-node2 smokeping]# cd /usr/local/smokeping/htdocs/ #進入smokeping下htdocs目錄
[root@linux-node2 htdocs]# mv smokeping.fcgi.dist smokeping.fcgi #修改smokeping文件名
[root@linux-node2 smokeping]# mv /usr/local/smokeping/etc/config.dist /usr/local/smokeping/etc/config #修改smokeping下etc目錄smokeping
1.2修改smokeping配置文件
[root@linux-node2 smokeping]# sed -i 's#cgiurl = http://some.url/smokeping.cgi#cgiurl = http://10.0.0.8/smokeping.cgi#g' /usr/local/smokeping/etc/config
[root@linux-node2 smokeping]# sed -i 's#300#60#g' /usr/local/smokeping/etc/config #默認檢測時間300秒修改60秒
[root@linux-node2 smokeping]# sed -i 's#20#60#g' /usr/local/smokeping/etc/config #默認ping20次,修改為60秒ping60次
[root@linux-node2 ~]# vim /usr/local/smokeping/etc/config #在presentation添加utf-8中文字符集
*** Presentation ***
charset = utf-8
[root@linux-node2 smokeping]# chmod 600 /usr/local/smokeping/etc/smokeping_secrets.dist #修改密碼權限為root只讀
1.3修改apache配置文件
[root@linux-node2 htdocs]# htpasswd -c /usr/local/smokeping/htdocs/htpasswd darker #設置登錄密碼認證 通過apache自帶驗證功能
New password:
Re-type new password:
Adding password for user darker
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@linux-node2 ~]# cat /etc/init.d/smokeping #smokeping啟動腳本
#!/bin/bash
#
# chkconfig: 2345 80 05
# Description: Smokeping init.d script
# Write by : linux-Leon_xiedi
# 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 #添加腳本755權限
[root@linux-node2 ~]# chkconfig --add smokeping #將smokeping加入開機啟動
[root@linux-node2 ~]# chkconfig smokeping on #設置smokeping為開機啟動
[root@linux-node2 ~]# chkconfig httpd on #設置apache為開機啟動
[root@linux-node2 ~]# /etc/init.d/httpd restart #重啟apache服務
[root@linux-node2 ~]# /etc/init.d/smokeping restart #重啟smokeping服務
1.通過瀏覽器訪問smokeping,如圖1-1
圖1-1
1.6添加需要監控的網站和節點
注意事項:
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子文件夾
5)用vmware workstation的虛擬機測試有一點好處,workstation下的虛擬網卡可以設置出入的丟包率,適合smokeping做丟包測試, 經過測試smokeping檢測出的丟包率與vmware worksation虛擬網卡設置的丟包率基本相同,也就是說smokeping 能夠反應網絡的真實狀況。
添加監控節點示例:注意+是第一層,++是第二層,+++ 是第三層
+ Other
menu = 三大網絡監控
title = 監控統計
++ dianxin
menu = 電信網絡監控
title = 電信網絡監控列表
host = /Other/dianxin/dianxin-bj /Other/dianxin/dianxin-hlj /Other/dianxin/dianxin-tj /Other/dianxin/dianxin-sc /Other/dianxin/dianxin-sh /Other/dianxin/dianxin-gz
+++ dianxin-bj
menu = 北京電信
title = 北京電信
alerts = someloss
host = 202.96.199.133
+++ dianxin-hlj
menu = 黑龍江電信
title = 黑龍江電信
alerts = someloss
host = 219.147.198.242
+++ dianxin-tj
menu = 天津電信
title = 天津電信
alerts = someloss
host = 219.150.32.132
+++ dianxin-sc
menu = 四川電信
title = 四川電信
alerts = someloss
host = 61.139.2.69
+++ dianxin-sh
menu = 上海電信
title = 上海電信
alerts = someloss
host = 116.228.111.118
+++ dianxin-gz
menu = 廣東電信
title = 廣東電信
alerts = someloss
host = 113.111.211.22
++ liantong
menu = 聯通網絡監控
title = 聯通網絡監控列表
host = /Other/liantong/liantong-bj /Other/liantong/liantong-hlj /Other/liantong/liantong-tj /Other/liantong/liantong-sc /Other/liantong/liantong-sh /Other/liantong/liantong-gz
+++ liantong-bj
menu = 北京聯通
title = 北京聯通
alerts = someloss
host = 61.135.169.121
+++ liantong-hlj
menu = 黑龍江聯通
title = 黑龍江聯通
alerts = someloss
host = 202.97.224.69
+++ liantong-tj
menu = 天津聯通
title = 天津聯通
alerts = someloss
host = 202.99.96.68
+++ liantong-sc
menu = 四川聯通
title = 四川聯通
alerts = someloss
host = 119.6.6.6
+++ liantong-sh
menu = 上海聯通
title = 上海聯通
alerts = someloss
host = 210.22.84.3
+++ liantong-gz
menu = 廣東聯通
title = 廣東聯通
alerts = someloss
host = 221.5.88.88
++ yidong
menu = 移動網絡監控
title = 移動網絡監控列表
host = /Other/yidong/yidong-bj /Other/yidong/yidong-hlj /Other/yidong/yidong-tj /Other/yidong/yidong-sc /Other/yidong/yidong-sh /Other/yidong/yidong-gz
+++ yidong-bj
menu = 北京移動
title = 北京移動
alerts = someloss
host = 221.130.33.52
+++ yidong-hlj
menu = 黑龍江移動
title = 黑龍江移動
alerts = someloss
host = 211.137.241.35
+++ yidong-tj
menu = 天津移動
title = 天津移動
alerts = someloss
host = 211.137.160.5
+++ yidong-sc
menu = 四川移動
title = 四川移動
alerts = someloss
host = 218.201.4.3
+++ yidong-sh
menu = 上海移動
title = 上海移動
alerts = someloss
host = 117.131.19.23
+++ yidong-gz
menu = 廣東移動
title = 廣東移動
alerts = someloss
host = 211.136.192.6