ロードバランシングが設定されている場合、実際のサーバーとその上で動作しているアプリケーションの健全性を監視することは有用です。例えば、Webサーバーでは、状態を監視するための特定のページを設定したり、ADCが持つ他の監視システムを利用したりすることができます。
ライブラリ]>[リアルサーバモニタ]ページでは、カスタムモニタを追加、表示、編集することができます。これらはレイヤ7サーバーの「ヘルスチェック」であり、定義した仮想サービスの「基本」タブ内の「サーバー監視」フィールドから選択します。
リアルサーバーモニター」のページは、3つのセクションに分かれています。
· 詳細
· アップロード
· カスタムモニター
詳細
詳細」セクションでは、新しいモニターを追加したり、必要のないモニターを削除したりします。また、既存のモニターをダブルクリックして編集することもできます。
名前
モニターのご希望の名前
説明
このモニターの説明文です。できるだけ説明的なものにすることをお勧めします。
モニタリング方法
ドロップダウンリストから監視方法を選択します。選択できるのは
モニタリング方法
|
説明
|
例
|
HTTP 200 OK
|
リアルサーバへのTCP接続が行われる。接続が完了すると、簡単なHTTPリクエストがリアルサーバに送信されます。サーバーからのHTTPレスポンスを待って、「200 OK」レスポンスコードを確認します。200 OK」の応答コードを受信した場合、リアルサーバーは稼働していると判断されます。タイムアウトや接続の失敗など、何らかの理由で「200 OK」レスポンスコードが受信されない場合は、リアルサーバーはダウンしていて利用できないとみなされます。この監視方法は、HTTPとAccelerated HTTPのサービスタイプでのみ使用することができます。ただし、HTTPサーバにレイヤ4サービスタイプが使用されている場合、リアルサーバでSSLが使用されていないか、「コンテンツSSL」機能で適切に処理されていれば、使用することができます。
|
名前200OK
説明します。チェックプロダクションのWebサイト
モニタリング方法です。HTTP 200 OK
ページの位置/main/index.html OR HTTP://www.edgenexus.io/main/index.html 必須コンテンツです。該当なし
|
HTTPレスポンス
|
リアルサーバーへの接続とHTTPリクエスト/レスポンスが行われ、先ほどの例で説明したようにチェックされます。ただし、レスポンスコードが「200 OK」であるかどうかではなく、HTTPレスポンスのヘッダーにカスタムテキストが含まれているかどうかをチェックします。テキストは、ヘッダー全体、ヘッダーの一部、ページの一部の行、または1つの単語であることができます。このテキストが見つかった場合、Real Server は稼働していると判断されます。この監視方法は、実際にはHTTPとAccelerated HTTPのサービスタイプにしか使用できません。ただし、HTTPサーバでレイヤ4サービスタイプが使用されている場合、リアルサーバでSSLが使用されていないか、「コンテンツSSL」機能で適切に処理されていれば、使用することができます。
|
名前サーバーアップ
説明します。Server Up」のページの内容を確認します。"
モニタリング方法です。HTTPレスポンス
ページの位置/main/index.html OR HTTP://www.edgenexus.io/main/index.html 必須コンテンツです。サーバーアップ
|
DICOM
|
必要なコンテンツ欄に「Source Calling」AE Titleの値を使用してDICOMエコーを送信します。また、「Destination Called」AE Titleの値は、各サーバーのNotes欄に設定することができます。Notes欄は、IP Services-の中にあります。
-バーチャルサービス--サーバーページ。
|
名前DICOM
説明します。DICOMサービスのL7ヘルスチェック
モニタリング方法。DICOM
ページの位置。N/A
必要なコンテンツAET値
|
TCP アウトオブバンド
|
TCP Out of Band方式は、必要なコンテンツの欄に監視したいポートを指定できること以外は、TCP Connectと同じです。このポートは通常、トラフィックポートとは異なり、サービスを結びつけたい場合に使用します
|
名前を教えてください。TCP アウトオブバンド
説明アウトオブバンド/トラフィックポートの監視
ページの位置。N/A
必須コンテンツです。555
|
マルチポートのTCPモニタ
|
この方法は、複数の異なるポートを持つことができるという点を除いて、上記の方法と同様です。必須コンテンツセクションで指定されたすべてのポートが正しく応答した場合のみ、モニターは成功したとみなされます。
|
名称マルチポートモニター
説明複数のポートを監視して成功させる
ページの位置。N/A
必要なコンテンツ135,59534,59535
|
|
|
|
ページの位置
URL HTTPモニターのページ位置。この値は、/folder1/folder2/page1.htmlのような相対リンクにすることができます。また、ウェブサイトがホスト名にバインドされる絶対リンクも使用できます。
必須コンテンツ
この値には、モニターが検出して利用する必要のあるコンテンツが含まれています。ここに表示される値は、選択されたモニタリング方法によって変わります。
VSに適用
このフィールドには、モニターが適用されているバーチャルサービスのIP/ポートが自動的に入力されます。バーチャルサービスで使用されているモニターは削除できません。
ユーザー
カスタムモニターの中には、この値をパスワードフィールドと一緒に使用して、Real Serverにログインできるものがあります。
パスワード
カスタムモニターの中には、この値をUserフィールドとともに使用して、Real Serverにログインできるものがあります。
しきい値
Thresholdフィールドは、CPUレベルなどのしきい値が必要なカスタムモニターで使用される一般的な整数です。
注:アプリケーションサーバーからのレスポンスが "Chunked "レスポンスでないことを確認してください。
リアルサーバーモニターの例
アップロードモニター
ユーザーが独自のカスタムモニターを作りたいと思うことは多々あると思いますが、このセクションではそのモニターをADCにアップロードすることができます。
カスタムモニターは、PERLスクリプトを使って書かれており、ファイルの拡張子は.plです。
· モニタリング方法のリストで識別できるように、モニタに名前を付けます。
· .plファイルを探す
· 新規モニターのアップロードをクリック
· 作成したファイルは正しい場所にアップロードされ、新しいモニタリング方法として表示されます。
カスタムモニター
このセクションでは、アップロードされたカスタムモニターを確認し、不要になった場合は削除することができます。
· ドロップダウンボックスをクリック
· カスタムモニターの名前を選択
· 削除」をクリックします。
· カスタムモニターは、モニタリング方法のリストに表示されなくなります。
カスタムモニター用Perlスクリプトの作成
注意:このセクションは、Perlでの使用および記述の経験がある方を対象としています。
このセクションでは、Perlスクリプト内で使用できるコマンドを紹介します。
Monitor-Name: コマンドは、ADCに保存されているPerlスクリプトに使用される名前です。この行を入れないと、スクリプトが検索されません。
以下は必須項目です。
· #モニター名
· use strict;
· 使用上の注意
Perl スクリプトは CHROOTED 環境で実行されます。WGETやCURLなどの別のアプリケーションを呼び出すことが多い。SNIのような特定の機能のために、これらのアプリケーションを更新する必要がある場合もあります。
ダイナミックバリュー
· my $host = $_[0]; - IP Services--Real Serverセクションの "Address "を使用しています。
· my $port = $_[1]; - IP Services--Real Serverセクションの "Port "を使用しています。
· my $content = $_[2]; - これは、「ライブラリ--リアル・サーバー・モニタリング」セクションの「Required Content」の値を使用します。
· my $notes = $_[3]; - これは、IP ServicesのReal Serverセクションにある「Notes」列を使用します。
· my $page = $_[4]; - これは、Library--Real Server Monitorセクションの "Page Location "の値を使用しています。
· my $user = $_[5]; - これは、Library--Real Server Monitorセクションの "User "値を使用しています。
· my $password = $_[6]; - これは、「ライブラリ--リアル・サーバー・モニター」セクションの「パスワード」の値を使用します。
カスタムヘルスチェックには2つの結果があります。
· 成功
戻り値 1
成功メッセージをSyslogに出力する
リアルサーバーをオンラインにする(IN COUNTが一致する場合)。
· 失敗した
戻り値 2
Syslogに「Unsuccessful」というメッセージを出力
リアルサーバーをオフラインにする(OUT Countが一致した場合)。
カスタムヘルスモニターの例
#モニター名 HTTPS_SNI
use strict:
使用上の注意
# 利用可能なヘルスチェックのドロップダウンに上記のモニター名が表示される
# このスクリプトには6つの値が渡されています(下記参照)
# このスクリプトは以下の値を返します。
# 1 はテストが成功した場合
# 2 テストが失敗した場合 サブモニター
{
my Shost = $_[O]; ### ホストのIPまたは名前
my Sport = $_[1]; ### Host Port
my Scontent = $_[2]; ### 探したいコンテンツ(WebページやHTTPヘッダーの中から
my Snotes = $_[3]; ### バーチャルホスト名
my Spage = $_[4]; ### URLのホストアドレス以降の部分
私のSuser = $_[5]:### ドメイン/ユーザー名 (オプション)
my Spassword = $_[6]; ### パスワード (オプション)
私の$resolve;
私の$auth =;
if ($port)
{
$resolve = "$notes:$port:$host "となります。
}
else {
$resolve = "$notes:$host";
}
if ($user && $password) {...
$auth = "-u $user:$password :
}
my @lines = 'curl -s -i -retry 1 -max-time 1 -k -H "Host:$notes --resolve $auth HTTPs://${notes}${page}.2>&1'; if(join(""@lines)=~/$content/)
{
print "HTTPs://$notes}${page} looking for - $content - Health check successful.\n";
return(1)です。
}
その他
{
print "HTTPs://${notes}${page} looking for - $content - Health check failed.\n";
リターン(2)
}
}
モニター(@ARGV)になります。
注:カスタムモニタリング - グローバル変数の使用はできません。ローカル変数のみの使用 - 関数内で定義された変数