リアルサーバーモニター」のページは、3つのセクションに分かれています。
· 詳細
· アップロード
· カスタムモニター
詳細
詳細セクションでは、新しいモニターを追加したり、不要なモニターを削除したりします。また、既存のモニターをダブルクリックして編集することもできます。
名前
モニターのご希望の名前
説明
このモニターのテキストの説明です。できるだけ説明的なものにすることをお勧めします。
モニタリング方法
ドロップダウンリストから監視方法を選択します。選択できるのは
· HTTP 200 OK
· HTTP 200 Head
· HTTP 200 オプション
· HTTPヘッド
· HTTPオプション
· HTTPレスポンス
· マルチポートTCPモニター
· TCP アウトオブバンド
· DICOM
· SNMP v2
· DNSサーバーの確認
· LDAPS
ページの位置
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)になります。
注:カスタムモニタリング - グローバル変数の使用はできません。ローカル変数のみの使用 - 関数内で定義された変数