Helix Universal Proxy のカスタム ロギング機能を使って、Helix Universal Proxy 上の特定タイプのイベントや情報をモニタできます。 また、選択したタイプのアクティブティについてレポートを作成できます。 この章では、第 13 章で取り上げたメイン ログ ファイルを補助する、カスタム ロギング機能の使用方法について説明します。
カスタム ロギングとは、求める情報を収集し、画面やテキスト ファイルなどの出力形式でレポートできる、柔軟性の高い機能です。 たとえば、この機能を利用して、現在の Helix Universal Proxy クライアント接続についての情報を収集することができます。 カスタム ロギングは、第 13 章で説明するアクセスとエラーのログを補助することを目的としていますが、どんなログ要件にも対応することができます。
カスタム ロギングでは、Helix Universal Proxy レジストリに格納された情報を基にレポートから情報を得ています。このレジストリは Windows オペレーティング システムのメイン レジストリとは別個のものです。 レジストリには Helix Universal Proxy の ほとんどの情報が含まれています。Helix Administrator ページ自体からのリンクはないものの、レジストリは Helix Administrator の機能を拡張したものです。 ブラウザで以下の URL を開くとレジストリを表示できます。
|
Helix Universal Proxy レジストリでは、LiveConnections.Count などの変数に情報が格納されています。各変数には、クライアント接続のリアルタイム情報やプロキシの状態から、設定やライセンスに至るまで、特定のタイプの値や設定の情報が含まれています。 カスタム ロギング テンプレートを作成する場合、ポップアップ HTML リストからこのような変数を選択してレポートに追加します。 レポート テンプレートでは、%LiveConnections.Count% というように必ずパーセント (%) 記号で変数を囲みます。
変数リストを使って、グローバル変数を選択することもできます。グローバル変数とは、時刻のように、Helix Universal Proxy レジストリではなくオペレーティング システムから取得するものです。 以下の表では、レポートに含めることのできるグローバル変数を示します。
追跡するレジストリ変数をレポート テンプレートに追加します。レポート テンプレートは、選択した情報をレポートする頻度と送信先 (ファイルやコンソールなど) を定義します。 テンプレートは以下の 3 種類あります。
は、1 時間ごとといったように、一定の間隔ごとに情報をログします。 レポート出力の間隔は正確に定義できます。 インターバル レポートは、たとえば Helix Universal Proxy の状態を定期的にレポートするのに便利です。
ウォッチ テンプレートを使って、特定の変数または変数グループに対して監視を設定し、情報が変更されたときにレポートを生成するようにできます。 ウォッチ テンプレートは、たとえばエラーのレポートに便利です。レポートはエラー発生時だけしか生成されないからです。
システム アクティビティが発生すると、Helix Universal Proxy はレジストリの変数を動的に追加したり削除したりします。 たとえば、メディア プレーヤーがクリップを要求した場合、Helix Universal Proxy はそのプレーヤー固有のレジストリを作成し、プレーヤーのアドレスや要求された URL といった情報を格納します。 セッション テンプレートはこの動的アクティビティの発生時にレポートします。
| 詳細情報 : 上記のテンプレートの詳細については、「セッション テンプレートの使用」を参照してください。 |
レポート テンプレートを使って、選択した変数の前後にボイラープレート テキスト (くりかえし使用する定型句) を追加し、レポートをフォーマットできます。 たとえば、以下のようなエントリを作成することができます。
With a total of %LiveConnections.Count% player connections, Helix Universal Proxy |
上記の例では、%LiveConnections.Count% と %proxy.ClientBW.Total% が変数で、それ以外のテキスト部分がボイラープレートです。 Helix Universal Proxy は、レポートを生成するとき、変数とレジストリからの値を置き換えます。生成されたレポートは以下のようになります。
With a total of 50 player connections, Helix Universal Proxy |
セッション テンプレートは、レジストリ変数の動的な追加および削除についてレポートします。 Helix Universal Proxy は、メディア プレーヤー、Helix Universal Server、およびその他のコンポーネントから接続されたときに、レジストリ変数を作成します。 これらの変数には、コンポーネントに関する情報が格納されています。 セッション テンプレートを使って、それらのコンポーネントの 1 つが接続または切断したときにレポートを作成できます。 このレポート機能によって、各メディア プレーヤーに関する統計を記録することができます。たとえば、プレーヤーの IP アドレス、要求 URL、帯域幅といった情報です。
セッション テンプレートを作成する場合、監視タイプを 1 つ選択します。監視タイプによって、レポートを生成するコンポーネント接続の種類を指定します。 以下の表は、選択可能な値を示しています。
たとえば、監視タイプとして クライアント セッション [Client.Session] を選択した場合、クライアントの接続または切断のたびにレポートを生成できます。 この場合、Helix Administrator の HTML ページを表示しているブラウザや、クリップを要求するメディア プレーヤーがクライアントとなることができます。 レポートでは、そのクライアント接続でどのレジストリ変数をログするのかを選択します。
| ヒント : クライアント統計情報を収集する方法については、「クライアント統計ログを作成する」のセクションを参照してください。 |
各セッション テンプレートでは、レポートを生成するタイミングとして、監視対象のコンポーネントの接続または切断、あるいはその両方を選択できます。 テンプレートをセット アップする場合、プルダウン リストから出力形式を 1 つ選択します。
Session Added Output Format (セッション追加時出力形式) |
監視対象のコンポーネントが接続したとき、指定された変数を使ってレポートを生成します。 |
Session Deleted Output Format (セッション削除時出力形式) |
コンポーネントが切断したとき、指定された変数を使ってレポートを生成します。 |
2 つの出力形式によって、コンポーネント セッションの開始時と終了時に、それぞれ異なる変数を使ってレポートを生成できます。 たとえば、クライアントが接続した場合、クライアントの IP アドレス、要求 URL、ストリーミング プロトコル、トランスポート プロトコルなどの変数を記録することができます。 切断した場合には、時刻と IP アドレスだけを記録できます。
カスタム ロギング出力メソッドによって、Helix Universal Proxy がレポートを発行する方法を決定します。いくつかのオプションが用意されているので、その中から各ログ レポートごとに複数の配信方法を選択できます。 また、複数のレポート テンプレートで、同じ出力 (ファイルなど) に書き込むことができます。 ほとんとの出力には、設定が必要です。 たとえば、レポートをファイルとローカルの TCP ポートに送信する場合、ファイル名とポート番号を指定します。
Std Error (標準エラー出力) オプション、および Std Out (標準出力) オプションでは、レポートをコマンド コンソールに発行します。設定は不要です。
出力メソッドとして File を選択すると、Helix Universal Proxy はレポートをテキスト ファイルに発行し、ログのローリングをセット アップしない限り、ファイルの終わりに最新の結果を継続的に追加していきます。以下の変数を設定します。
ログのローリングは必須ではありませんが、統計を頻繁にレポートする場合に使用することを推奨します。 複数のテンプレートが同じログ ファイルに書き込む場合、1 つのテンプレートでのみログのローリングを定義してください。
概して、ログ ファイルの制限は頻度またはサイズを使って行います。 方法として両方を選択することは可能ですが、その場合は、最初に達したほうの制限によってログ ファイルが作成されます。 たとえば、前のファイルのサイズが 10 メガバイトに達したとき、またはアクティビティを 3 日分記録したときのどちらかに先に達した時点で、新しいログ ファイルを作成されます。
ログのローリングを実装した場合、Helix Universal Proxy はファイル名の末尾にタイムスタンプを追加し、そのファイルの作成時刻を示します。 proxystats.txt というファイル名を指定した場合について考えてみましょう。 ログ ディレクトリには、同じベース ファイル名をもつファイルがいくつかあるかもしれませんが、それぞれ以下のような固有のタイムスタンプをもっています。
proxystats.txt20020622134953 |
タイムスタンプは YYYYMMDDHHMMSS 形式で、また 24 時間形式を使用しています。 したがって、上記の例では、ファイルは 2002年6月22日 1:49.53 P.M. に作成されています。
HTTP Post メソッドでは、Helix Universal Proxy は Common Gateway Interface (CGI) プログラムにレポートを発行します。以下の変数を設定します。
URL (URL) |
CGI プログラムの場所を示す URL。 |
Port (ポート) |
ログを受信する Web サーバー上の HTTP ポートの番号。 |
出力先を Outbound TCP (アウトバウンド TCP) または Inbound TCP (インバウンド TCP) とした場合、特定の TCP ポートをリッスンしているアプリケーションにレポートを送信します。Outbound TCP メソッドでは、リモート コンピュータにレポートを発行します。 この方法を使用するには、以下の変数を設定してください。
Destination (出力先) |
ログを受信するコンピュータのホスト名か IP アドレス。 |
Port (ポート) |
特定のコンピュータ上のオープン ポートの番号。 |
Inbound TCP (インバウンド TCP) メソッドでは、ローカル コンピュータ上にログを発行します。以下の変数を設定します。
Port (ポート) |
ローカル コンピュータ上のオープン ポートの番号。 |
Outbound UDP (アウトバウンド UDP) メソッド、および Multicast UDP (マルチキャスト UDP) メソッドでは、ユニキャストを使ってUDP ソケットに、またはマルチキャスト UDP を使ってリモート コンピュータにレポートを発行します。以下の変数を設定します。
Destination (出力先) |
レポートの発行先となるコンピュータのホスト名か IP アドレス。 Multicast UDP の場合、クラス D の IP マルチキャスト アドレスを入力します。 |
Port (ポート) |
特定のコンピュータ上のオープン ポートの番号。 |
UNIX オペレーティング システムでは、Pipe (パイプ) メソッドを使用してほかのプロセスでログを使用できるようにしたり、Syslog メソッドを使用して情報をシステム ログに発行したりできます。Pipe の場合、以下の変数を設定します。
Command (コマンド) |
あとで情報を処理するアプリケーションやスクリプトへのパイプ コマンド。 |
Syslog の場合、以下の優先度のどれかを選択します。それぞれ、 UNIX システム ログのエントリ タイプに対応しています。
NT Event Log を選択した場合、Helix Universal Proxy は、選択された優先度に対応するイベント ログにレポートを発行します。各オプションは、NT イベント ログのエントリ タイプに対応しています。
以下の手順では、新しいロギング テンプレートの作成方法と、既存のロギング テンプレートの変更方法について説明します。 カスタム テンプレートをセット アップするには、前のセクションでの情報をよく理解している必要があります。 あらかじめ設定済みのテンプレートはすぐに使用できますが、まず有効にする必要があります。 テンプレートの詳細については、「あらかじめ設定済みのテンプレートを使用する」を参照してください。
| カスタム ロギング テンプレートを作成または変更するには、以下の手順に従ってください。 |
Watch (ウォッチ)]、[Session (セッション)]、または [Interval (インターバル)] を選択して、テンプレートの全体的なタイプを設定します。 ここでの選択は、ページに表示されるほかの選択肢に影響します。詳しくは手順 7 から手順 9 を参照してください。| 詳細情報 : 「テンプレートのタイプ」を参照してください。 |
On] または [Off] を選択し、カスタム ロギング レポートを有効または無効にします。 状態を変更して [Apply (適用)] をクリックするとすぐに、既存のテンプレートによってレポートが開始または終了されます。Watch (ウォッチ)] テンプレートを選択した場合、この手順に従ってください。 その他の場合は、次の手順に進んでください。 [Watches (監視)] 領域で [Property List (プロパティ リスト)] をクリックします。 表示されたリストで、変更を監視する変数を選択します。| 注意 : [Watches (監視)] リストでは、監視対象とする各変数ごとに改行してください。Helix Universal Proxy は、[Watches (監視)] リストの各行に表示される文字列を監視することで、どの変数を監視するかを判別します。 |
Watch (ウォッチ) テンプレートの最小および最大出力間隔 (オプション) を使うと、レポートを定期的に生成できます。 どちらのフィールドも定義されていない場合、Helix Universal Proxy は監視対象のレジストリ変数が変更されたときだけレポートを作成します。
このフィールドは、ログ出力の間隔として経過しなければならない最短時間を HH:MM:SS 形式で定義しています。 監視対象の変数への変更は、最小間隔時間が経過してからレポートされます。 たとえば 00:05:00 と設定した場合、監視対象の変数が変更された場合は、5 分単位でレポートされます。 5 分以内に監視対象の変数値に変更がない場合は、変数が変更されるか、最大間隔時間に達するまでレポートは作成されません。
このエントリには、レポート出力が生成されるまでに経過可能な最長時間が HH:MM:SS 形式で定義されています。 ただし、監視対象の変数が変更された場合、最大間隔時間に達していなくてもレポート出力が生成されます。 たとえば 01:00:00 と設定し、前回のレポートから 1 時間以内に監視対象の変数に変更がなかった場合、Helix Universal Proxy は 1 時間経過後にレポートを生成します。
Session (セッション)] を選択した場合、[Watch Type (監視タイプ)] リスト ボックスから適切な監視タイプを選択します。 「監視タイプを選択する」で説明されているとおり、選択した監視タイプによって、レポート出力の誘引となる動的イベントが決定されます。Interval (インターバル)] を選択した場合、[Output Interval (出力間隔)] ボックスで、時間、分、秒を適切に組み合わせて設定します。ボックスをブランクのままにしておくと、そのボックスの時間設定は 0 とみなされます。セッション テンプレートをセット アップしている場合、1 つは Session Added Output Format (セッション追加時出力方式)、またもう 1 つは Session Deleted Output Format (セッション削除時出力方式) といったように、2 つの出力形式を指定できます。ヒント :[Output Format (出力形式)] テキスト ボックスに変数を追加すると、%proxy.ClientBW.Total% のようにパーセント記号で囲まれます。あとで変数の順序を変更する場合、パーセント記号を変数名の最初と最後に移動するようにしてください。
|
\n タグを使用してください。 ボックスする内に入力したキャリッジ リターンも、新しい行として認識されます。 タブを挿入するには、\t タグを使用します。このセクションでは、Helix Universal Proxy に同梱されている設定済みテンプレートの使用方法について説明します。 また、クライアント統計をログするための独自のテンプレートのセット アップ例も提供します。
Helix Universal Proxy には、インターバル テンプレート、ウォッチ テンプレート、セッション テンプレートの 3 種類の、あらかじめ設定済みのテンプレートが同梱されています。 各テンプレートはコンソールに出力をレポートしますが、デフォルトでは無効になっています。 テンプレートを使用するには、そのテンプレートを有効にする必要があります。また、オプションとして、出力先やレポートする変数を変更してカスタマイズすることもできます。なお、設定済みのテンプレートを使わずに独自のテンプレートを作成してもかまいません。 以下のセクションでは、これらの設定済みテンプレートについて説明します。
あらかじめ設定済みのErrors (エラー) テンプレートは、監視タイプのテンプレートです。 Helix Universal Proxy にエラーが発生すると、Errors (エラー) テンプレートはコンソールにメッセージを表示します。 たとえば、出力をファイルに送信するように、このテンプレートを変更することができます。 また、エラー発生ごとにレポートする代わりに、最小および最大間隔を設定することも可能です。
あらかじめ設定済みのExtended Logging (拡張ロギング) テンプレートは、セッション テンプレートの 1 例です。 このテンプレートでは、メディア プレーヤーや Helix Administrator のアクティビティといったクライアント セッションに関する情報を収集し、クライアント セッションの終了時にコンソールにレポートを発行します。 レポート出力の 1 行は以下のように表示されます。
09:55:28 127.0.0.1 RTSP GET real9video.rm RealMedia Player Version 6.0.9.1349 (win32) |
あらかじめ設定済みのServer Stats (サーバー ステータス) テンプレートは、インターバル テンプレートの 1 例です。 このテンプレートは、プロキシの基本的な統計情報を 1 時間ごとに出力コンソールに送信します。 オプションとして、レポートする変数の変更、情報のファイルへの書き込み、またボイラープレート テキストの変更が行えます。レポート出力は以下のように表示されます。
Server Stats (06/17/02 10:33:52) |
この例は、クリップを要求するメディア プレーヤーや Helix Administrator ページを要求するブラウザといった、各クライアント要求に関する情報をログする方法を説明するためのものです。 このサンプル テンプレートでは、各クライアントが切断したときも情報をログします。 テンプレートでは、以下の基本パラメータをセット アップします。
| Template Name (テンプレート名) : | 任意 |
| Template Type (テンプレート タイプ) : | セッション |
| Template Status (テンプレートの状態) : | 有効 |
| Template Outputs (テンプレート出力) : | 任意 |
| Watch Type (監視タイプ) : | Client Session (クライアント セッション) [Client.Session] |
Session Added Output Format (セッション追加時出力形式)の場合、クライアントが接続したときに収集するレポート情報を定義します。 ボイラープレート テキストと、ポップアップ プロパティ リストから選択した変数を使って、レポートを作成してください。 \n はレポートに新しい行を追加するときに使用することに注意してください。 また、タブを挿入するには、\t を使用します。 以下に例を示します。
\n\n****CLIENT REQUEST**** |
Session Deleted Output Format (セッション削除時出力形式)の場合、クライアントが切断したときに収集するレポート情報を定義します。 以下に例を示します。
\n\n****CLIENT DISCONNECT**** |
テンプレートを定義して変更内容を適用すると、Helix Universal Proxy は、クライアントの接続または切断ごとに、カスタム ロギング情報を選択された出力先に送信します。 以下は、1 つのメディア プレーヤーが接続し、切断した場合の例です。
****CLIENT REQUEST**** |
|
|
© 2002 RealNetworks, Inc. All rights reserved. 詳細については、RealNetworks を参照してください。 画面左側に目次フレームが表示されない場合は、ここをクリックしてください。 |