Pandora: Documentation ja: WUX Monitoring
Contents
1 WEB User experience トランザクション監視 (WUX)
1.1 概要
Pandora WUX は Pandora FMS の内部コンポーネントで、Web ブラウザの操作を自動的に行うものです。
動作させるためには、WUXServer が Pandora Web Robot Daemon (PWRD) サーバに接続する必要があります。
PWRD は、Web サイトでユーザが事前に実行したアクションを一つ一つ再実行するサービスです。
そのために、PWRD は、Selenium の自動実行技術を用います。
したがって、ユーザが Web サイトをに対して実行した操作を Pandora WUXServer に示すことが必要です。
このデータで、Pandora WUXServer は、所要時間、問題が発生したスクリーンショットといった、パフォーマンスレポートを生成します。
Pandora WUXServer は、ブラウジングセッションをフェーズに分割できます。これにより、表示を単純化し、ボトルネックの分析の手助けになります。
1.2 設定
Pandora FMS サーバで WUXServer を有効化するには、Pandora Web Robot service (PWRD) を設定する必要があります。
1.2.1 Pandora ウェブロボットデーモン (PWRD)
Pandora Web Robot Daemon は、ユーザーの Web アクセスをナビゲートするために必要なアクションのリストを含むファイルを使用して、Webブラウザセッションを自動化するツールを提供するサービスです。
Pandora サーバに統合され、Enterprise サーバ(Linux) またはモジュールライブラリ(Windows) のインストール時に /usr/share/pandora_server/util/pwrd に置かれています。
以下が含まれます。
- Windows 版 Firefox 46 のバイナリ
- Web ブラウザセッションを実行するために、あらかじめビルドされたプロファイル
- セッション自動化のためのサーバ (Selenium サーバ)
1.2.2 Linux でのインストール
PWRD デーモンの Selenium コンポーネントは、動作のために java が必要です。次のようにインストールします。
yum install java
PWRD が Linux サーバで Firefox を起動できるようにするには、グラフィカル環境を仮想化できるように xorg-x11-server-Xvfb および gtk2 のインストールが必要です。
yum install xorg-x11-server-Xvfb gtk2
リポジトリに無い場合は、RPM ファイルを以下から入手できます。 ftp://rpmfind.net/linux/centos/6.6/os/x86_64/Packages/xorg-x11-server-Xvfb-1.15.0-22.el6.centos.x86_64.rpm
ftp://rpmfind.net/linux/centos/7.4.1708/os/x86_64/Packages/gtk2-2.24.31-1.el7.x86_64.rpm
RPM のインストールを手動で実行するには次のようにします。
yum install xorg-x11-server-Xvfb-1.15.0-22.el6.centos.x86_64.rpm yum install gtk2-2.24.31-1.el7.x86_64.rpm
次に PWRD デーモンのインストールに進みます。Enterprise サーバをインストールしたときに /usr/share/pandora_server/util/pwrd/ に配置されます。
sudo /bin/bash /usr/share/pandora_server/util/pwrd/install_pwrd.sh --install
インストールが完了したら、起動させます。
PWRD にはいくつかの動作モードがあります。
- Standalone: こちらが通常のモードで、PWRD の単一のインスタンスを起動します。インスタンスは Pandora FMS サーバに割り当てられます。
- HUB: 集中モードです。このモードでは、PWRD サービスはブラウザセッションを直接は評価せず、代わりにタスクを実行するためのノードが登録されます。これは、PWRD サービスのクラスタモードです。それぞれの HUB が Pandora FMS サーバに割り当てられます。
1.2.2.1 PWRD の "Standalone" モード
Standalone モードの PWRD は、デーモンを起動し、WUXServer を通してユーザが要求したアクションを実行します。
# 起動 /etc/init.d/pwrd start
# 状態確認 /etc/init.d/pwrd status
# 停止 /etc/init.d/pwrd stop
1.2.2.2 PWRD の "HUB" モード
集中モードまたは HUB は、ロードバランサーとしてデーモンを起動します。この動作モードでは、システムに登録されたすべてのノード間で負荷をバランシングし、負荷に応じてセッションの実行割り当てをします。
HUB の管理コンソールにアクセスすることにより、HUB の状態を常に確認することができます。
http://hub:4444/grid/console
# 起動 /etc/init.d/pwrd start-hub
# 状態確認 /etc/init.d/pwrd status-hub
# 停止 /etc/init.d/pwrd stop-hub
1.2.2.2.1 PWRD ノードの HUB への追加
新たな PWRD ノードを追加するには、以下が必要です。
- HUB (HUB モードの PWRD)
- 同一または異なるマシン上の PWRD ファイル
- ノードをホストするコンピュータから HUB をホストするコンピュータへの TCP/4444 接続
この動作モードでは、サービスはキューに入れられた HUB からのすべての要求を処理し、実行結果を返します。 HUB のみが WUXServer との通信を行い、アクションの実行は透過的です。
# 起動および HUB への登録。"hub" の部分は PWRD HUB のサーバ IP に置き換えてください。 /etc/init.d/pwrd start-node http://hub:4444/grid/register
# 状態確認 /etc/init.d/pwrd status-node
# 停止 /etc/init.d/pwrd stop-node
1.2.2.3 Pandora サーバ設定
選択したモードにかかわらず、一度起動すると、Pandoraサーバーの設定ファイルに WUXServer の設定パラメータを追加して、ブラウジングセッションの実行の割り当てを開始できます。
PWRD サーバーを Pandora FMS サーバと同じサーバに配置するのであれば、次の設定を追加します。
# /etc/pandora/pandora_server.conf へ追加 wuxserver 1 wux_host 127.0.0.1 wux_port 4444
1.2.3 Windows でのインストール
Windows での Pandora WUX の環境準備の手順を示します。
注意: PWRD サービスには、Linux を利用することを強くお勧めします。
展開に必要なファイルはモジュールライブラリ https://library.pandorafms.com/index.php?sec=Library&sec2=repository&lng=en&action=view_PUI&id_PUI=816 から取得できます。
1.2.3.1 Windows システムにおける PWRD の展開
事前準備:
- PWRD サーバ のダウンロード
- Java 1.8 のインストール
- Firefox 47.0.1 のインストール (https://ftp.mozilla.org/pub/firefox/releases/47.0.1/ からダウンロード)
- 自動実行に使うための Firefox のプロファイルの準備(オプション): http://toolsqa.com/selenium-webdriver/custom-firefox-profile/
- C:\PWR ディレクトリの作成
以下のファイルを準備します。
- PWR_Server.zip を C:\PWR\ へ展開します。
- Firefox プロファイルを C:\PWR\profile へ展開します。
チェックにプロファイルを使用することは必須ではありませんが、特にプロキシを使用する場合やオートコンプリートパスワードを使用する場合はお勧めします。 Firefox のプロファイルを作成するには、次に示すステップに従います。
出力先ディレクトリを選択します。
プロキシ、ポップアップなどのオプションをカスタマイズするには、新しいプロファイルでFirefoxを起動する必要があります。
次に、service_installer.bat というバッチファイルを実行することによりサービスをインストールし、サービスを起動します。
net start PWRSRV
このタイミングでサーバ上で Selenium サーバが起動します。ただし、次のコマンドを使用してデバッグタスクを実行する場合は、(事前にサービスを停止して)手動で実行できます。
java -jar selenium-server-standalone-2.53.1.jar -firefoxProfileTemplate C:\selenium\firefox_profile -port 4444 -v
1.3 PWR セッションの記録
User experience 監視の前に、システムが実行する Web ブラウズアクションを記録する必要があります。
これには、モジュールライブラリ に置いている "PWR recorder" ユーティリティを利用します。
記録環境を開始するには、ダウンロードしたファイルを実行します。 環境が起動したら、次のボタンをクリックすることによりレコーダーにアクセスできます。
次のようなウインドウが表示されます。
ここから、監視したいウェブサイトをブラウズし、それぞれのステップのアクションがレコーダーに現れます。
記録を停止するには、レコーダーの右上にある次のボタンを利用します。
処理が完了したら、ページのチェックを実施できます。たとえば、特定のテキストの存在を確認して、読み込まれたページが正しいことを確認できます。これには、記録を行っているときに、ブラウザウィンドウのテキスト部分を右クリックし、オプション verifyText を選択します:
テキストチェックアクションを示す新しいステップがレコーダに表示されます。
Play Entire test suite ボタンで全体の流れを再現し、一通り成功するか確認できます。
一連の動作を確認したら、それを保存します(File -> Save Test Case)。 これが、Pandora コンソールで新たな Web 分析モジュールを作成するときにロードするファイルになります。
1.3.1 Pandora WUXのトランザクションセッションを記録する
Pandora WUX は、ウェブサイトのブラウジング監視を、それぞれのステップを表す複数のモジュールに分割することができます。
新たなコントロールポイントを追加しフェーズモジュールを生成するには、フェーズを開始したい場所で右クリックします。
次のテキストをコメントとして書きます。
phase_start:name_of_phase
フェーズは、次のコメントまでに存在するすべてのコマンドと時間の結果を含みます。
phase_end:name_of_phase
phase_start と phase_end の間に実行されるすべてのコマンドが、一つのフェーズとして扱われます。
1.4 Pandora FMS コンソールでの Web 分析モジュールの作成
ブラウジングセッションを記録したら、Pandora FMS コンソールのモジュールとして展開します。
そのためには、WUX 機能が有効化されたサーバで任意のエージェントにアクセスし、"Web analysis" モジュールを作成します。
"作成" を選択後、次のフォームに入力します。
- モジュール名(Module Name): モジュールWUX(親)、監視結果を持つすべてのサブモジュールはこの新しいモジュールに依存します。
- 対象ウェブサイト(Target Web site): 監視、パフォーマンス統計を取る対象のウェブサイト
- パフォーマンステスト実行(Run performance test): 閲覧可否の監視だけでなく、対象のウェブサイトへのアクセスのパフォーマンス統計も監視することを示します。
- データ保存(Historical data): 実行結果のモジュールデータを保存するかどうか。
- テキスト入力領域: このテキストボックスには、あらかじめ録画したブラウジングセッションのコンテンツファイルをコピー(またはアップロードします。
1.4.1 カスタムマクロ
カスタムマクロは、ブラウジングセッションのファイル内に設定した特定の文字列を、変化する特定の値に置き換える動作をします。
ウェブ解析モジュールの場合、この機能が改善され、値を日時の変数に変換できる 動的マクロ が利用可能になりました。
なぜこの機能が必要なのでしょうか?
会議室を予約するウェブアプリケーションの機能を、ブラウジングセッションを通して監視する必要があるとします。
固定の日時を設定すると、システムはおそらく予約を取り消すことになります。これは、ある時点で過去に予約されている可能性があるためです。たとえば、先週の予約と同じ予約をしようとしている可能性があります。
また、予約の実行が可能な期間を見つけることも必要です。例えば、システムは当月を超えないなど一定の期間内に部屋を予約する必要があります。
数日おきに設定を気にしたりマクロを編集するのを避け、動的マクロを使用することにより、テストを行う翌日の部屋を常に予約するようにシステムを設定することができます。
この機能を利用するには、次のような特定の形式を用います。
@DATE_FORMAT (ユーザ定義フォーマットでの現在の日付/時間) @DATE_FORMAT_nh (時間) @DATE_FORMAT_nm (分) @DATE_FORMAT_nd (日) @DATE_FORMAT_ns (秒) @DATE_FORMAT_nM (月) @DATE_FORMAT_nY (年)
"n" は、符号なしの数値(正の数)または負の数です。
書式は、perl の strftime に従います。
例:
@DATE_%Y-%m-%d %H:%M:%S @DATE_%H:%M:%S_300s @DATE_%H:%M:%S_-1h
1.5 データ表示
WUX で生成された情報は、次のようにモジュールに表示されます。モジュール一覧の中で階層表示を有効化することにより、情報をより分かりやすく表示します。
階層表示では、次のモジュールを見ることができます。
- module_Global_Status: ブラウズ完了の 全体の 状態を表示します。
- module_Global_Time: ブラウズ完了の 全体の 所要時間を表示します。
- module_Global_Screenshot: ブラウズでエラーとなった画面キャプチャで、エラーの場合のみ生成されます。
- module_Phase X: フェーズ名_Status: フェーズ X におけるブラウジングの状態を示します。
- module_Phase X: フェーズ名_Time: フェーズ X における所要時間を示します。
例: エラー画面キャプチャ
WUXServer によって生成された画面キャプチャを保存するには、データベースにて次の操作を行う必要があります。
alter table tagente_estado modify column datos mediumtext; alter table tagente_datos_string modify column datos mediumtext;
この操作を行わないと、スクリーンショットは、切り取られる可能性があります
エージェントの WUX セクションにアクセスすることによって、トランザクションとフェーズの追加の詳細を見ることができます。
上記のスクリーンショットでは、分割されている 2つのフェーズの時間差とフロントポータルへのアクセス統計を確認できます。
ウェブサイトの統計情報は、以下の概念でまとめられています。
- Stats_TT: ウェブサイトの取得にかかるトータルの時間。
- Stats_TDNS: 対象の IP アドレスを名前解決するためにかかるトータルの時間。
- Stats_TTCP: TCP の接続にかかった時間。
- Stats_TSSL: SSL のネゴシエーションにかかった時間。
- Stats_TST : データ転送が開始されるまでにかかった時間。
- Stats_TTC : データ転送にかかった時間。すべての処理にかかった時間の合計です。
- Stats_TTR : ページのコンテンツの転送にかかった時間。
- Stats_TTR_main: HTML コードを転送するのにかかった時間。
- Stats_TTR_image: 画像(png|jpg|jpeg|bmp|tiff|gif|webp|svg)の転送にかかった時間。
- Stats_TTR_css: スタイルシートを転送するのにかかった時間。
- Stats_TTR_js: JavaScript ファイルを転送するのにかかった時間。
1.6 ウェブ解析モジュールへのアラートの割り当て
ウェブ解析モジュールに関するアラートは、Pandora FMS の全体のアラートシステムと同様です。
互換性を保つため、次のようにウェブ分析モジュールによって生成されたサブ要素にアラートテンプレートを割り当てることをお勧めします。
- 全体のブラウジングの状態
- 時間の閾値へのアラート
- スクリーンショットのモジュールに対して、常に Email のテンプレートを設定
1.7 ダッシュボードの新たなウィジェット
ブラウジング情報を表示するために、新たに 2つのウィジェットが追加されました。
ブラウジングのフェーズの状態ウィジェット。
ウェブサイトの統計ウィジェット。