前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用SmokePing监控你的服务器

使用SmokePing监控你的服务器

原创
作者头像
所有的酒都不如你
发布2018-07-27 15:14:01
2.8K0
发布2018-07-27 15:14:01
举报

介绍

SmokePing是一款监控网络状态和稳定性的开源软件(它是rrdtool的作者开发的),通过它可以监控到公司IDC的网络状况,如延时,丢包率,是否BGP多线等;smokeping会向目标设备和系统发送各种类型的测试数据包,测量、记录,并通过rrdtool制图方式,图形化地展示网络的时延情况,进而能够清楚的判断出网络的即时通信情况;

通过smokeping来监控IDC机房网络质量情况,可以从监控图上的延时与丢包情况分辨出机房的网络是否稳定,是否为多线,是否为BGP机房以及到各城市的三个运行商网络各是什么情况。如果出现问题,可以有针对性的去处理;如果选择新机房的时候,还可以根据smokeping的监控结果来判断这个机房是否适合。需要注意的是:smokeping监控的是网络稳定性,而cacti或zabbix监控的是带宽使用情况(即进出口流量)SpokePing的创建者Tobias Oetiker还创建了一个名为RDDtool的数据记录和时间序列图形实用程序。SmokePing使用RDDtool,因此您也可以访问其复杂的图形功能。

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

前期准备

要学习本教程,您需要:

  • 一个具有root用户的FreeBSD 11服务器。没有服务器的同学可以在这个页面购买。我建议您免费试用腾讯云开发者实验室体验腾讯云的CVM系统

第1步 - 使用FastCGI Support安装Apache

首先,我们将安装Apache Web服务器及其FastCGI模块,SmokePing使用该模块为其Web界面提供支持。

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

代码语言:javascript
复制
sudo pkg update

要安装有FastCGI支持的Apache,您可以用pkg安装FastCGI模块。pkg将处理FastCGI模块本身所需的所有必须项,因此它也将自动安装主Apache包。

代码语言:javascript
复制
sudo pkg install ap24-mod_fcgid

按下Y确认安装。安装Apache后,我们需要对其设置以使其正常工作。

第2步 - 配置Apache

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

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

代码语言:javascript
复制
sudo ee /usr/local/etc/apache24/httpd.conf

编辑下面的两个指令。设置ServerAdmin为您的电子邮件地址,并取消注释(通过删除前面#)并编辑您服务器的IP地址为ServerName

代码语言:javascript
复制
. . .
# 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的文件。

代码语言:javascript
复制
sudo ee /usr/local/etc/apache24/modules.d/001_fcgid.conf

将以下内容粘贴到文件中,告诉Apache加载模块以及在何处找到它。

代码语言:javascript
复制
LoadModule  fcgid_module            libexec/apache24/mod_fcgid.so

保存并关闭文件。现在Apache已经设置了FastCGI,我们可以安装SmokePing了。

第3步 - 安装和配置SmokePing

安装SmokePing很容易,因为它就位于包存储库中。

sudo pkg install smokeping

SmokePing的配置/usr/local/etc/smokeping/config是默认启用状态。您需要编辑此文件以自定义几个字段。

代码语言:javascript
复制
sudo ee /usr/local/etc/smokeping/config

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

  • owner你的名字
  • contact你的电子邮件地址
  • imgurl修改您服务器的IP地址
  • cgiurl修改您服务器的IP地址

以下是配置后文件的样子:

代码语言:javascript
复制
*** 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 ***来标记配置的部分。

代码语言:javascript
复制
. . .
# *** Slaves ***
# secrets=/usr/local/etc/smokeping/smokeping_secrets
# +boomer
# display_name=boomer
# color=0000ff
#
# +slave2
# display_name=another
# color=00ff00
. . .

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

第4步 - 定义目标

我们要添加到SmokePing配置文件的最后一件事是目标。为了解释SmokePing的注释内容,目标是主机的分层列表,用来标记系统应监控的网络连接的端点。每个目标都将指定使用哪种探测器,因为它将外部ping命令收集到SmokePing中(如fping)。

在本教程中,我们将设置一个配置来监视服务器和两个FreeBSD pkg镜像之间的延迟。我们将创建三个图形:两个显示两个镜像服务器中各个镜像服务器的延迟,另一个显示两个镜像服务器的延迟。

目标已在SmokePing配置文件的*** Targets***部分中。您可以使用变量来自定义目标,但在这里,我们只使用以下内容:

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

首先,删除现有的示例配置,以使文件末尾如下所示:

代码语言:javascript
复制
. . .
*** 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

然后,复制并粘贴以下配置。

代码语言:javascript
复制
. . .
*** 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行。但是,我们更新了新子部分的变量titlemenu变量,因此网站上的页面将具有不同的标题和菜单。

++ pkgmir_xxx行意味着我们正在定义第二个嵌套级别,其中包括两个目标。它们有一个端点地址的宿主变量,宿主是我们的两个FreeBSD 镜像服务器。以上配置将为每个目标创建一个图表。

代码语言:javascript
复制
. . .
    ++ 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

代码语言:javascript
复制
sudo ee /usr/local/etc/apache24/Includes/smokeping.conf

在这里,我们将添加Apache处理SmokePing Web界面请求所需的信息。将以下内容复制并粘贴到新文件中:

代码语言:javascript
复制
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的默认服务配置不会在引导时启动进程。要更改它的话,请执行以下两个命令。

代码语言:javascript
复制
sudo sysrc apache24_enable="YES"
sudo sysrc smokeping_enable="YES"

上述两个命令的输出应如下所示:

代码语言:javascript
复制
apache24_enable:  -> YES
smokeping_enable:  -> YES

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

代码语言:javascript
复制
sudo service apache24 start

如果它成功启动,您将看到:

代码语言:javascript
复制
Performing sanity check on apache24 configuration:
Syntax OK
Starting apache24.

最后,启动SmokePing服务。

代码语言:javascript
复制
sudo service smokeping start
代码语言:javascript
复制
Starting smokeping.
Note: logging to syslog as local0/info.
Daemonizing /usr/local/bin/smokeping ...

一切都在运行,让我们看看我们的图表。

第6步 - 访问SmokePing的Web界面

您可以通过自己的浏览器输入http://your_server_ip/smokeping以访问SmokePing的Web界面。您将看到一个页面,其中包含您在步骤5中指定的标题和备注。默认它将如下所示:

您可以通过浏览左侧的菜单来查看图表。注意菜单中的TargetsMultiTargets选项; 这些是我们在步骤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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 前期准备
  • 第1步 - 使用FastCGI Support安装Apache
  • 第2步 - 配置Apache
  • 第3步 - 安装和配置SmokePing
  • 第4步 - 定义目标
  • 第5步 - 连接和启用服务
  • 第6步 - 访问SmokePing的Web界面
  • 结论
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档