SmokePing是一款监控网络状态和稳定性的开源软件(它是rrdtool的作者开发的),通过它可以监控到公司IDC的网络状况,如延时,丢包率,是否BGP多线等;smokeping会向目标设备和系统发送各种类型的测试数据包,测量、记录,并通过rrdtool制图方式,图形化地展示网络的时延情况,进而能够清楚的判断出网络的即时通信情况;
通过smokeping来监控IDC机房网络质量情况,可以从监控图上的延时与丢包情况分辨出机房的网络是否稳定,是否为多线,是否为BGP机房以及到各城市的三个运行商网络各是什么情况。如果出现问题,可以有针对性的去处理;如果选择新机房的时候,还可以根据smokeping的监控结果来判断这个机房是否适合。需要注意的是:smokeping监控的是网络稳定性,而cacti或zabbix监控的是带宽使用情况(即进出口流量)SpokePing的创建者Tobias Oetiker还创建了一个名为RDDtool的数据记录和时间序列图形实用程序。SmokePing使用RDDtool,因此您也可以访问其复杂的图形功能。
本教程将向您展示如何在FreeBSD上使用Apache安装和配置SmokePing。
要学习本教程,您需要:
首先,我们将安装Apache Web服务器及其FastCGI模块,SmokePing使用该模块为其Web界面提供支持。
首先,更新服务器的存储库信息。
sudo pkg update
要安装有FastCGI支持的Apache,您可以用pkg
安装FastCGI模块。pkg
将处理FastCGI模块本身所需的所有必须项,因此它也将自动安装主Apache包。
sudo pkg install ap24-mod_fcgid
按下Y
确认安装。安装Apache后,我们需要对其设置以使其正常工作。
我们需要对Apache进行两项更改:在httpd.conf
更新一些服务器信息并启用FastCGI模块。
首先,打开/usr/local/etc/apache24/httpd.conf
进行编辑。
sudo ee /usr/local/etc/apache24/httpd.conf
编辑下面的两个指令。设置ServerAdmin为
您的电子邮件地址,并取消注释(通过删除前面#
)并编辑您服务器的IP地址为ServerName
。
. . .
# ServerAdmin: Your address, where problems with the server should be
# e-mailed. This address appears on some server-generated pages, such
# as error documents. e.g. admin@your-domain.com
#
ServerAdmin your_email_address
#
# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If your host doesn't have a registered DNS name, enter its IP address here.
#
ServerName your_server_ip
. . .
保存并关闭文件。
FastCGI不是默认模块,因此我们必须将其添加到Apache的配置中。要加载模块,我们需要在其中创建一个新的配置文件/usr/local/etc/apache24/modules.d/
并添加模块信息。
Apache文档说明,如果一个文件名称以三位数字开头,后跟_并以.conf” 结尾。则Apache会自动包含该配置文件。为了符合这一点要求,我们将创建一个名为001_fcgid.conf
的文件。
sudo ee /usr/local/etc/apache24/modules.d/001_fcgid.conf
将以下内容粘贴到文件中,告诉Apache加载模块以及在何处找到它。
LoadModule fcgid_module libexec/apache24/mod_fcgid.so
保存并关闭文件。现在Apache已经设置了FastCGI,我们可以安装SmokePing了。
安装SmokePing很容易,因为它就位于包存储库中。
sudo pkg install smokeping
SmokePing的配置/usr/local/etc/smokeping/config
是默认启用状态。您需要编辑此文件以自定义几个字段。
sudo ee /usr/local/etc/smokeping/config
您需要在General
部分中编辑四个字段:
owner
你的名字contact
你的电子邮件地址imgurl
修改您服务器的IP地址cgiurl
修改您服务器的IP地址以下是配置后文件的样子:
*** General ***
owner = your_name
contact = your_email_address
mailhost = my.mail.host
. . .
imgcache = /usr/local/smokeping/htdocs/img
imgurl = http://your_server_ip/smokeping/img
datadir = /usr/local/var/smokeping
piddir = /usr/local/var/smokeping
cgiurl = http://your_server_ip/smokeping.fcgi
. . .
SmokePing支持主从架构,在本教程中,我们只在一台机器上设置SmokePing。因此,通过在每行前面添加***Slaves ***来标记配置的部分。
. . .
# *** Slaves ***
# secrets=/usr/local/etc/smokeping/smokeping_secrets
# +boomer
# display_name=boomer
# color=0000ff
#
# +slave2
# display_name=another
# color=00ff00
. . .
保持此文件处于打开状态,因为我们将在下一步中继续编辑它以设置SmokePing的目标。
我们要添加到SmokePing配置文件的最后一件事是目标。为了解释SmokePing的注释内容,目标是主机的分层列表,用来标记系统应监控的网络连接的端点。每个目标都将指定使用哪种探测器,因为它将外部ping命令收集到SmokePing中(如fping)。
在本教程中,我们将设置一个配置来监视服务器和两个FreeBSD pkg镜像之间的延迟。我们将创建三个图形:两个显示两个镜像服务器中各个镜像服务器的延迟,另一个显示两个镜像服务器的延迟。
目标已在SmokePing配置文件的*** Targets***部分中。您可以使用变量来自定义目标,但在这里,我们只使用以下内容:
首先,删除现有的示例配置,以使文件末尾如下所示:
. . .
*** Targets ***
probe = FPing
menu = Top
title = Network Latency Grapher
remark = Welcome to the SmokePing website of xxx Company. \
Here you will learn all about the latency of our network
然后,复制并粘贴以下配置。
. . .
*** Targets ***
probe = FPing
menu = Top
title = Network Latency Grapher
remark = Welcome to the SmokePing website of xxx Company. \
Here you will learn all about the latency of our network
+ targets
menu = Targets
title = Targets' Latency Probed with fping
++ pkgmir_nyi
menu = FreeBSD pkg Mirror (NYI)
title = FreeBSD pkg Mirror Hosted by New York Internet, USA
host = pkg0.nyi.freebsd.org
++ pkgmir_ydx
menu = FreeBSD pkg Mirror (YDX)
title = FreeBSD pkg Mirror Hosted by Yandex, Russia
host = pkg0.ydx.freebsd.org
让我们了解一下这是做什么的。
在我们的配置中,+targets
行意味着我们正在定义嵌套的目标级别。嵌套目标将固有其主配置的值,因此如果我们希望这些目标使用相同的探测器,则不需要再次包含probe = FPing
行。但是,我们更新了新子部分的变量title
和menu
变量,因此网站上的页面将具有不同的标题和菜单。
++ pkgmir_xxx
行意味着我们正在定义第二个嵌套级别,其中包括两个目标。它们有一个端点地址的宿主变量,宿主是我们的两个FreeBSD 镜像服务器。以上配置将为每个目标创建一个图表。
. . .
++ pkgmir_ydx
menu = FreeBSD pkg Mirror (YDX)
title = FreeBSD pkg Mirror Hosted by Yandex, Russia
host = pkg0.ydx.freebsd.org
+ multi
menu = Multi Targets
title = Multi Targets
++ multi_pkgmir
menu = FreeBSD pkg Mirrors
title = FreeBSD pkg Mirrors
host = /targets/pkgmir_nyi /targets/pkgmir_ydx
请注意,此部分使用我们已配置的两个目标(/targets/pkgmir_nyi
和/targets/pkgmir_ydx
)。
最后,保存并关闭文件。SmokePing的配置都已设置好,所以让我们连接Apache和SmokePing并启动相应的服务。
在/usr/local/etc/apache24/Includes/
被调用的Apache中创建配置文件smokeping.conf
。
sudo ee /usr/local/etc/apache24/Includes/smokeping.conf
在这里,我们将添加Apache处理SmokePing Web界面请求所需的信息。将以下内容复制并粘贴到新文件中:
ScriptAlias /smokeping.fcgi /usr/local/smokeping/htdocs/smokeping.fcgi
Alias /smokeping /usr/local/smokeping/htdocs/
<Directory "/usr/local/smokeping/htdocs/">
AddHandler fcgid-script .fcgi
AllowOverride None
DirectoryIndex index.html smokeping.fcgi
Options FollowSymLinks ExecCGI
Require all granted
</Directory>
这告诉Apache在哪里可以找到SmokePing的文件,并确保它使用的是FastCGI。
Apache和SmokePing的默认服务配置不会在引导时启动进程。要更改它的话,请执行以下两个命令。
sudo sysrc apache24_enable="YES"
sudo sysrc smokeping_enable="YES"
上述两个命令的输出应如下所示:
apache24_enable: -> YES
smokeping_enable: -> YES
现在,您可以启动Apache服务。
sudo service apache24 start
如果它成功启动,您将看到:
Performing sanity check on apache24 configuration:
Syntax OK
Starting apache24.
最后,启动SmokePing服务。
sudo service smokeping start
Starting smokeping.
Note: logging to syslog as local0/info.
Daemonizing /usr/local/bin/smokeping ...
一切都在运行,让我们看看我们的图表。
您可以通过自己的浏览器输入http://your_server_ip/smokeping
以访问SmokePing的Web界面。您将看到一个页面,其中包含您在步骤5中指定的标题和备注。默认它将如下所示:
您可以通过浏览左侧的菜单来查看图表。注意菜单中的Targets和MultiTargets选项; 这些是我们在步骤5中定义的目标。
单击目标。您将看到我们定义的前两个图,每个镜像服务器一个。在左侧,您将看到嵌套的目标列表,它反映了我们的配置文件。
接下来,单击Multi Targets。你会在这里看到整体数据图。
如果遇到问题,可以查看日志以获取诊断问题的帮助。Apache将其日志记录在两个文件中:/var/log/httpd-access.log
和/var/log/httpd-error.log
。SmokePing有一个日志文件,即/var/log/smokeping.log
。请记住,如果更改SmokePing的配置,则需要重新加载守护程序sudo service smokeping reload
在本教程中,您学会了使用Apache设置SmokePing并创建一些示例来测试日志记录和图形。SmokePing还有许多其他功能,例如服务,发出警报和支持您自己的邮件服务器。您可以查看SmokePing的官方文档1️⃣了解更多详情。想学习更多Linux知识?请前往腾讯云+社区学习。
参考文献:《How To Track Network Latency with SmokePing on FreeBSD 11》
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。