网络成瘾症

首页 » 常识 » 问答 » 网络质量拨测有高招腾讯云搭建网络质量拨
TUhjnbcbe - 2023/7/4 20:49:00

如今,定期的提供网络服务质量报告,让用户和开发者清楚的知道自己的网络质量的好坏至关重要,大家需要更为高效的网络质量拨测工具。

SmokePing是由RRDtool的作者TobiOetiker开发的一款监控网络状态和稳定性的开源软件。SmokePing会不断向目标发送各种类型的数据包,并对返回值进行测量和记录,通过RRDtool制图程序图形化地展示在各个时段内网络的延迟和丢包情况,帮助我们更清楚、更直观地了解监控机和监控目标之间短期和长期的网络状况。
  

本文以腾讯云轻量应用服务器香港地域为例,演示和教学网络质量拨测工具SmokePing的编译和个性化配置。腾讯云轻量应用服务器目前提供北京、广州、上海、南京、成都、中国香港、新加坡、东京、硅谷和莫斯科等10个地域的机器供用户购买。

一、准备工作

1.1服务器及其系统选择


  SmokePing需要的资源不多,正常运行的话仅需MB左右的内存,因此低配高配轻量套餐均可搭建。


  目前经过严密测试,SmokePing2.7.3及以上版本支持AmazonLinux2(AMI),CentOS7及以上、Debian9及以上、OracleLinux7及以上和Ubuntu18及以上的Linux发行版。因此系统选择时可以在CentOS,Debian和Ubuntu之间随意选择。

1.2安装依赖


  CentOS用户请依次执行:

sed-is/SELINUX=enforcing/SELINUX=disabled//etc/selinux/config

setenforce0

yuminstallwgetcurlca-certificatesdmidecodeepel-release-y

update-ca-trustforce-enable

yuminstalltarzipunzipopensslopenssl-devellsofgitjqsocatcrontabsmakegccrrdtoolrrdtool-perlperl-corespawn-fcgitraceroutezlibzlib-develwqy-zenhei-fonts-y


  Debian/Ubuntu用户请依次执行:

aptupdate

aptinstallwgetcurlgnupg2ca-certificatesdmidecodelsb-release-y

update-ca-certificates

aptinstalltarzipunzipopenssllibssl-devlsofgitjqsocatcronmakegccrrdtoollibrrds-perlspawn-fcgitraceroutezlib1gzlib1g-devfonts-droid-fallback-y

1.3获取TCPPing组件


  新建文件/usr/bin/tcpping-sp并填入以下内容:

#!/bin/sh-e

#

#Copyright(c),TorbjrnLnnemark

#

#Permissiontouse,copy,modify,and/ordistributethissoftwareforany

#purposewithorwithoutfeeisherebygranted,providedthattheabove

#copyrightnoticeandthispermissionnoticeappearinallcopies.

#

#THESOFTWAREISPROVIDED"ASIS"ANDTHEAUTHORDISCLAIMSALLWARRANTIES

#WITHREGARDTOTHISSOFTWAREINCLUDINGALLIMPLIEDWARRANTIESOF

#MERCHANTABILITYANDFITNESS.INNOEVENTSHALLTHEAUTHORBELIABLEFOR

#ANYSPECIAL,DIRECT,INDIRECT,ORCONSEQUENTIALDAMAGESORANYDAMAGES

#WHATSOEVERRESULTINGFROMLOSSOFUSE,DATAORPROFITS,WHETHERINAN

#ACTIONOFCONTRACT,NEGLIGENCEOROTHERTORTIOUSACTION,ARISINGOUTOF

#ORINCONNECTIONWITHTHEUSEORPERFORMANCEOFTHISSOFTWARE.

if[$#!=5-a$#!=4]

then

echo"Wrongnumberofarguments"

exit

fi

output="$4:"foriin$(seq$3)do

portflag=""

if[$#=5]

then

portflag="-p$5"

fi

tr=$(traceroute-n-T-f-m-q1-w3$portflag$

tail-n1

seds///g)

if!echo"$tr"

grepms$/dev/null

then

output="$output-"

else

ms=$(echo"$tr"

cut-d""-f3)

output="$output$ms"

fi

done

echo$output


  执行chmod+x/usr/bin/tcpping-sp赋予其执行权。

1.4获取SmokePing源码包


  海外用户请执行wget
  执行cdsmokeping-2.7.3进入SmokePing源代码目录,执行./configure--prefix=/usr/local/smokeping执行SmokePing编译检查和配置。


  执行makeinstall进行编译。

三、配置FsatCGI前端程序


  较为流行的教程均以Apache2作为SmokePing的默认FCGI程序,但目前Nginx较为流行。本文以Nginx作为SmokePing的FastCGI程序。

3.1安装Nginx


  注意:如果你已经安装Nginx,则无需再次安装Nginx。本文以包安装的Nginx为例。
  安装Nginx的教程多如牛毛,使用包安装方案、LNMP.org一键包方案和通过宝塔面板安装的Nginx均可。

3.2配置Nginx站点配置文件

3.2.1获取Nginx的fastcgi_params位置


  执行find/-namefastcgi_params查找Nginx的fastcgi_params位置。一般情况下,包安装的Nginx的fastcgi_params位置为/etc/nginx/fastcgi_params,LNMP.org一键包方案安装的Nginx的fastcgi_params位置为/usr/local/nginx/conf/fastcgi_params宝塔面板安装的Nginx的fastcgi_params位置为/
  使用包安装的Nginx的用户请在/etc/nginx/conf.d目录新建一个空白文件,文件名为域名.conf(请自定义域名)。


  使用LNMP.org一键包方案安装的Nginx的用户请执行lnmpvhostadd以添加一个站点,暂时不要配置SSL。


  使用宝塔面板安装的Nginx的用户请新建一个站点。

3.2.3修改Nginx站点配置文件


  使用包安装的Nginx的用户请将如下内容粘贴到/etc/nginx/conf.d/域名.conf;使用LNMP.org一键包方案安装的Nginx的用户请使用如下内容将/usr/local/nginx/conf/vhost/域名.conf的原始内容覆盖掉;使用宝塔面板安装的Nginx的用户请使用如下内容将站点配置的原始内容覆盖掉。

server{

listen80;

listen[::]:80;

listen.0.0.1:;

server_name$domain;

indexindex.htmlindex.htmsmokeping.fcgi;

root/usr/local/smokeping/htdocs/;

#error_page/.html;

location~.*\.fcgi\${

fastcgi_pass.0.0.1:;

include$nginx_fastcgi/fastcgi_params;

}

access_log/dev/null;

error_log/dev/null;}


  其中,请将domain替换为先前定义的域名,将nginx_fastcgi/fastcgi_params替换为先前获得的Nginx的fastcgi_params位置。


  使用包安装的Nginx的用户和使用LNMP.org一键包方案安装的Nginx的用户请执行nginx-sreload;使用宝塔面板安装的Nginx的用户请在修改站点配置后单击“保存”按钮。

四、SmokePing守护和配置

4.1守护进程


  新建文件/etc/systemd/system/smokeping.service,填入以下内容:

[Unit]

Description=SmokePingService

After=network-online.targetremote-fs.targetnss-lookup.target

Wants=network-online.target

[Service]

Type=oneshot

ExecStart=/bin/bash/usr/local/smokeping/bin/slave.sh

RemainAfterExit=yes

[Install]

WantedBy=multi-user.target


  执行systemctlenablesmokeping使其开机启动。

4.2配置从服务器运行脚本


  新建文件/usr/local/smokeping/bin/slave.sh,填入以下内容:

#/bin/bash

kill-9$(ps-ef

grepsmokeping_cgi

awk$0!~/grep/{print$2}

tr-s\n)

kill-9$(ps-ef

grepsmokeping/bin/smokeping

awk$0!~/grep/{print$2}

tr-s\n)

chown-R
  将SLAVE_CODE替换为自定义的英文+数字组合。

4.3配置SmokePing主服务器


  新建文件/usr/local/smokeping/etc/config,填入以下内容:

***General***

owner=X

contact=some

address.nowhere

mailhost=my.mail.host

imgcache=/usr/local/smokeping/htdocs/cache

imgurl=cache

datadir=/usr/local/smokeping/htdocs/data

piddir=/usr/local/smokeping/htdocs/var

cgiurl=
  将第10行的some.url修改为第三部分使用的域名;将SLAVE_CODE替换为与步骤4.2相同的自定义的英文+数字组合;将SLAVE_NAME替换为自定义的名字,支持包括中文在内的任何UTF-8字符。

4.4配置通信密钥


  新建文件/usr/local/smokeping/etc/smokeping_secrets.dist,填入以下内容:

$code:$sec


  其中,code为步骤4.2相同的自定义的英文+数字组合;sec为自定义的英文+数字组合。


  新建文件/usr/local/smokeping/etc/secrets,将上面的$sec填入。

4.5安全和收尾


  依次执行以下命令:

chmod/usr/local/smokeping/etc/secrets/usr/local/smokeping/etc/smokeping_secrets.dist

chown
  依次执行以下命令:

cd/usr/local/smokeping/htdocs

mkdir-pdatavarcache../cache

mvsmokeping.fcgi.distsmokeping.fcgi


  执行systemctlstartsmokeping以启动SmokePing。

五、个性化配置SmokePing


  SomkePing所监控的节点全部配置在/usr/local/smokeping/etc/config中;监控节点可以分目录层级,+为第一级目录,++为第二级目录,+++为第三级目录,以此类推。增加或修改节点时请保持slaves=相同。

六、结语

手动编译SmokePing太复杂了,在此推荐我自己写的项目KukiSa/smokeping-lnmp,一键脚本直接安装(适用于已经安装了Nginx的用户)以及jiuqi/smokeping(适用于未安装Nginx的用户)。

本文参考来源/iks

1
查看完整版本: 网络质量拨测有高招腾讯云搭建网络质量拨