Smokeping網(wǎng)絡(luò)監(jiān)控

1. smokeping簡介

smokeping是一款監(jiān)控網(wǎng)絡(luò)狀態(tài)和穩(wěn)定性的開源軟件(它是rrdtool的作者開發(fā)的)刊侯,通過它可以監(jiān)控到公司IDC的網(wǎng)絡(luò)狀況章办,如延時(shí),丟包率滨彻,是否BGP多線等藕届;

smokeping會向目標(biāo)設(shè)備和系統(tǒng)發(fā)送各種類型的測試數(shù)據(jù)包,測量亭饵、記錄休偶,并通過rrdtool制圖方式,圖形化地展示網(wǎng)絡(luò)的時(shí)延情況辜羊,進(jìn)而能夠清楚的判斷出網(wǎng)絡(luò)的即時(shí)通信情況踏兜;通過smokeping來監(jiān)控IDC機(jī)房網(wǎng)絡(luò)質(zhì)量情況,可以從監(jiān)控圖上的延時(shí)與丟包情況分辨出機(jī)房的網(wǎng)絡(luò)是否穩(wěn)定八秃,是否為多線碱妆,是否為BGP機(jī)房以及到各城市的三個(gè)運(yùn)行商網(wǎng)絡(luò)各是什么情況。如果出現(xiàn)問題昔驱,可以有針對性的去處理疹尾;如果選擇新機(jī)房的時(shí)候,還可以根據(jù)smokeping的監(jiān)控結(jié)果來判斷這個(gè)機(jī)房是否適合。

需要注意的是:smokeping監(jiān)控的是網(wǎng)絡(luò)穩(wěn)定性航棱,而cacti或zabbix監(jiān)控的是帶寬使用情況(即進(jìn)出口流量)

2. 部署smokeping

2.1. 環(huán)境準(zhǔn)備

[root@linux-node1 ~]# cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core) 
[root@linux-node1 ~]# systemctl status firewalld.service 
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
[root@linux-node1 ~]# getenforce 
Disabled

2.2. 安裝rrdtool與依賴庫

[root@linux-node1 ~]# yum install -y fping 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

2.3. 下載與安裝smokeping

[root@linux-node1 ~]# cd /usr/local/src/
[root@linux-node1 src]# wget https://oss.oetiker.ch/smokeping/pub/smokeping-2.6.11.tar.gz
[root@linux-node1 src]# tar xf smokeping-2.6.11.tar.gz
[root@linux-node1 src]# cd smokeping-2.6.11
[root@linux-node1 smokeping-2.6.11]# ./configure --prefix=/usr/local/smokeping
# 如果是第一次安裝smokeping程序睡雇,一般會出現(xiàn)報(bào)錯(cuò),說沒有perl模塊支持饮醇,需要安裝模塊后在執(zhí)行安裝程序
** Aborting Configure ******************************
   If you know where perl can find the missing modules, set
   the PERL5LIB environment variable accordingly.
   FIRST though, make sure that 'perl' starts the perl
   binary you want to use for SmokePing.
   Now you can install local copies of the missing modules
   by running
     ./setup/build-perl-modules.sh /usr/local/smokeping/thirdparty
   The RRDs perl module is part of RRDtool. Either use the rrdtool
   package provided by your OS or install rrdtool from source.
   If you install from source, the RRDs module is located
   PREFIX/lib/perl

2.4. 安裝依賴的Perl模塊

[root@linux-node1 smokeping-2.6.11]# cat PERL_MODULES 
FCGI
CGI
CGI::Fast
Config::Grammar
Digest::HMAC_MD5
Net::Telnet
Net::OpenSSH
Net::SNMP
Net::LDAP
Net::DNS
IO::Pty
LWP
# 指定perl源安裝perl模塊
[root@linux-node1 smokeping-2.6.11]# vim ./setup/sdbs.inc
………………省略內(nèi)容………………
function perlmodule (){
    path=$1;shift
    pack=${1:-""}
    [ -e $PREFIX/bin/cpanm ] || wget --no-check-certificate -O $PREFIX/bin/cpanm cpanmin.us && chmod 755 $PREFIX/bin/cpanm
    cpanm --mirror http://mirrors.aliyun.com/CPAN/ "$path$pack"
    [ "$KEEP" = "YES" ] || rm -rf $PREFIX/work $PREFIX/latest-build
}
[root@linux-node1 smokeping-2.6.11]# ./setup/build-perl-modules.sh /usr/local/smokeping/thirdparty
[root@linux-node1 smokeping-2.6.11]# ./configure --prefix=/usr/local/smokeping
………………省略內(nèi)容………………
** Ready to install Smokeping ******************************
   Settings:
     PERL5LIB = not set
     PERL = /usr/bin/perl
   The Smokeping Makefiles use GNU make functionality.
   Continue installation with
     /usr/bin/gmake install
[root@linux-node1 smokeping-2.6.11]# /usr/bin/gmake install

報(bào)錯(cuò)處理:

報(bào)錯(cuò)1:
Can't locate Sys/Syslog.pm in @INC (@INC contains: /usr/local/smokeping/thirdparty/lib/perl5/x86_64-linux-thread-multi /usr/local/smokeping/thirdparty/lib/perl5 ../lib /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at ../lib/Smokeping.pm line
解決:yum install -y perl-Sys-Syslog
報(bào)錯(cuò)2:smokeping_config.pod around line 81: alternative text 'the master/slave mode' contains non-escaped | or /
POD document had syntax errors at /bin/pod2man line 69.
https://github.com/oetiker/SmokePing/issues/23 

3. 配置smokeping

3.1. 創(chuàng)建相關(guān)目錄

[root@linux-node1 smokeping-2.6.11]# cd /usr/local/smokeping
[root@linux-node1 smokeping]# mkdir cache data var

3.2. 創(chuàng)建日志文件

[root@linux-node1 smokeping-2.6.11]# touch /var/log/smokeping.log

3.3. 目錄文件授權(quán)

[root@linux-node1 smokeping-2.6.11]# chown apache:apache cache data var
[root@linux-node1 smokeping-2.6.11]# chown apache:apache /var/log/smokeping.log

3.4. 修改配置文件

[root@linux-node1 smokeping]# cd /usr/local/smokeping/htdocs/
[root@linux-node1 htdocs]# mv smokeping.fcgi.dist smokeping.fcgi
[root@linux-node1 htdocs]# cd /usr/local/smokeping/etc
[root@linux-node1 etc]# mv config.dist config
[root@linux-node1 etc]# cp config config.bak
# 修改cgiurl它抱,修改為本機(jī)的IP地址或者是域名
[root@linux-node1 etc]# sed -i 's#some.url#smokeping.cainaio.com#' /usr/local/smokeping/etc/config
# 默認(rèn)檢測時(shí)間 300 秒修改 60 秒
[root@linux-node1 etc]#  sed -i 's#300#60#g' /usr/local/smokeping/etc/config
# 默認(rèn) 60 秒 ping 20 次,修改為 60 秒 ping 60 次
[root@linux-node1 etc]# sed -i 's#pings    = 20#pings    = 60#' /usr/local/smokeping/etc/config
# 圖像瀏覽界面的中文支持
[root@linux-node1 etc]#  yum -y install wqy-zenhei-fonts.noarch
[root@linux-node1 etc]# vim /usr/local/smokeping/etc/config
charset = utf-8              //第50行下面添加此行內(nèi)容
# 編輯Graphs.pm
[root@linux-node1 etc]# vim /usr/local/smokeping/lib/Smokeping/Graphs.pm
'--font TITLE:20:"WenQuanYi Zen Hei Mono"',                  //第147行下面插入邊一行內(nèi)容
# 配置完成之后修改密碼文件權(quán)限
[root@linux-node1 etc]# chmod 600 /usr/local/smokeping/etc/smokeping_secrets.dist

3.5. 修改apache的配置

[root@linux-node1 etc]# vim /etc/httpd/conf.d/smokeping.conf
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 all
    Options -Indexes +FollowSymlinks
    AddHandler cgi-script .fcgi .cgi
    Require all granted
    DirectoryIndex smokeping.fcgi
</Directory>

3.6. 添加測試數(shù)據(jù)

接著進(jìn)行測試數(shù)據(jù)的自定義(可以將smokeping部署在公司網(wǎng)絡(luò)下朴艰,然后自定義監(jiān)控各個(gè)IDC的網(wǎng)絡(luò)情況观蓄,監(jiān)控設(shè)置如下定義)

[root@linux-node1 etc]# vim /usr/local/smokeping/etc/config         # 在最后面添加
+ Other
menu = 三大網(wǎng)絡(luò)監(jiān)控
title = 監(jiān)控統(tǒng)計(jì)
++ dianxin
menu = 電信網(wǎng)絡(luò)監(jiān)控
title = 電信網(wǎng)絡(luò)監(jiān)控列表
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 = 聯(lián)通網(wǎng)絡(luò)監(jiān)控
title = 聯(lián)通網(wǎng)絡(luò)監(jiān)控列表
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 = 北京聯(lián)通
title = 北京聯(lián)通
alerts = someloss
host = 61.135.169.121
 
+++ liantong-hlj
menu = 黑龍江聯(lián)通
title = 黑龍江聯(lián)通
alerts = someloss
host = 202.97.224.69
 
+++ liantong-tj
menu = 天津聯(lián)通
title = 天津聯(lián)通
alerts = someloss
host = 202.99.96.68
 
+++ liantong-sc
menu = 四川聯(lián)通
title = 四川聯(lián)通
alerts = someloss
host = 119.6.6.6
 
+++ liantong-sh
menu = 上海聯(lián)通
title = 上海聯(lián)通
alerts = someloss
host = 210.22.84.3
 
+++ liantong-gz
menu = 廣東聯(lián)通
title = 廣東聯(lián)通
alerts = someloss
host = 221.5.88.88
 
++ yidong
menu = 移動網(wǎng)絡(luò)監(jiān)控
title = 移動網(wǎng)絡(luò)監(jiān)控列表
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
  1. 修改fping位置

修改smokeping的config配置文件中fping路徑

[root@linux-node1 etc]# which fping
/sbin/fping
[root@linux-node1 etc]# vim /usr/local/smokeping/etc/config 
binary = /sbin/fping

4. 啟動smokeping

啟動httpd和smokeping服務(wù)

# 最好將httpd.conf中的ServerName www.example.com:80這一行的注釋打開
[root@linux-node1 ~]# systemctl start httpd.service        
[root@linux-node1 ~]# /usr/local/smokeping/bin/smokeping
設(shè)置smokeping開機(jī)啟動
[root@linux-node1 ~]# echo "/usr/local/smokeping/bin/smokeping" >> /etc/rc.local
設(shè)置smokeping環(huán)境變量
[root@linux-node1 ~]# echo 'export PATH=/usr/local/smokeping/bin/:$PATH' >> /etc/profile

5. 訪問smokeping

本地hosts綁定smokeping.cainaio.com,然后訪問上面部署的smokeping界面:

http://smokeping.cainaio.com/smokeping (首次訪問祠墅,采集數(shù)據(jù)需要一段時(shí)間侮穿,等一會就會有數(shù)據(jù)圖形展示)

image-20201116230635854

以上為實(shí)驗(yàn)環(huán)境,可根據(jù)自己實(shí)際的網(wǎng)絡(luò)情況進(jìn)行監(jiān)控配置的修改毁嗦。如果按照上面操作后亲茅,直接在網(wǎng)上訪問是十分的不安全,需要加入安全訪問控制

修改apache的smokeping.conf配置

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 all
    Options All
    AddHandler cgi-script .fcgi .cgi
    Options -Indexes +FollowSymlinks
    DirectoryIndex smokeping.fcgi
    AuthName "Smokeping"
    AuthType Basic
    AuthUserFile /usr/local/smokeping/htdocs/htpasswd
    Require valid-user
</Directory>

設(shè)置訪問的用戶名和密碼(比如admin/admin)

[root@linux-node1 ~]# htpasswd -c /usr/local/smokeping/htdocs/htpasswd admin
New password: 
Re-type new password: 
Adding password for user admin

重啟apache

[root@linux-node1 ~]# systemctl restart httpd.service 

再次訪問smokeping界面

img
image-20201116230704419
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末狗准,一起剝皮案震驚了整個(gè)濱河市克锣,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌腔长,老刑警劉巖袭祟,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異捞附,居然都是意外死亡巾乳,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進(jìn)店門鸟召,熙熙樓的掌柜王于貴愁眉苦臉地迎上來胆绊,“玉大人,你說我怎么就攤上這事欧募⊙棺矗” “怎么了?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵槽片,是天一觀的道長。 經(jīng)常有香客問我肢础,道長还栓,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任传轰,我火速辦了婚禮剩盒,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘慨蛙。我一直安慰自己辽聊,他們只是感情好纪挎,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著跟匆,像睡著了一般异袄。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上玛臂,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天烤蜕,我揣著相機(jī)與錄音,去河邊找鬼迹冤。 笑死讽营,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的泡徙。 我是一名探鬼主播橱鹏,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼堪藐!你這毒婦竟也來了莉兰?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤庶橱,失蹤者是張志新(化名)和其女友劉穎贮勃,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體苏章,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡寂嘉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了枫绅。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片泉孩。...
    茶點(diǎn)故事閱讀 40,001評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖并淋,靈堂內(nèi)的尸體忽然破棺而出寓搬,到底是詐尸還是另有隱情,我是刑警寧澤县耽,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布句喷,位于F島的核電站,受9級特大地震影響兔毙,放射性物質(zhì)發(fā)生泄漏唾琼。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一澎剥、第九天 我趴在偏房一處隱蔽的房頂上張望锡溯。 院中可真熱鬧,春花似錦、人聲如沸祭饭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽倡蝙。三九已至九串,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間悠咱,已是汗流浹背蒸辆。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留析既,地道東北人躬贡。 一個(gè)月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像眼坏,于是被迫代替她去往敵國和親拂玻。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評論 2 355

推薦閱讀更多精彩內(nèi)容