FreeBSD 11でSmokePingを使用してネットワーク遅延を追跡する方法

前書き

SmokePingは、ネットワーク遅延追跡ツールです。 サーバーのネットワーク遅延を追跡すると、サーバーの全体的な健全性と可用性の有用な全体像を知ることができます。 たとえば、ネットワークが過負荷になっているかどうかを判断したり、パケット損失を警告したりすることができます。これは、ルーターの構成が正しくないか、デバイスがダウンしていることを示します。

SpokePingの作成者であるTobias Oetikerは、http://oss.oetiker.ch/rrdtool/ [RDDtool]というデータロギングおよび時系列グラフ化ユーティリティも作成しました。 SmokePingはRDDtoolを使用するため、高度なグラフ作成機能にもアクセスできます。

このチュートリアルでは、FreeBSD上でApacheを使用してSmokePingをインストールおよび構成する方法を示します。

前提条件

このチュートリアルを実行するには、次のものが必要です。

  • * root ユーザーを持つ1つのFreeBSD 11サーバー。 DigitalOceanでは、デフォルトの freebsd *ユーザーで問題ありません。

FreeBSD Dropletには、リモートアクセス用のSSHキーが必要です。 SSHキーの設定に関するヘルプについては、https://www.digitalocean.com/community/tutorials/how-to-configure-ssh-key-based-authentication-on-a-freebsd-server [SSHの設定方法]を参照してください。 FreeBSDサーバーでのキーベース認証]。 FreeBSD Dropletへのログインと基本管理の詳細については、https://www.digitalocean.com/community/tutorial_series/getting-started-with-freebsd [Getting Started with FreeBSD]チュートリアルシリーズをご覧ください。

ステップ1-FastCGIサポート付きのApacheのインストール

まず、SmokePingがWebインターフェースを強化するために使用するApache WebサーバーとそのFastCGIモジュールをインストールします。

まず、サーバーのリポジトリ情報を更新します。

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 」を設定し、(前の「#」を削除して)コメントを外し、サーバーのIPアドレスに「 ServerName +」を編集します。

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. [email protected]
#
ServerAdmin

#
# 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
. . .

ファイルを保存して閉じます。

FastCGIはデフォルトのモジュールではないため、Apacheの構成に追加してロードする必要があります。 モジュールをロードするには、 `+ / usr / local / etc / apache24 / modules.d / +`に新しい設定ファイルを作成し、モジュール情報を追加する必要があります。

`+ / usr / local / etc / apache24 / modules.d / README_modules.d `にあるモジュールのREADMEは、「名前が3桁の数字で始まり、その後に ` _ `が続き、末尾にある場合、ファイルは自動的に含まれます「 .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

*全般*セクションの4つのフィールドを編集する必要があります。

  • + owner +、あなたの名前が必要です

  • + contact +、これにはあなたのメールアドレスが必要です

  • サーバーのIPアドレスを使用するために更新する必要のある「+ imgurl +」

  • サーバーのIPアドレスを使用するように更新する必要がある「+ cgiurl +」

完了すると、ファイルは次のようになります。

/ usr / local / etc / smokeping / config

*** General ***

owner    =
contact  =
mailhost = my.mail.host
. . .
imgcache = /usr/local/smokeping/htdocs/img
imgurl   = http:///smokeping/img
datadir  = /usr/local/var/smokeping
piddir  = /usr/local/var/smokeping
cgiurl   = http:///smokeping.fcgi
. . .

SmokePingは、用語を使用するためにマスター/スレーブアーキテクチャをサポートしています。 このチュートリアルでは、1台のマシンでのみSmokePingをセットアップしています。 したがって、各行の前に「#」を付けて、構成の*スレーブ*セクションをコメント化します。

/ 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に統合されます(http://fping.org/ [+ fping +]など)。

このチュートリアルでは、サーバーと2つのFreeBSD `+ pkg +`ミラーの間のレイテンシを監視する設定をセットアップします。 3つのグラフを作成します。2つは2つのミラーサーバーのそれぞれの遅延を個別に表示し、もう1つは両方のミラーサーバーの遅延を一度に表示します。

ターゲットは、SmokePingの構成ファイルの*ターゲット*セクションで構成されます。 ターゲットをカスタマイズするために使用できる変数は多数ありますが、ここでは次のもののみを使用します。

  • * probe *:レイテンシーのプローブに使用するpingコマンド。

  • * menu *:GUIに表示するデフォルトメニュー。

  • * title *:対応するSmokePingページのタイトル。

  • 注釈:ページに表示されるテキスト。

  • * 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

これが何をしているのか説明しましょう。

ターゲットは階層的です。つまり、組織を支援するためにターゲットのレベルをネストできます。 ターゲットのネストされた各レベルは、異なるグラフを表示するSmokePing GUIに新しいサブメニューを作成します。

この構成では、「+ targets +」行は、ネストされたレベルのターゲットを定義していることを意味します。 ネストされたターゲットは、その親設定の値を継承するため、これらのターゲットで同じプローブを使用する場合、 ` probe = FPing `行を再度含める必要はありません。 ただし、新しいサブセクションの ` title `変数と ` menu +`変数を更新したため、サイトのページには異なるタイトルとメニューが表示されます。

`+ pkgmir_ `行は、2つのターゲットを含む2番目のネストレベルを定義していることを意味します。 これらには、エンドポイントのアドレス用の* host *変数があります。これは、2つのFreeBSD ` pkg +`ミラーサーバーです。

上記の構成では、ターゲットごとに1つのグラフが作成されます。 その下に、さらに1つのセクションを追加して、複数のターゲットを1つのグラフに結合します。

ターゲット / 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

このセクションでは、すでに設定した2つのターゲット( + / targets / pkgmir_nyi +`および `+ / targets / pkgmir_ydx +)を使用していることに注意してください。

最後に、ファイルを保存して閉じます。 SmokePingの構成はすべて設定されているので、ApacheとSmokePingを接続して、それぞれのサービスを開始しましょう。

ステップ5-サービスの接続と有効化

`+ smokeping.conf `と呼ばれるApacheの設定ファイルを ` / usr / local / etc / apache24 / Includes / +`に作成します。

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

ここで、リクエストを処理するためにApacheが必要とする情報をSmokePingのウェブインターフェースに追加します。 以下をコピーして新しいファイルに貼り付けます。

/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>

これにより、SmokePingのファイルの場所がApacheに通知され、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のウェブインターフェースへのアクセス

お気に入りのブラウザで「+ http:/// smokeping +」にアクセスすると、SmokePingのウェブインターフェースにアクセスできます。 手順5で指定したタイトルと備考が記載されたページが表示されます。 値を変更しなかった場合、次のようになります。

image:https://assets.digitalocean.com/articles/smokeping/GVyPSgX.png [SmokePingのホームページ]

左側のメニューに移動して、グラフを表示できます。 メニューの* Targets および Multi Targets *オプションに注意してください。これらはhttps://www.digitalocean.com/community/tutorials/how-to-track-network-latency-with-smokeping-on-freebsd-11#step-5-%E2%80%で定義したターゲットです94サービスの接続と有効化[ステップ5]。

*ターゲット*をクリックします。 定義した最初の2つのグラフが表示されます(ミラーサーバーごとに1つ)。 左側に、ターゲットのネストされたリストが表示されます。これは、構成ファイルを反映しています。

image:https://assets.digitalocean.com/articles/smokeping/x4HUZdh.png [SmokePingのターゲットグラフ]

次に、* Multi Targets *をクリックします。 結合されたグラフがここに表示されます。

image:https://assets.digitalocean.com/articles/smokeping/J46es5e.png [SmokePingのマルチターゲットグラフ]

問題が発生した場合は、ログを確認して問題の診断に役立ててください。 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には、スレーブ、アラート、独自のメールサーバーのサポートなど、他の多くの機能があります。 詳細については、http://oss.oetiker.ch/smokeping/doc/index.en.html [SmokePingの公式ドキュメント]をご覧ください。

Related