FreeBSD11でSmokePingを使用してネットワーク遅延を追跡する方法
序章
SmokePing は、ネットワーク遅延追跡ツールです。 サーバーのネットワーク遅延を追跡すると、サーバーの全体的な状態と可用性を把握するのに役立ちます。 たとえば、ネットワークが過負荷であるかどうかを判断したり、パケット損失を警告したりするのに役立ちます。これは、ルーター構成が正しくないか、デバイスがダウンしていることを示している可能性があります。
SpokePingの作成者であるTobiasOetikerは、RDDtoolと呼ばれるデータロギングおよび時系列グラフ作成ユーティリティも作成しました。 SmokePingはRDDtoolを使用するため、高度なグラフ作成機能にもアクセスできます。
このチュートリアルでは、FreeBSDでApacheを使用してSmokePingをインストールおよび構成する方法を説明します。
Note: As of July 1, 2022, DigitalOcean no longer supports FreeBSD Droplets through the Control Panel or API. However, you can still spin up FreeBSD Droplets using a custom image. Learn how to import a custom image to DigitalOcean by following our product documentation.
前提条件
このチュートリアルに従うには、次のものが必要です。
- rootユーザーを持つ1台のFreeBSD11サーバー。 For the purposes of this tutorial, the user is referred to as freebsd.
A FreeBSD server requires an SSH key for remote access. SSHキーの設定については、FreeBSDサーバーでSSHキーベースの認証を設定する方法をお読みください。 To learn more about FreeBSD servers and basic management, check out the Getting Started with FreeBSD tutorial series.
ステップ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に加える必要のある2つの小さな変更があります。 httpd.conf
FastCGIモジュールを有効にします。
まず、開く /usr/local/etc/apache24/httpd.conf
編集用。
- sudo ee /usr/local/etc/apache24/httpd.conf
以下の2つのディレクティブを編集します。 設定 ServerAdmin
あなたのメールアドレスに、そしてコメントを外します(前の部分を削除することによって #
)編集します ServerName
サーバーのIPアドレスに。
. . .
# 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. [email protected]
#
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/
モジュール情報を追加します。
にあるモジュールREADME /usr/local/etc/apache24/modules.d/README_modules.d
、「名前が3桁の数字で始まり、その後に続く場合、ファイルは自動的に含まれます。 _
で終わる .conf
」。 これに準拠するために、というファイルを作成します 001_fcgid.conf
.
- sudo ee /usr/local/etc/apache24/modules.d/001_fcgid.conf
以下をファイルに貼り付けます。これにより、Apacheにモジュールをロードするように指示し、モジュールの場所を指定します。
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
***一般***セクションの4つのフィールドを編集する必要があります。
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は、それらの用語を使用するために、マスター/スレーブアーキテクチャをサポートしています。 このチュートリアルでは、1台のマシンでSmokePingを設定するだけです。 したがって、構成の *** Slaves *** セクションの前に、各行の前に #
.
. . .
# *** 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 は、システムが監視する必要のあるネットワーク接続のエンドポイントをマークするホストの階層リストです。 すべてのターゲットは、使用するプローブの種類を指定します。これにより、外部pingコマンドがSmokePingに統合されます( fping など)。
このチュートリアルでは、サーバーと2つのFreeBSDの間の待ち時間を監視する構成をセットアップします。 pkg
ミラー。 3つのグラフを作成します。2つは2つのミラーサーバーのそれぞれのレイテンシーを個別に示し、もう1つは両方のミラーサーバーのレイテンシーを同時に示します。
ターゲットは、SmokePingの構成ファイルの***ターゲット***セクションで構成されます。 ターゲットをカスタマイズするために使用できる変数はたくさんありますが、ここでは、以下を使用します。
- probe :遅延をプローブするために使用するpingコマンド。
- menu :GUIに表示するデフォルトのメニュー。
- title :対応するSmokePingページのタイトル。
- 注釈:ページに表示されるテキスト。
- host :IPアドレスまたはホスト名のエンドポイント。
まず、既存のサンプル構成を削除して、ファイルの終わりが次のようになるようにします。
. . .
*** 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
これが何をしているのか説明しましょう。
ターゲットは階層的です。つまり、組織化に役立つレベルのターゲットをネストできます。 ネストされた各レベルのターゲットは、SmokePing GUIに新しいサブメニューを作成し、さまざまなグラフを表示します。
私たちの構成では、 + targets
lineは、ネストされたレベルのターゲットを定義していることを意味します。 ネストされたターゲットは、親構成の値を固有のものにするため、 probe = FPing
これらのターゲットで同じプローブを使用する場合は、もう一度線を引きます。 ただし、更新しました title
と menu
新しいサブセクションの変数であるため、サイトのページのタイトルとメニューは異なります。
The ++ pkgmir_xxx
行は、2つのターゲットを含む2番目のネストされたレベルを定義していることを意味します。 これらには、エンドポイントのアドレス用の host 変数があります。これは、2つのFreeBSDです。 pkg
ミラーサーバー。
上記の構成では、ターゲットごとに1つのグラフが作成されます。 その下に、複数のターゲットを1つのグラフに結合するためのセクションをもう1つ追加します。
. . .
++ 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
このセクションでは、すでに構成した2つのターゲットを使用していることに注意してください(/targets/pkgmir_nyi
と /targets/pkgmir_ydx
).
最後に、ファイルを保存して閉じます。 SmokePingの構成はすべてセットアップされているので、ApacheとSmokePingを接続して、それぞれのサービスを開始しましょう。
ステップ5—サービスの接続と有効化
でApacheの設定ファイルを作成します /usr/local/etc/apache24/Includes/
と呼ばれる 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のデフォルトのサービス構成では、起動時にプロセスが開始されません。 これを変更するには、次の2つのコマンドを実行します。
- sudo sysrc apache24_enable="YES"
- sudo sysrc smokeping_enable="YES"
前述の2つのコマンドの出力は次のようになります。
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インターフェイスにアクセスする
SmokePingのWebインターフェイスにアクセスするには、次のWebサイトにアクセスしてください。 http://your_server_ip/smokeping
お気に入りのブラウザで。 手順5で指定したタイトルとコメントのページが表示されます。 値を変更しなかった場合は、次のようになります。
左側のメニューをナビゲートすると、グラフを表示できます。 メニューのターゲットおよびマルチターゲットオプションに注意してください。 これらは、ステップ5で定義したターゲットです。
ターゲットをクリックします。 ミラーサーバーごとに1つずつ、定義した最初の2つのグラフが表示されます。 左側に、構成ファイルを反映したネストされたターゲットのリストが表示されます。
次に、マルチターゲットをクリックします。 ここに結合されたグラフが表示されます。
問題が発生した場合は、ログを確認して問題の診断に役立てることができます。 Apacheは、ログを2つのファイルに記録します。 /var/log/httpd-access.log
と /var/log/httpd-error.log
. SmokePingには1つのログファイルがあります。 /var/log/smokeping.log
. SmokePingの構成を変更する場合は、デーモンを次のようにリロードする必要があることに注意してください。 sudo service smokeping reload
.
結論
このチュートリアルでは、Apacheを使用してSmokePingをセットアップし、ロギングとグラフ作成をテストするためのプローブの例をいくつか作成しました。 ここから、プローブとグラフを追跡したいものにカスタマイズできます。 SmokePingには、スレーブ、アラート、独自のメールサーバーのサポートなど、他にも多くの機能があります。 詳細については、SmokePingの公式ドキュメントをご覧ください。