如何在 FreeBSD 11 上使用 SmokePing 跟踪网络延迟

介绍

SmokePing是一个网络延迟跟踪工具. 跟踪您的服务器的网络延迟可以为您提供服务器的整体健康和可用性的有用图像. 例如,它可以帮助您确定您的网络是否过载或提醒您丢失包,这可能表明路由器配置错误或设备下载。

SpokePing 的创始人 Tobias Oetiker 还创建了一个名为 RDDtool的数据日志和时间序列图形工具。

本教程将向您展示如何在 FreeBSD 上使用 Apache 安装和配置 SmokePing。

<$>[注] 注: 截至 2022 年 7 月 1 日,DigitalOcean 将不再通过控制面板或 API 支持 FreeBSD Droplets。

前提条件

要遵循本教程,您将需要:

  • 一个 FreeBSD 11 服务器与一个 root 用户. 在本教程中,用户被称为 freebsd

FreeBSD 服务器需要远程访问 SSH 密钥. 有关设置 SSH 密钥的帮助,请阅读 如何在 FreeBSD 服务器上配置 SSH 基于密钥的身份验证. 有关 FreeBSD 服务器和基本管理的更多信息,请参阅 开始使用 FreeBSD 教程系列。

步骤 1 — 使用 FastCGI 支持安装 Apache

首先,我们将安装Apache Web 服务器和其FastCGI模块,SmokePing 使用其 Web 界面供电。

首先,更新您的服务器的存储信息。

1sudo pkg update

要安装支持FastCGI的Apache,您可以简单地说‘pkg’来安装FastCGI模块。‘pkg’将处理模块本身所需的所有依赖,因此它也会自动安装主Apache包。

1sudo pkg install ap24-mod_fcgid

通过按Y来确认安装,一旦安装了Apache,我们将需要定制它以使它工作。

步骤 2 – 配置 Apache

我们需要对Apache进行两个小更改:在httpd.conf中更新一些服务器信息,并启用FastCGI模块。

首先,打开/usr/local/etc/apache24/httpd.conf进行编辑。

1sudo ee /usr/local/etc/apache24/httpd.conf

ServerAdmin设置为您的电子邮件地址,并删除评论(通过删除前面的#)并将ServerName编辑为您的服务器的IP地址。

 1[label httpd.conf]
 2. . .
 3# ServerAdmin: Your address, where problems with the server should be
 4# e-mailed. This address appears on some server-generated pages, such
 5# as error documents. e.g. [email protected]
 6#
 7ServerAdmin your_email_address
 8
 9#
10# ServerName gives the name and port that the server uses to identify itself.
11# This can often be determined automatically, but we recommend you specify
12# it explicitly to prevent problems during startup.
13#
14# If your host doesn't have a registered DNS name, enter its IP address here.
15#
16ServerName your_server_ip
17. . .

保存并关闭文件。

FastCGI不是默认模块,所以我们必须将其添加到Apache的配置中来加载它。

README 模块位于 /usr/local/etc/apache24/modules.d/README_modules.d 中,表示如果名称以三位数开始,然后是 _,然后是 .conf 结束,则会自动包含文件`。

1sudo ee /usr/local/etc/apache24/modules.d/001_fcgid.conf

将下列内容粘贴到文件中,该文件告诉Apache下载模块以及在哪里找到它。

1[label /usr/local/etc/apache24/modules.d/001_fcgid.conf]
2LoadModule	fcgid_module			libexec/apache24/mod_fcgid.so

保存并关闭文件。

现在与FastCGI的Apache已设置,我们可以自行安装SmokePing。

步骤 3 – 安装和配置 SmokePing

安装 SmokePing 很简单,因为它位于包存库中。

1sudo pkg install smokeping

SmokePing 的配置默认为 /usr/local/etc/smokeping/config. 您需要编辑此文件以定制几个字段。

1sudo ee /usr/local/etc/smokeping/config

您需要在 一般部分中编辑四个字段:

*所有者,应该有您的名字

  • 联系人,应该有您的电子邮件地址
  • imgurl,应该更新以使用您的服务器的IP地址
  • cgiurl,也应该更新以使用您的服务器的IP地址

以下是文件完成后会是什么样子:

 1[label /usr/local/etc/smokeping/config]
 2*** General ***
 3
 4owner    = your_name
 5contact  = your_email_address
 6mailhost = my.mail.host
 7. . .
 8imgcache = /usr/local/smokeping/htdocs/img
 9imgurl   = http://your_server_ip/smokeping/img
10datadir  = /usr/local/var/smokeping
11piddir  = /usr/local/var/smokeping
12cgiurl   = http://your_server_ip/smokeping.fcgi
13. . .

SmokePing 支持主/奴隶架构,使用他们的术语. 在本教程中,我们只在一台机器上设置 SmokePing. 因此,评论配置的 ***** 奴隶 ***** 部分,以#为前缀每个行。

 1[label /usr/local/etc/smokeping/config]
 2. . .
 3# *** Slaves ***
 4# secrets=/usr/local/etc/smokeping/smokeping_secrets
 5# +boomer
 6# display_name=boomer
 7# color=0000ff
 8#
 9# +slave2
10# display_name=another
11# color=00ff00
12. . .

保持这个文件打开,因为我们将在下一步中继续编辑它,以设置 SmokePing 的目标。

步骤4:定义目标

我们将添加到 SmokePing 配置文件的最后一件事是目标. 为了简化 SmokePing 的解释, targets 是标记系统应该监控的网络连接的终端点的列表。

在本教程中,我们将设置一个配置,以监测您的服务器和两个FreeBSDpkg镜子之间的延迟,我们将创建三个图表:两个显示两个镜子服务器的每一个独立延迟,一个同时显示两个镜子服务器的延迟。

在 SmokePing 配置文件的 ***** 目标 ***** 部分中配置了目标. 您可以使用许多变量来定制目标,但在这里,我们只会使用以下内容:

  • probe:用于探测延迟的 ping 命令.
  • menu:在 GUI 中显示的默认菜单.
  • title:相应的 SmokePing 页面的标题.
  • remark:页面上出现的文本.
  • host: IP 地址或主机名端点。

首先,删除现有的样本配置,以便您的文件的结尾看起来像这样:

 1[label **Targets** Section on /usr/local/etc/smokeping/config]
 2. . .
 3*** Targets ***
 4
 5probe = FPing
 6
 7menu = Top
 8title = Network Latency Grapher
 9remark = Welcome to the SmokePing website of xxx Company. \
10         Here you will learn all about the latency of our network

然后,在现有默认设置下复制并粘贴下面的配置。

 1[label **Targets** Section on /usr/local/etc/smokeping/config]
 2. . .
 3*** Targets ***
 4
 5probe = FPing
 6
 7menu = Top
 8title = Network Latency Grapher
 9remark = Welcome to the SmokePing website of xxx Company. \
10         Here you will learn all about the latency of our network
11
12+ targets
13menu = Targets
14title = Targets' Latency Probed with fping
15
16    ++ pkgmir_nyi
17    menu = FreeBSD pkg Mirror (NYI)
18    title = FreeBSD pkg Mirror Hosted by New York Internet, USA
19    host = pkg0.nyi.freebsd.org
20
21    ++ pkgmir_ydx
22    menu = FreeBSD pkg Mirror (YDX)
23    title = FreeBSD pkg Mirror Hosted by Yandex, Russia
24    host = pkg0.ydx.freebsd.org

让我们解释一下这是怎么回事。

目标是层次性的,这意味着您可以嵌入目标级别来帮助组织,每个嵌入目标级别将在 SmokePing GUI 中创建一个新的子菜单,显示不同的图表。

在我们的配置中,+ 目标行意味着我们正在定义一个嵌入式的目标级别。嵌入式目标将固有其母配置的值,所以如果我们希望这些目标使用相同的探测器,我们不需要再次包含probe = FPing行。

++ pkgmir_xxx线意味着我们定义了第二个嵌套级别,其中包括两个目标,这些都有一个 host变量,用于端点的地址,这是我们的两个FreeBSDpkg镜像服务器。

上面的配置将为每个目标创建一个图表,然后再添加一个部分以将多个目标合并为一个图表。

 1[label **Targets** Section on /usr/local/etc/smokeping/config]
 2. . .
 3    ++ pkgmir_ydx
 4    menu = FreeBSD pkg Mirror (YDX)
 5    title = FreeBSD pkg Mirror Hosted by Yandex, Russia
 6    host = pkg0.ydx.freebsd.org
 7
 8+ multi
 9menu = Multi Targets
10title = Multi Targets
11
12    ++ multi_pkgmir
13    menu = FreeBSD pkg Mirrors
14    title = FreeBSD pkg Mirrors
15    host = /targets/pkgmir_nyi /targets/pkgmir_ydx

请注意,本节使用了我们已经配置的两个目标(/targets/pkgmir_nyi/targets/pkgmir_ydx)。

最后,保存并关闭文件 SmokePing 的配置已全部设置,所以让我们连接 Apache 和 SmokePing 并启动相应的服务。

步骤 5 – 连接和启用服务

/usr/local/etc/apache24/Includes/ 中创建一个 Apache 配置文件,名为 smokeping.conf

1sudo ee /usr/local/etc/apache24/Includes/smokeping.conf

在这里,我们将向 SmokePing 的 Web 界面添加 Apache 需要处理请求的信息。

 1[label /usr/local/etc/apache24/Includes/smokeping.conf]
 2ScriptAlias	/smokeping.fcgi	/usr/local/smokeping/htdocs/smokeping.fcgi
 3Alias		/smokeping		/usr/local/smokeping/htdocs/
 4<Directory "/usr/local/smokeping/htdocs/">
 5        AddHandler fcgid-script .fcgi
 6        AllowOverride None
 7        DirectoryIndex index.html smokeping.fcgi
 8        Options FollowSymLinks ExecCGI
 9        Require all granted
10</Directory>

这告诉Apache在哪里找到SmokePing的文件,并确保它使用FastCGI。

Apache 和 SmokePing 的默认服务配置不会在启动时启动流程. 若要更改,请执行以下两个命令。

1sudo sysrc apache24_enable="YES"
2sudo sysrc smokeping_enable="YES"

上述两个命令的输出应该是这样的:

1[secondary_label Output]
2apache24_enable:  -> YES
3smokeping_enable:  -> YES

现在,您可以启动 Apache 服务。

1sudo service apache24 start

如果成功启动,你会看到:

1[secondary_label Output]
2Performing sanity check on apache24 configuration:
3Syntax OK
4Starting apache24.

如果不是,你会看到一个错误,你可以使用它来纠正配置文件中的任何问题. 最后,开始 SmokePing 服务。

1sudo service smokeping start
1[secondary_label Output]
2Starting smokeping.
3Note: logging to syslog as local0/info.
4Daemonizing /usr/local/bin/smokeping ...

一切都在运行,所以让我们看看我们的图表在行动中。

步骤 6 – 访问 SmokePing 的 Web 界面

您可以在您最喜欢的浏览器中访问http://your_server_ip/smokeping来访问 SmokePing的 Web 界面,您将看到一个标题的页面,并在步骤 5 中注明您没有更改任何值,它将看起来像这样:

SmokePing's homepage

请注意菜单中的 ** 目标** 和 ** 多目标** 选项;这些是我们在 步骤 5中定义的目标。

点击 Targets. 你会看到我们定义的第一两个图表,每个镜像服务器一个。

SmokePing's Target Graphs

接下来,点击 ** 多目标 **. 您将看到这里的组合图表。

SmokePing's Multi Target Graph

如果您遇到问题,您可以检查日志以帮助诊断问题。Apache将其日志记录在两个文件中: /var/log/httpd-access.log/var/log/httpd-error.log. SmokePing 有一个日志文件,即 `/var/log/smokeping.log。

结论

在本教程中,您将 SmokePing 与 Apache 设置,并创建了一些示例探测器来测试日志和图形。从这里开始,您可以将探测器和图表定制为您想要追踪的任何内容。 SmokePing 有许多其他功能,如奴隶,警报和对您自己的邮件服务器的支持。 查看 SmokePing 的官方文档以了解更多细节。

Published At
Categories with 技术
comments powered by Disqus