首页 » 技术分享 » smokeping网络监控

smokeping网络监控

 

一、smokeping介绍

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

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

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

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

2、易用可扩展的插件;

3、master/slave 的 工作方式,可以在多个节点收集同一个监测点的数据

二、安装smokeping

1、软件环境

[root@MJ-Zabbix ~]# cat /etc/redhat-release 

CentOS release 6.9 (Final)

[root@MJ-Zabbix ~]# uname -r

2.6.32-696.1.1.el6.x86_64

[root@MJ-Zabbix ~]# 

2、软件下载

wget http://www.fping.org/dist/fping-3.10.tar.gz

wget https://fossies.org/linux/misc/old/echoping-6.0.2.tar.gz

wget 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.gz

cd fping-3.10

./configure

make && make install

3、解压、编译安装echoping

tar xf echoping-6.0.2.tar.gz

cd echoping-6.0.2

./configure

make && make install

4、解压、编译安装smokeping

tar xf smokeping-2.6.9.tar.gz

cd smokeping-2.6.9

./setup/build-perl-modules.sh /usr/local/smokeping/thirdparty

./configure --prefix=/usr/local/smokeping

/usr/bin/gmake install

5、配置 smokeping 

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.cgi

cgiurl = http://10.0.0.62/smokeping.cgi

*** Database ***

#step = 300

step = 60 #此处建议改为 60 , 一分钟采集一次数据

pings = 20

7、编辑apache配置文件

vim /etc/httpd/conf/httpd.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 None

Options All

AddHandler cgi-script .fcgi .cgi

Order allow,deny

Allow from all

DirectoryIndex smokeping.fcgi

</Directory>

 

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

安装字体

yum -y install wqy-zenhei-fonts.noarch

编辑smokeping的配置文件

vim /usr/local/smokeping/etc/config

第50行添加

charset = utf-8 #添加此行,解决出图乱码问题

编辑Graphs.pm

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

#第147行下边插入下边一行

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

设置开机启动:

echo "/usr/local/smokeping/bin/smokeping --logfile=/var/log/smokeping.log 2>&1 &" >> /etc/rc.local

#########################################################

 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 "<div>RRDtool did not understand your input: $ERROR.</div>" 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

 

##################################################

+ Test

menu= Targets

#parents = owner:/Test/James location:/

#++ James

#menu = James

#title =James

#alerts = someloss

#slaves = boomer slave2

#host = james.address

#++ MultiHost

#menu = Multihost

#title = James and James as seen from Boomer

#host = /Test/James /Test/James~boomer

+ Internet

menu = Internet

title = Internet

++ IDC

menu = IDC

title = IDC

+++ MJ-Baidu

menu = MJ-Baidu

title = MJ-Baidu

host = 61.135.169.121

+++ MJ-163

menu = MJ-163

title = MJ-163

host = 61.149.9.224

+++ ZW-IDC

menu = ZW-IDC

title = ZW-IDC

host = 101.251.x.x

+++ SD-IDC

menu = SD-IDC

title = SD-IDC

host = 219.143.x.x

++ Office-DS

menu = office-DS

title = office-DS

+++ UC-500M

menu = UC-500M

title = UC-500M

host = 103.36.x.x

+++ CT-50M

menu = CT-50M

title = CT-50M

host = 124.127.x.x

+++ UC-100M

menu = UC-100M

title = UC-100M

host = 114.255.x.x

++ Office-FenBu

menu = office-FenBu

title = office-FenBu

+++ JN-CT-100M

menu = JN-100M

title = JN-100M

host = 123.168.x.x

+++ WT-CT-50M

menu = WT-50M

title = WT-50M

host = 58.132.x.x

+++ JiuJiang

menu = JiuJiang

title = JiuJiang

++++ JiuJiang-CT

menu = CT-50M

title = CT-50M

host = 218.87.90.x

++++ JiuJiang-UC

menu = CT-20M

title = CT-20M

host = 58.17.120.x

10.启动服务:

httpd:

[root@MJ-Zabbix etc]# /etc/init.d/httpd restart

Stopping httpd:                                            [  OK  ]

Starting httpd:                                            [  OK  ]

11.启动问题

smokeping:

[root@MJ-Zabbix etc]# /usr/local/smokeping/bin/smokeping    看到如下信息说明smokeping 配置无问题,可出图

Note: logging to syslog as local0/info.

Daemonizing /usr/local/smokeping/bin/smokeping ...

如果启动有问题:

1、File '/usr/local/smokeping/etc/smokeping_secrets.dist' is world-readable

2、ERROR: /usr/local/smokeping/bin/../etc/config, line 112: File '/usr/local/smokeping/etc/smokeping_secrets.dist' is world-readable or writable, refusing it

查看smokeping_secrets.dist文件属性是否为400,如不是请按照如下修改:

[root@MJ-Zabbix etc]# ll

total 24

-rw-r--r-- 1 root root 2041 Feb 27 17:21 basepage.html.dist

-rw-r--r-- 1 root root 3829 Mar  1 10:19 config

drwxr-xr-x 2 root root 4096 Feb 27 17:21 examples

-rw-r--r-- 1 root root 1563 Feb 27 17:21 smokemail.dist

-rw-r--r-- 1 root root   59 Feb 27 17:21 smokeping_secrets.dist

-rw-r--r-- 1 root root 3815 Feb 27 17:21 tmail.dist

注意etc/smokeping_secrets.dist文件属性必须400

chmod 400 smokeping_secrets.dist    修改权限

/usr/local/smokeping/bin/smokeping  --check   检查语法

[root@MJ-Zabbix etc]# ps -ef |grep smokeping

root     15946     1  0 10:20 ?        00:00:02 /usr/local/smokeping/bin/smokeping [FPing]

root     21066 20350  0 11:49 pts/1    00:00:00 grep smokeping

注意:每次修改smokeping配置文件/usr/local/smokeping/etc/config都要先杀进程,然后重启服务才生效

[root@MJ-Zabbix etc]# kill -9 15946     

[root@MJ-Zabbix etc]# /usr/local/smokeping/bin/smokeping

Note: logging to syslog as local0/info.

Daemonizing /usr/local/smokeping/bin/smokeping ...

12. Zabbix和Smokeping部署在同一台服务器,占用端口80

修改端口80为8080,重启httpd服务

[root@MJ-Zabbix /]# cd /etc/httpd/conf/http.conf



13、验证测试:

10.2.66.200:8080/zabbix

10.2.66.200:8080/smokeping



############################

补充:

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

vim /usr/local/smokeping/etc/config

#第110更改fping的目录为

binary = /usr/local/sbin/fping

15、启动apache和smokeping&设置环境变量

/etc/init.d/httpd start

/usr/local/smokeping/bin/smokeping

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

转载自原文链接, 如需删除请联系管理员。

原文链接:smokeping网络监控,转载请注明来源!

0