Macromedia Flash Communication Server ロギング
このページは、株式会社バスキュール 技術開発部 北沢 純 氏に翻訳いただきました。
はじめに
Macromedia Flash Communication Server MXを管理するにあたって非常に重要なのは、 サーバ上で実行されている様々なアプリケーションやアプリケションインスタンスの 統計情報を集めることができるということです。 ほとんどのサーバ環境において、サーバログはサーバの管理と問題解決 の両方において重要なツールです。このことは 大きな帯域を消費するような通信のトラフィックを捌くサーバにおいて特に当てはまります。 Flash Communication Serverのアーキテクチャにおいては、多くの異ったアプリケーションと アプリケーションインスタンスを同時に実行することが可能なので、サーバにどれだけ多くの ユーザが接続しているか、各アプリケーションもしくはアプリケーションインスタンスから どれだけ帯域が使われているかを追跡することが可能であることは重要です。 Server Management ActionScript API (* 英文のみ)はかなり柔軟性があり そのような情報を沢山集めることができます。以下では多様なロギング(ログ取得)法の 一部と、Server Management ActionScriptAPIで構築されたいくつかのロギングアプリケーション例 を紹介します。これらのアプリケーションはそのままでも使用することができますが、 サーバ管理者の特定の要求に合うように仕立てることもできます。 また、Server Management ActionScript APIで構築可能な管理アプリケーション類の 良い例にもなっています。
ロギングの方法
ロギングの方法サーバはアクセスのデータを"access.flv"というストリームに保存することができます。 これはVhost.xmlという設定ファイルの<RecordAccessLog> という項目で 制御することができます。これがtrueに設定されていると、サーバは アプリケーションフォルダの admin/streams/logs サブディレクトリに 置かれた"access.flv"というストリームファイルにアクセス情報を格納します。 |
|
アプリケーション trace() ログサーバサイドActionScriptのファイルではtrace() コマンド を使ってサーバログに情報を記録することができます。これはApplication.xmlファイルの <RecordAppLog>という項目で 制御されます。これがtrueに設定されていると、サーバはadmin/streams/logs/applications/アプリケーション名/ ディレクトリの中のファイルにtrace() 文で メッセージを格納します。このファイルはアプリケーションインスタンスの名前を付与されます。 |
|
サーバスクリプトロギングサーバ管理アプリケーションはサーバの制御とサーバについての情報へのアクセスを 可能にする特別なサーバアプリケーションです。サーバサイドスクリプトは サーバのデータにアクセスし、それを後で取得できるようにストリームに保存 することができます。 |
ログ情報の取得
ログ情報がどのようにサーバに保存されるかに関わらず、その情報を役立たせるには ログレポートとして取得、分析、フォーマットされる必要があります。 一般的には、特別なクライアントムービー(SWF)を使って、サーバにアクセスし、 、ログデータをダウンロードし、レポートを生成することになります。
ロギングプログラムのサンプル
ここではロギングプログラムの二つのサンプルを扱います。一つ目は Flash Communication Server ログリーダです。このクライアントプログラムはサーバにadmin(管理者)ユーザとして 接続し、サーバのアクセスログもしくはアプリケーションのtraceのログをダウンロード し、Webブラウザ内で表示するためにHTMLでレポートを作成します。二つ目はFlash Communication Server 帯域モニタ(Flogger)です。Flashロガープログラムは二つの主要コンポーネントを持っています。: 帯域などのサーバデータを記録するサーバサイドスクリプトと、この情報にアクセスし ログレポートを作成することができるクライアントプログラムです
Flash Communication Server ログリーダ
このプログラムはアクセスログとアプリケーションログをFlash Communication Server から読み取るFlashアプリケーションです。管理者はこれを使ってサーバの利用状況レポートを作成することができます。 また、サーバロギングをカスタマイズするための一つの出発点として使うこともできるでしょう。このプログラムのユーザは Flash Communication Serverのインストール、設定、管理に習熟している必要があります。
Flash Communication Server ログリーダーは複数のコンポーネントから構成されており、ここでダウンロード可能です:
FlashLogPlayerクライアントムービー: サーバデータを読んで レポートを作成するFlashムービー
(FlashLogPlayer.swf, 53 KB).
FlashLogPlayerソースコード: クライアントムービーの.flaソースファイル
(FlashLogPlayer.fla, 498 KB).
FlashLogPlayer Webページ: クライアントのFlashムービーを保持します HTMLページ
(FlashLogPlayer.html, 5 KB).
サーバの admin.ascスクリプト: サーバのアクセスログをバックアップします サーバサイドActionScriptプログラム
ダウンロード
Flash Communication Server ログリーダーコンポーネント
背景: サーバログのストリーム
Flash Communication Serverは二つのタイプのログを書き出します:
| アクセスログ:
このファイルはユーザがサーバにログオン、ログオフしたときの 情報を持っています。データはFlash Communication ServerのFlashCom\applications\admin\streams\logs\access.flvファイルに保存されます。 |
|
| アプリケーションログ:
これらのファイルはサーバサイドActionScriptプログラムのtrace()文 の出力を保持しています。アプリケーションインスタンス毎に表示されるテキストがそれぞれ 別のログファイルに保存されます。これらのファイルは FlashCom\applications\admin\streams\logs\application\<AppName> フォルダ に置かれます。 |
どちらのタイプのログファイルもFlashComログプレイヤプログラムで検証することができます。
ログプレーヤプログラムのインストール
FlashLogPlayerのWebページ(FlashLogPlayer.html)とムービー (FlashLogPlayer.swf)は自分のコンピュータ上の同じフォルダにコピーするか、 もしくはWebサーバ上にインストールするかしなければなりません。FlashLogPlayerムービー はWebブラウザを通じてアクセスする必要があります。SWFがFlashのスタンドアロン プレイヤーで動作していると、レポートを正しく生成しません。
アクセスログを保存するためのサーバ設定
Flash Communication Serverはデフォルトではアクセス情報を保存しません。 これを変更するには、Vhost.xml設定ファイルを編集して <RecordAccessLog>タグが持つ値を"true"にに変えます。これを実際に反映させるには サーバを再起動しなければなりません。このオプションが有効になることで、 サーバはアクセスの記録をFlashCom\applications\admin\streams\logsフォルダの access.flvファイルに書き込むようになります。
アクセスログをバックアップするためのサーバ設定
Flash Communication Serverが保存するアクセスログはかなり大きなものになっていく可能性があります。アクティブなサーバにおいてはなおさらです。 データを管理可能な程度のサイズにしておき、できるだけレポート生成の時間を短縮する ために、ログを毎日バックアップしてからリセットするスクリプトをサーバに インストールしておくことができます。
このスクリプトはaccess.flvファイルを夜中に読んで、内容のコピーを FlashCom\applications\admin\streams\logs\application\adminフォルダに作り、 元のアクセスファイルを消去します。保存された各ファイルには ファイルが保存された日時を示す"Access_2002-06-12.flv"といったような名前がつきます。
このプログラムをインストールするには、"admin.asc"ファイルを自分のサーバのapplications\admin フォルダにコピーします。サーバの管理プログラム (同じフォルダ内のにあるmain.js, main.asc, admin.js, admin.asc)用の メインスクリプトが既に存在するなら、二つのプログラムをマージしなければ いけません。マージの手順は以下の通りです:
- admin.ascプログラムを何か他の名前にします。例えば"LogRotation.asc"など。
- 名前を変えたファイルをサーバのapplications\adminフォルダにコピーします。
- 既にある管理プログラムのファイルを編集して、一番上に以下のコマンドを付加し、新しいスクリプトがロードされるようにします:
load( "LogRotation.asc" ); - 既にある管理プログラムのファイルの中の application.onAppStart() を編集して以下のコマンドを呼び出すようにします:
setupLogRotationInterval(); - 管理プログラムのファイルを保存し、サーバを再起動します。
ログプレーヤプログラムの実行
サーバログの生成は以下のステップから成っています:
- 管理者(admin)ユーザでサーバにログオン
- サーバからログを読み出します。
- ログデータからレポートを生成します。
サーバにログオンするには:
- FlashLogPlayer.htmlというWebページをブラウザで開きます。
- サーバアドレスを入力します。管理者としてログインしているので、管理用ポート(デフォルトでは1111)をサーバアドレスに含めます。 サーバアドレスは"server.company.com:1111"もしくは"localhost:1111" というような形になります。
- 有効な管理者ユーザIDとパスワードを該当フィールドに入力します。
- "Connect"ボタンを押します。
- 一度正しく接続されるとアプリケーションはメイン画面にジャンプします。 接続できなければ、サーバアドレス、管理用ポート、ユーザIDとパスワード を再度チェックします。
サーバからログを読み出すには:
- ログの名前を入力します。現状のアクセスログなら、"access"だけで結構です。 アーカイブされたアクセスログなら、"application/admin/Access_2002-05-26_13" というような形になります。アプリケーションログなら"myApp/_definst_"といった 感じになります。
- ログのタイプ(アクセスログかアプリーケーションログか)を選択します。ログファイル名の右のラジオボタンを使います。
- "Read Log"を選択する。
- ムービーがサーバからログを読み出します。ステータスウィンドウが、進行状況や各種エラーを示すメッセージを表示します。 ログを正しく読んでいれば、それが終了するまで待ってからレポートの生成を試みます。
レポートを生成するには:
デフォルトのレポートを作成するなら、"Create
Report"ボタンを押すだけです。
プログラムがサーバ情報のWebページを生成して開きます。
レポートの形式はいくつかの方法から選択することも可能です:
- "Show Details"チェックボックスは個別のデータポイントのリストをアクセスレポートに 加えます。このレポートはアクセスログの中の全てのクライアントログオンを含んでいます。
- アプリケーション名のリストボックスはアクセスレポートを個別のアプリケーション毎に選択することができます。これは個々のクライアントログオンデータ を特定のアプリケーションに限定するだけです。
- "Start Time"と"Stop Time"を選ぶと、レポートを特定の時間間隔に限定することができます。
- "Max Entries"は特定の数のエントリーだけにレポートを限定し、レポートが大きくなりすぎるのを防ぐことができます。
まとめ
FlashCom
ログプレーヤアプリケーションはFlash Communication Server MXからアプリケーションログとアクセスログを取得します。このプログラムはサーバの活動について基本的なレポートを生成します。このアプリケーションはユーザが個々の要求に応じて拡張、カスタマイズすることもできます。
トップにもどる
Flash Communication Server 帯域モニタ (Flogger)
このプログラムはFlash Communication Serverの帯域使用量の情報を保存するFlashアプリケーションです。これによって管理者はサーバの使用レポートを作成することができます。また、サーバロギングをカスタマイズするための一つの出発点として使うこともできるでしょう。このプログラムのユーザはFlash Communication Serverのインストール、設定、管理に習熟している必要があります。
Flash Communication Server 帯域モニタは複数のコンポーネントから構成されており、ここでダウンロード可能です:
Flogger
クライアントムービー: サーバデータを読んでレポートを作成するFlashムービー(Flogger.swf, 49 KB)
Flogger ソースコード: クライアントムービーの.flaソースファイル (Flogger.fla, 460 KB)
Flogger Webページ: クライアントのFlashムービーを保持します HTMLページ (Flogger.html, 5 KB)
サーバの Flogger.ascスクリプト: 帯域情報を保存するためのサーバサイドActionScriptプログラム(Flogger.asc, 13 KB)
Application.xml: Floggerサーバアプリケーションをロードするためのサーバ設定ファイル(Application.xml, 1 KB)
ダウンロード
Flash Communication Server 帯域モニタ
- Win:
flogger.zip
(169k) - Mac:
flogger.sea.hqx (251k)
背景:
Floggerシステムの動作について
Floggerシステムは複数のコンポーネントを持っており、その全てが一緒になって動きます:
帯域情報を保存するサーバアプリケーションと、帯域情報を読んでレポートを生成するクライアントFlashムービーです。
Flogger.ascファイルはサーバサイドアプリケーション用のスクリプトです。このプログラムはサーバの起動時に読み込まれ、管理者ユーザとしてその同じサーバに ログオンします。そしてこのプログラムはサーバに対して規則的にポーリングをおこなって、どのアプリケーションが実行されているか、サーバの帯域使用量の合計、個々のアプリケーションの帯域使用量を調べます。このデータはサーバ上のストリーム(FLVファイル)に一分毎に保存されます。
Floggerクライアントムービーはこのアーカイブされた帯域情報を読んでレポートを生成するために使われます。このムービーはそのサーバマシンか他のリモートのコンピュータから実行されます。このFlashムービーはサーバのFloggerアプリケーションに接続し、ストリーム(FLVファイル)から 保存されたデータを読み出して分析します。ユーザがそのレポートについていくつかオプションを選ぶと、 このプログラムはサーバの帯域使用量についての要約と詳細な情報とを含むWebページ(HTMLファイル)を 生成します。
Floggerクライアントプログラム
Flogger Webページ(Flogger.html)とムービー(Flogger.swf)は自分のコンピュータ
上の同じフォルダにコピーするか、もしくはWebサーバ上にインストールしなければなりません。 FloggerムービーはWebブラウザを通じてアクセスする必要があります。
Flogger.swfはFlashのスタンドアロンなプレイヤーで動作しているとレポートを正しく生成しません。
Floggerクライアントプログラムは普通のエンドユーザは使わないので、公開されているWebページにインストールするべきではありません。管理者が使うコンピュータ 上にローカルに保存するか、パスワードアクセスしか許可されていない、Webサイトの安全な 階層に置きます。
Floggerサーバプログラムのインストール
Floggerプログラムは他のサーバサイドアプリケーションと同じようにインストールされます。"Flogger"という名前の新規フォルダをFlash Communication Serverの アプリケーションディレクトリに作成し、Flogger.ascとApplication.xmlファイルを
そこにコピーしましょう。
Floggerサーバプログラムを動作させるには、Flogger.ascスクリプトファイルの中の 二つの項目を変更する必要があります。変更はどちらも、スクリプト冒頭の application.onAppStart() 関数の中で行います:
- 以下のように書いてある行で:
application.userList[ "CLIENT" ] = "Logger";
"CLIENT"という文字列を、接続してレポートを生成するクライアント用の、適切なユーザ名に変えます。 "Logger"という文字列をこのユーザのパスワードに変えます。できれば複数のクライアントがレポートを生成できるよう、同じ配列にユーザIDとパスワードを追加したほうがよいでしょう。 - 以下のように書いてある行で:
application.adminInfo.adminID = "admin";
application.adminInfo.adminPassword = "adminPassword";
adminID プロパティと adminPassword プロパティを、適切なサーバ管理者IDとパスワードの組合せに変えます。このログオン情報は、プログラムが帯域使用データを取得するためにサーバの管理プログラムに 接続する用途で使われます。
サーバの帯域使用量の記録をはじめるには、Flash Communication Serverを再起動するか、もしくはFloggerクライアントプログラムでサーバに接続します。 クライアントが正しく動作していることを確認するには、 Floggerクライアントアプリケーションを使って接続するか、もしくは サーバで実行されているアプリケーションを調べるための通常の サーバ管理ツールを使用します。
FloggerアプリケーションフォルダにコピーされたApplication.xmlファイルは二つのことを行います:
- <LoadOnStartup> タグをtrueに設定して、サーバが起動したときにサーバ側のFloggerプログラムが必ずロードされるようにします。
- Floggerアプリケーションに接続しているクライアントが無いときにFloggerアプリケーションが自動的にアンロードされてしまうのを防ぐために、<MaxAppIdleTime> の時間を大きな値に設定します。
サーバの帯域のログファイル
アプリケーションが適切にインストールされていてサーバが正しく設定されていれば、Floggerアプリケーションは<application
folder>\Flogger\streams\_definst_\ フォルダの中にストリームファイルを生成するはずです。 これらのファイルは"BandwidthInfo_2002_06_20.flv"というように実際の日付でファイル名 が決定するように命名されています。
サーバのFloggerプログラムは毎日深夜に自動的に新しい帯域ログファイルを生成します。 各ファイルが24時間の帯域使用量データを持っています。サーバを起動、停止してもこれらのファイルにはなんら影響を及ぼさないはずです。
Floggerプログラムの実行サーバの帯域ログの生成は以下の三つのステップから成っています:
- FloggerクライアントムービーとWebページを使ってサーバにログオンします
- サーバからログを読みます
- ログデータからレポートを生成します
サーバにログオンするには:
- Flogger.htmlというWebページをブラウザで開きます
- サーバのアドレスを入力します。Flogger.ascというサーバサイドActionScriptファイルに記録されているものと同じユーザIDとパスワードを入力する必要があります
- "Connect" を選択します
- 一度正しく接続されるとアプリケーションはメイン画面にジャンプします。接続できなければ、サーバアドレス、ユーザIDとパスワードを再度チェックします
サーバからログを読み出すには:
- ログの名前を入力します。"BandwidthInfo_2002_06_20"のような形で、正しい年月日 が入力されている必要があります。月と日の値は一桁目が空いていれば0を埋めるので、 4月1日のログは"BandwidthInfo_2003_04_01"になります
- "Read Log"を選択します
- ムービーがサーバからログを読み出します。ステータスウィンドウが、進行状況や各種エラーを示すメッセージを表示します。 ログを正しく読んでいれば、それが終了するまで待ってからレポートの生成を試みます
レポートを生成するには:
デフォルトのレポートを作成するなら、"Create Report"ボタンを押すだけです。 プログラムがサーバ情報のWebページを生成して開きます。 レポートの形式はいくつかの方法から選択することも可能です:
"Show
Hourly Summary"チェックボックスは一時間毎の帯域使用量を示すデータテーブルを追加します。
The "Show Server Details by Minute"チェックボックスはサーバの一分毎の帯域使用を示すデータテーブルを追加します。このオプションを有効にすると、レポートとそれを生成するのに必要な時間が、かなり大きくなります。
"Show Application Details by Minute"チェックボックスはアプリケーションの一分毎の帯域使用量を示すデータテーブルを追加します。このオプションを有効にすると、レポートとそれを生成するのに必要な時間が、かなり大きくなります。
アプリケーション名の入ったリストボックスで、個々のアプリケーションの レポートを選択することができます。これによりレポートを、選択されたアプリケーショ ンの情報だけに限定することができます。
"Start Time"と"Stop Time"を選ぶと、レポートを特定の時間間隔に限定することができます。
"Max Entries"は特定の数のエントリーだけにレポートを限定し、レポートが大きくなりすぎるのを防ぐことができます。
まとめ
FloggerパッケージはFlash Communication Server MXの帯域使用量を 保存し、読み出し、レポートするように設計されています。このプログラムはサーバの帯域容量とCPUの使用状況について基本的なレポートを生成します。このアプリケーションはユーザが個々の要求に応じて拡張、カスタマイズすることも可能です。
| Last updated: | August 2, 2002 |
| Created: | June 27, 2002 |
翻訳: 株式会社バスキュール
