一、smokeping介绍

  我们在选择机房的时候,如何知道这个机房的网络情况,这个时候就要用到网络监控软件:smokeping  

  本文主要介绍如何使用smokeping来监控idc机房的网络质量情况,从监控图上的延时与丢包能分辨出你机房的网络是否稳定,是否为多线,是否为BGP机房,到各城市的3个运营商之间的网络,各是什么情况,如果出现问题,如何有针对性的解决。而且如果选择新机房的时候,你可以根据smokeping的监控结果来判断这个机房是否适合。

是的作者的作品,所以它在图形显示方面有很大优势,也是一个很 有特点的opensource工具:

1、多种探测方式,包括fping、echoping、dig、curl等;

2、易用可扩展的插件;
3、 的 工作方式,可以在多个节点收集同一个监测点的数据;

 

二、安装smokeping

1、软件环境:

[root@smokeping ~]# cat /etc/redhat-release CentOS release 6.6 (Final)[root@smokeping ~]# uname -r2.6.32-504.el6.x86_64

2、下载软件

wget  http://www.fping.org/dist/fping-3.10.tar.gzwget  https://fossies.org/linux/misc/old/echoping-6.0.2.tar.gzwget  http://oss.oetiker.ch/smokeping/pub/smokeping-2.6.9.tar.gz

3、安装软件

1、安装依赖包:

yum install perl perl-Net-Telnet perl-Net-DNS perl-LDAP perl-libwww-perl perl-IO-Socket-SSL perl-Socket6 perl-Time-HiRes perl-ExtUtils-MakeMaker rrdtool rrdtool-perl curl 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 popt popt-devel libidn libidn-devel -y

2、解压、编译安装fping

tar xf fping-3.10.tar.gzcd fping-3.10./configuremake && make install

3、解压、编译安装echoping

tar xf echoping-6.0.2.tar.gzcd echoping-6.0.2./configuremake && make install

4、解压、编译安装smokeping

tar xf smokeping-2.6.9.tar.gzcd smokeping-2.6.9./setup/build-perl-modules.sh /usr/local/smokeping/thirdparty./configure --prefix=/usr/local/smokeping/usr/bin/gmake install

5、配置 smokeping 

1
2
3
4
5
6
7
8
9
10
cd 
/
usr
/
local
/
smokeping
/
mkdir cache data var
touch 
/
var
/
log
/
smokeping.log
chown apache:apache cache data var
chown apache:apache 
/
var
/
log
/
smokeping.log
chmod 
600 
/
usr
/
local
/
smokeping
/
etc
/
smokeping_secrets.dist
cd 
/
usr
/
local
/
smokeping
/
htdocs
mv smokeping.fcgi.dist smokeping.fcgi
cd 
/
usr
/
local
/
smokeping
/
etc
mv config.dist config

6、更改配置文件

vim /usr/local/smokeping/etc/config主要修改如下内容:#cgiurl = http://some.url/smokeping.cgicgiurl = http://192.168.30.128/smokeping.cgi *** Database *** #step = 300 step = 60 #此处建议改为 60 , 一分钟采集一次数据 pings = 20

7、编辑apache配置文件

vim /etc/httpd/conf/httpd.conf #在结尾添加如下代码: #add smokeping configure file at 2017-04-10Alias /cache "/usr/local/smokeping/cache/"Alias /cropper "/usr/local/smokeping/htdocs/cropper/"Alias /smokeping "/usr/local/smokeping/htdocs/smokeping.fcgi"
AllowOverride NoneOptions AllAddHandler cgi-script .fcgi .cgiOrder allow,denyAllow from allDirectoryIndex smokeping.fcgi

8、图像浏览界面的中文支持

安装字体

1
yum 
-
y install wqy
-
zenhei
-
fonts.noarch

编辑smokeping的配置文件

1
2
3
4
5
vim 
/
usr
/
local
/
smokeping
/
etc
/
config
 
*
*
* 
Presentation 
*
*
*
charset 
= 
UTF
-
8  
#添加这行,解决出图乱码问题
template 
= 
/
usr
/
local
/
smokeping
/
etc
/
basepage.html.dist

编辑Graphs.pm

vi /usr/local/smokeping/lib/Smokeping/Graphs.pm

#在第147行,下边插入这一行代码

1
'--font TITLE:20:"WenQuanYi Zen Hei Mono"'
,

如下图代码,标红部分

    if ($mode =~ /[anc]/){        my $val = 0;        for my $host (@hosts){            my ($graphret,$xs,$ys) = RRDs::graph            ("dummy",            '--start', $tasks[0][1],            '--end', $tasks[0][2],            "DEF:maxping=$cfg->{General}{datadir}${host}.rrd:median:AVERAGE",                        '--font TITLE:20:"WenQuanYi Zen Hei Mono"',            'PRINT:maxping:MAX:%le' );            my $ERROR = RRDs::error();            return "
RRDtool did not understand your input: $ERROR.
" if $ERROR;            $val = $graphret->[0] if $val < $graphret->[0];        }        $val = 1e-6 if $val =~ /nan/i;        $max = { $tasks[0][1] => $val * 1.5 };    }

9、##########测试数据可自定义##########

config 配置文件的最后边

vim /usr/local/smokeping/etc/config+ 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 = somelosshost = 211.136.192.6

10、smokeping的默认配置文件110行的fping安装目录与此次安装目录不相符需修改!

1
2
3
4
vi 
/
usr
/
local
/
smokeping
/
etc
/
config
 
#第110更改fping的目录为
binary 
= 
/
usr
/
local
/
sbin
/
fping

11、启动apache服务和smokeping服务

1
#启动apache服务

  [root@smokeping ~]# /etc/init.d/httpd start

  正在启动 httpd:httpd: apr_sockaddr_info_get() failed for smokeping
  httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
  [确定]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<br>
#重启apache服务
[root@smokeping ~]
# /etc/init.d/httpd restart
停止 httpd:[确定]
正在启动 httpd:httpd: apr_sockaddr_info_get() failed 
for 
smokeping
httpd: Could 
not 
reliably determine the server's fully qualified domain name, using 
127.0
.
0.1 
for 
ServerName
 
 
#启动smokeping
/
usr
/
local
/
smokeping
/
bin
/
smokeping
<br>
#检查
[root@smokeping ~]
# ps -ef|grep smokeping
root      
66206      
1  
0 
23
:
47 
?        
00
:
00
:
00 
/
usr
/
local
/
smokeping
/
bin
/
smokeping [FPing]
root      
66476   
1586  
0 
23
:
58 
pts
/
0    
00
:
00
:
00 
grep smokeping
 
#杀smokeping进程号
[root@smokeping ~]
# kill -9 66206
[root@smokeping ~]
# kill -9 66206
-
bash: kill: (
66206
- 
没有那个进程
 
#再启动smokeping
[root@smokeping ~]
# /usr/local/smokeping/bin/smokeping
Note: logging to syslog as local0
/
info.
Daemonizing 
/
usr
/
local
/
smokeping
/
bin
/
smokeping ...

12、设置环境变量

1
echo 
'export PATH=/usr/local/smokeping/bin/:$PATH' 
>> 
/
etc
/
profile

 

三、用数据说话(三大运营商网络监测图)

1、访问网站

1
http:
/
/
192.168
.
30.128
/
smokeping 

2、监控统计图

本文转自: