介绍
SmokePing 是一个网络延迟跟踪工具。 跟踪服务器的网络延迟可以帮助您了解服务器的整体运行状况和可用性。 例如,它可以帮助您确定您的网络是否过载或提醒您丢包,这可能表明路由器配置不正确或设备故障。
SpokePing 的创建者 Tobias Oetiker 还创建了一个名为 RDDtool 的数据记录和时间序列绘图实用程序。 SmokePing 使用 RDDtool,因此您也可以使用其复杂的绘图功能。
本教程将向您展示如何在 FreeBSD 上使用 Apache 安装和配置 SmokePing。
先决条件
要遵循本教程,您将需要:
- 一台带有 root 用户的 FreeBSD 11 服务器。 在 DigitalOcean 上,默认的 freebsd 用户很好。
FreeBSD Droplet 需要 SSH 密钥才能进行远程访问。 有关设置 SSH 密钥的帮助,请阅读 如何在 FreeBSD 服务器上配置基于 SSH 密钥的身份验证。 要了解有关登录 FreeBSD Droplet 和基本管理的更多信息,请查看 FreeBSD 入门 教程系列。
第 1 步 — 安装支持 FastCGI 的 Apache
首先,我们将安装 Apache Web 服务器及其 FastCGI 模块,SmokePing 使用它来支持其 Web 界面。
首先,更新服务器的存储库信息。
sudo pkg update
要安装支持 FastCGI 的 Apache,您只需告诉 pkg
安装 FastCGI 模块。 pkg
将处理模块本身所需的所有依赖项,因此它也会自动安装主 Apache 包。
sudo pkg install ap24-mod_fcgid
按 Y
确认安装。 安装 Apache 后,我们需要对其进行自定义以使其正常工作。
第 2 步 — 配置 Apache
我们需要对 Apache 做两个小改动:更新 httpd.conf
中的一些服务器信息并启用 FastCGI 模块。
首先,打开/usr/local/etc/apache24/httpd.conf
进行编辑。
sudo ee /usr/local/etc/apache24/httpd.conf
编辑下面的两个指令。 将 ServerAdmin
设置为您的电子邮件地址,然后取消注释(通过删除前面的 #
)并将 ServerName
编辑为您服务器的 IP 地址。
httpd.conf
. . . # 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/
中创建一个新的配置文件并添加模块信息。
在 /usr/local/etc/apache24/modules.d/README_modules.d
中找到的模块 README 说“如果文件名以三位数字开头,后跟 _
并以 .conf
结尾,则自动包含文件”。 为此,我们将创建一个名为 001_fcgid.conf
的文件。
sudo ee /usr/local/etc/apache24/modules.d/001_fcgid.conf
将以下内容粘贴到文件中,该文件告诉 Apache 加载模块以及在哪里找到它。
/usr/local/etc/apache24/modules.d/001_fcgid.conf
LoadModule fcgid_module libexec/apache24/mod_fcgid.so
保存并关闭文件。
现在已经设置了带有 FastCGI 的 Apache,我们可以安装 SmokePing 本身。
第 3 步 — 安装和配置 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 地址
完成后文件的外观如下:
/usr/local/etc/smokeping/config
*** 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 *** 部分。
/usr/local/etc/smokeping/config
. . . # *** Slaves *** # secrets=/usr/local/etc/smokeping/smokeping_secrets # +boomer # display_name=boomer # color=0000ff # # +slave2 # display_name=another # color=00ff00 . . .
保持这个文件打开,因为我们将在下一步中继续编辑它来设置 SmokePing 的目标。
第 4 步——定义目标
我们将添加到 SmokePing 配置文件的最后一件事是目标。 套用 SmokePing 的解释,targets 是主机的分层列表,用于标记系统应监控的网络连接的端点。 每个目标都将指定使用哪种类型的 probe,它将外部 ping 命令集成到 SmokePing 中(如 fping)。
在本教程中,我们将设置一个配置来监控您的服务器和两个 FreeBSD pkg
镜像之间的延迟。 我们将创建三个图表:两个单独显示两个镜像服务器的延迟,另一个同时显示两个镜像服务器的延迟。
目标配置在 SmokePing 配置文件的 *** Targets *** 部分。 您可以使用许多变量来自定义目标,但在这里,我们将只使用以下变量:
- probe:用于探测延迟的 ping 命令。
- menu:在 GUI 中显示的默认菜单。
- title:对应SmokePing页面的标题。
- remark:将出现在页面上的文本。
- host:IP 地址或主机名端点。
首先,删除现有的示例配置,使文件末尾如下所示:
- 目标** /usr/local/etc/smokeping/config 部分
. . . *** 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
然后,在现有的默认设置下复制并粘贴以下配置。
- 目标** /usr/local/etc/smokeping/config 部分
. . . *** 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
让我们解释一下这是做什么的。
目标是分层的,这意味着您可以嵌套目标级别以帮助组织。 每个嵌套级别的目标将在 SmokePing GUI 中创建一个新的子菜单,显示不同的图形。
在我们的配置中,+ targets
行意味着我们正在定义一个嵌套级别的目标。 嵌套目标将固有其父配置的值,因此如果我们希望这些目标使用相同的探针,我们不需要再次包含 probe = FPing
行。 但是,我们为新的小节更新了 title
和 menu
变量,因此站点上的页面将具有不同的标题和菜单。
++ pkgmir_xxx
行意味着我们正在定义第二个嵌套级别,其中包括两个目标。 它们有一个 host 变量作为端点地址,它们是我们的两个 FreeBSD pkg
镜像服务器。
上述配置将为每个目标创建一个图。 在其下方,再添加一个部分以将多个目标组合到一个图表中。
- 目标** /usr/local/etc/smokeping/config 部分
. . . ++ 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 并启动各自的服务。
第 5 步 - 连接和启用服务
在 /usr/local/etc/apache24/Includes/
中为 Apache 创建一个名为 smokeping.conf
的配置文件。
sudo ee /usr/local/etc/apache24/Includes/smokeping.conf
在这里,我们将向 SmokePing 的 Web 界面添加 Apache 处理请求所需的信息。 将以下内容复制并粘贴到新文件中:
/usr/local/etc/apache24/Includes/smokeping.conf
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"
上述两个命令的输出应如下所示:
Outputapache24_enable: -> YES smokeping_enable: -> YES
现在,您可以启动 Apache 服务了。
sudo service apache24 start
如果启动成功,您将看到:
OutputPerforming sanity check on apache24 configuration: Syntax OK Starting apache24.
如果没有,您将看到一个错误,您可以使用它来调试配置文件中的任何问题。 最后,启动 SmokePing 服务。
sudo service smokeping start
OutputStarting smokeping. Note: logging to syslog as local0/info. Daemonizing /usr/local/bin/smokeping ...
一切都在运行,让我们看看我们的图表在运行。
第 6 步 — 访问 SmokePing 的 Web 界面
您可以通过在您喜欢的浏览器中访问 http://your_server_ip/smokeping
来访问 SmokePing 的 Web 界面。 您将看到一个页面,其中包含您在步骤 5 中指定的标题和备注。 如果您没有更改任何值,它将如下所示:
您可以通过导航左侧的菜单来查看图表。 注意菜单中的 Targets 和 Multi Targets 选项; 这些是我们在 Step 5 中定义的目标。
单击 目标 。 您将看到我们定义的前两个图表,每个镜像服务器一个。 在左侧,您将看到嵌套的目标列表,它反映了我们的配置文件。
接下来,单击多目标。 您将在此处看到组合图。
如果遇到问题,可以查看日志以获取诊断问题的帮助。 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 的官方文档 了解更多详情。