FreeBSD11でSmokePingを使用してネットワーク遅延を追跡する方法
序章
SmokePing は、ネットワーク遅延追跡ツールです。 サーバーのネットワーク遅延を追跡すると、サーバーの全体的な状態と可用性を把握するのに役立ちます。 たとえば、ネットワークが過負荷であるかどうかを判断したり、パケット損失を警告したりするのに役立ちます。これは、ルーター構成が正しくないか、デバイスがダウンしていることを示している可能性があります。
SpokePingの作成者であるTobiasOetikerは、RDDtoolと呼ばれるデータロギングおよび時系列グラフ作成ユーティリティも作成しました。 SmokePingはRDDtoolを使用するため、高度なグラフ作成機能にもアクセスできます。
このチュートリアルでは、FreeBSDでApacheを使用してSmokePingをインストールおよび構成する方法を説明します。
前提条件
このチュートリアルに従うには、次のものが必要です。
- rootユーザーを持つ1台のFreeBSD11サーバー。 DigitalOceanでは、デフォルトのfreebsdユーザーで問題ありません。
FreeBSD Dropletは、リモートアクセスのためにSSHキーを必要とします。 SSHキーの設定については、FreeBSDサーバーでSSHキーベースの認証を設定する方法をお読みください。 FreeBSD Dropletへのログインと基本的な管理の詳細については、 Get Getting Started withFreeBSDチュートリアルシリーズをご覧ください。
ステップ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アドレスに編集します。
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 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には、「名前が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
、あなたのメールアドレスが必要です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は、それらの用語を使用するために、マスター/スレーブアーキテクチャをサポートしています。 このチュートリアルでは、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 は、システムが監視する必要のあるネットワーク接続のエンドポイントをマークするホストの階層リストです。 すべてのターゲットは、使用するプローブの種類を指定します。これにより、外部pingコマンドがSmokePingに統合されます( fping など)。
このチュートリアルでは、サーバーと2つのFreeBSDpkg
ミラーの間の待ち時間を監視する構成をセットアップします。 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 + 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
行は、2つのターゲットを含む2番目のネストされたレベルを定義していることを意味します。 これらには、エンドポイントのアドレス用の host 変数があります。これは、2つのFreeBSDpkg
ミラーサーバーです。
上記の構成では、ターゲットごとに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 + 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—サービスの接続と有効化
/usr/local/etc/apache24/Includes/
にsmokeping.conf
という名前のApacheの構成ファイルを作成します。
sudo ee /usr/local/etc/apache24/Includes/smokeping.conf
ここでは、Apacheがリクエストを処理するために必要な情報をSmokePingのWebインターフェイスに追加します。 以下をコピーして新しいファイルに貼り付けます。
/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のデフォルトのサービス構成では、起動時にプロセスが開始されません。 これを変更するには、次の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インターフェイスにアクセスする
お気に入りのブラウザでhttp://your_server_ip/smokeping
にアクセスすると、SmokePingのWebインターフェイスにアクセスできます。 手順5で指定したタイトルとコメントのページが表示されます。 値を変更しなかった場合は、次のようになります。
左側のメニューをナビゲートすると、グラフを表示できます。 メニューのターゲットおよびマルチターゲットオプションに注意してください。 これらは、ステップ5で定義したターゲットです。
ターゲットをクリックします。 ミラーサーバーごとに1つずつ、定義した最初の2つのグラフが表示されます。 左側に、構成ファイルを反映したネストされたターゲットのリストが表示されます。
次に、マルチターゲットをクリックします。 ここに結合されたグラフが表示されます。
問題が発生した場合は、ログを確認して問題の診断に役立てることができます。 Apacheは、ログを/var/log/httpd-access.log
と/var/log/httpd-error.log
の2つのファイルに記録します。 SmokePingには、/var/log/smokeping.log
という1つのログファイルがあります。 SmokePingの構成を変更する場合は、sudo service smokeping reload
を使用してデーモンをリロードする必要があることに注意してください。
結論
このチュートリアルでは、Apacheを使用してSmokePingをセットアップし、ロギングとグラフ作成をテストするためのプローブの例をいくつか作成しました。 ここから、プローブとグラフを追跡したいものにカスタマイズできます。 SmokePingには、スレーブ、アラート、独自のメールサーバーのサポートなど、他にも多くの機能があります。 詳細については、SmokePingの公式ドキュメントをご覧ください。