Pandora: Documentation ja: User Monitorization

From Pandora FMS Wiki
Jump to: navigation, search

Pandora FMS ドキュメント一覧に戻る

Contents

1 概要

ユーザエクスペリエンス監視は、ウェブブラウジングと Windows システムのデスクトップアプリケーションにおける操作を自動的に記録する仕組みから成ります。これらの記録は、ブラウザ上でのマウスクリック、テキスト入力、ウェブブラウジングでの検索、デスクトップ上でのアプリケーションを開くことなどです。記録した処理を自動的に実行し、処理にかかった時間などの結果を得ることができます。これを行うために、自動 UX 監視およびウェブエクスペリエンス監視(WUX)があります。

Pandora FMS バージョン 7.0NG 728 からは、UX および WUX 監視は Pandora FMS コンソールに統合されました。両方の機能が一つの画面上に存在します。

Wux ux unifcado.png

次に、WUX および UX 監視の違いと、それぞれの異なる機能について説明します。

1.1 UX および WUX 監視の違い

両方の監視の仕組みは、Pandora Web Robot Daemon (PWRD) システムを通してウェブブラウジングタスクを実行するために利用されます。

UX システムは、マシンにインストールされたソフトウエアエージェントによって監視を実現します。WUX は、Pandora FMS の内部に統合されたサーバを用いて監視をします。

Pandora Web Robot Daemon (PWRD) は、ウェブブラウジングセッションを自動実行するために必要なサービスです。これは、ユーザの Web ポータルをナビゲートするのに必要なアクションのリストを含むファイルを使用します。

加えて、UX 監視は、Windows デスクトップの自動化タスクを実行することができます。このタイプのタスクは、WUX では実行できません。

2 自動 UX 監視

2.1 概要

Pandora UX はウェブアクセスや Windows デスクトップアプリケーションの操作を自動的に実行するシステムで、Pandora FMS に実行結果や実行時間の結果をレポートし、エラーのスクリーンショットを表示してより直感的で視覚的なフィードバックを提供します。

Pandora UX は、自動処理のために 2つの技術を使っています。

  • Pandora ウェブロボット(PWR): ユーザの動作を再現したウェブナビゲーションを行います。テキストなどのコンテンツをチェックします。フラッシュを使っていないサイトやアプリの監視に適しています。バックグラウンドで素早く実行できるという利点があります。
  • Pandora デスクトップロボット(PDR): Windows や Linux でユーザの動作を再現します。より拡張性のある特定の監視をするために、Pandora UX はこのツールを用いて事前に用意したスクリプトを起動します。例えば、プラグインはハードウエアに展開でき、ユーザが使う機能が正しく動作しているかどうかを確認するために、ネットワークへ接続します。主な用途は、重いデスクトップアプリを監視することです。

また、アプリケーションの変更無しで行う、Selenium と互換性のないFlexテクノロジーアプリケーション(adobe)の監視の機能もあります。

すでに、自動的なタスク実行の仕組みがある場合は、Pandora UX は既存のスクリプトを利用しその実行を監視することもできます。

2.2 ウェブ UX (PWR)

2.2.1 PWR の展開

Pandora UX 設定。

2.2.1.1 Windows への Selenium サーバの展開

事前準備:

C:\PWR
C:\probes

ファイルの展開:

  • PWR_Server.zip を C:\PWR\ へ展開
  • Firefox プロファイルを C:\PWR\profile へ展開

チェックを実行するためのプロファイルはオプション」ですが、プロキシの利用やパスワードの自動入力を行う場合は必須です。 Firefox のプロファイルを作成するには、次のようにします。

Ux1.JPG
Ux2.JPG

ディレクトリを選択します。

Ux3.JPG

プロキシやポップアップなどのオプションを設定するために、新たなプロファイルで Firefox を起動します。

Ux4.JPG

BAT ファイル service_installer.bat を実行してサービスをインストールし、開始します。

net start PWRSRV

Selenium サーバが起動します。デバッグのために(サービスを中断した時は)手動でも実行できます。 次のコマンドを使います。

java -jar selenium-server-standalone-2.53.0.jar -firefoxProfileTemplate C:\selenium\firefox_profile -port 4444 -v

2.2.1.2 Linux への Selenium サーバの展開

事前準備:

リポジトリから依存パッケージをインストールするは次のようにします。

yum install xorg-x11-server-Xvfb
yum install java
yum install screen

リポジトリに無い場合は、rpm ファイルは以下から入手できます。 ftp://rpmfind.net/linux/centos/6.9/os/x86_64/Packages/xorg-x11-server-Xvfb-1.17.4-16.el6.centos.x86_64.rpm

rpm パッケージを手動でインストールするには次のようにします。

yum install xorg-x11-server-Xvfb-1.17.4-16.el6.centos.x86_64.rpm

必要なパッケージのインストールをしたら、install_pwrd.sh のインストールに進みます。デフォルトのパスは、/usr/share/pandora_server/util/pwrd/install_pwrd.sh で、次のように実行します。

/usr/share/pandora_server/util/pwrd/install_pwrd.sh --install

インストールが完了したらサービスを開始します。

/etc/init.d/pwrd start

以下のスクリプトで Selenium サーバを起動できます。

#!/bin/sh
# Monitoring selenium process
if grep selenium |grep -v grep |grep -v selenium.sh |wc -l `" != "0" ; then
   exit
else
   if grep Xvfb |grep -v grep | wc -l `" != "0" ; then
      Xvfb :99 -ac &
      export DISPLAY=:99
   fi
   export DISPLAY=:99
   java -jar /home/selenium/selenium-server-standalone-2.53.0.jar &
fi

または、手動で以下のコマンドを実行します。

# screen
$ Xvjb :99 -ac &
-> Press Enter to continue
$ export DISPLAY=:99
$ java -jar seleniumXXX.jar &
-> Press Ctrl + 'A' and then 'D' to disconnect from the virtual screen

2.2.2 Pandora ウェブロボットデーモン (PWRD)

Pandora Web Robot Daemon は、ユーザーの Web アクセスをナビゲートするために必要なアクションのリストを含むファイルを使用して、Webブラウザセッションを自動化するツールを提供するサービスです。

Pandora サーバに統合され、Enterprise サーバ(Linux) またはモジュールライブラリ(Windows) のインストール時に /usr/share/pandora_server/util/pwrd に置かれています。

以下が含まれます。

  • Windows 版 Firefox 46 のバイナリ
  • Web ブラウザセッションを実行するために、あらかじめビルドされたプロファイル
  • セッション自動化のためのサーバ (Selenium サーバ)

2.2.3 PWR セッションの記録

UX 監視を行う前に、セッションを記録する必要があります。利用する技術に応じて、さまざまは記録オプションがあります。

PWR で操作を記録するには、プラグインモジュールライブラリにある PWR レコーダが必要です。

https://pandorafms.com/library/pandora-ux-and-wux-pwr-recorder/

パッケージには以下が含まれます:

PWR_recorder.exe を実行します。


PWR recorder.PNG


レコーダが、あらかじめ構築した環境の Firefox を起動します。


PWR recorder main.png


Selenium IDE を起動したら、ウェブ操作を記録できます。

Ux10.JPG

これで、監視するウェブサイトをナビゲートし、各ステップに関連するさまざまなアクションを録画(記録)できます。 記録を停止するには、画面の右上にある以下のボタンをクリックします。

Ux11.JPG

アクションが完了したらページのチェックができます。例えば、正しいページが読み込まれたかをテキストで確認するには、記録中にブラウザウィンドウのテキスト部分を右クリックし、verifyText を選択します:

Ux13.JPG

テキストをチェックするステップが表示されます。

Ux14.JPG

Play entire test suite をクリックすることにより、全体のシーケンスが再現されます。正しく終了するか確認します。

Ux15.JPG

全体のブラウズのシーケンスの確認ができたら、Pandora UX 上で実行できるように保存します(File -> Save Test Case)。出力ファイルは HTML で、Pandora UX はそれを解釈します。

2.2.3.1 Pandora UX PWR でのトランザクションセッションの記録

PWR モード(Pandora ウェブロボット)の Pandora UX は、ブラウザによるそれぞれのステップの監視を複数のモジュールに分割できます。

新たな制御ポイントを挿入しフェーズモジュールを作成するには、フェーズがスタートする部分で右クリックします。

Ux16.JPG

新たなコメントとして、次のような記述を用います。

phase_start:name_of_phase

フェーズには、次のコメントまでのすべてのコマンドのタイミングと結果が含まれます。

phase_end:name_of_phase

phase_start と phase_end の間で実行されるすべてのコマンドが、1つのフェーズに含まれます。

2.2.4 PWR セッションの実行

2.2.4.1 標準実行

あらかじめ記録した PWR セッションを起動するには、pandora_ux_x64.exe を実行します。これは、https://pandorafms.com/library/user-experience-pandora-ux/ からダウンロードできます。

PWR 動作モードとセッションガイドラインを含んだファイルを選択します。エラーのスクリーンショットが、-folder パラメータで指定された場所に保存されます。実行に失敗したときに再実行するための -retries パラメータを利用することもできます。Windows での実行は次のようにします。

pandora_ux_x64.exe -exe PWR -script tests\std.html -retries 3

次のモジュールが返ります。

  • UX_Status_project_name: シーケンスが成功したかどうか
  • UX_Time_project_name: シーケンスを完了するのにかかった時間
  • UX_Snapshot_project_name: エラーが発生した直前のスクリーンショット

正常実行結果例:

<module>
   <name><![CDATA[UX_Status_std.html]]></name>
   <type>generic_proc</type>
   <![CDATA[1]]>
   <description><![CDATA[Test OK]]></description>
   <tags>UX</tags>
   <module_group>UX</module_group>
</module>
<module>
   <name><![CDATA[UX_Time_std.html]]></name>
   <type>generic_data</type>
   <![CDATA[16.317]]>
   <description><![CDATA[Test OK]]></description>
   <tags>UX</tags>
   <module_group>UX</module_group>
   <module_parent>UX_Status_std.html</module_parent>
</module>

エラー実行結果例:

<module>
   <name><![CDATA[UX_Status_std.html]]></name>
   <type>generic_proc</type>
   <![CDATA[0]]>
   <description><![CDATA[Failed to execute verifyText]]></description>
   <tags>UX</tags>
   <module_group>UX</module_group>
</module>
<module>
   <name><![CDATA[UX_Time_std.html]]></name>
   <type>generic_data</type>
   <![CDATA[15.463]]>
   <description><![CDATA[Failed to execute verifyText]]></description>
   <tags>UX</tags>
   <module_group>UX</module_group>
   <module_parent>UX_Status_std.html</module_parent>
</module>

<module>
   <name><![CDATA[UX_Snapshot_std.html]]></name>
   <type>async_string</type>
   <![CDATA[data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAA…JRU5ErkJggg==]]>
   <description><![CDATA[Image (last error)]]></description>
   <tags>UX</tags>
   <module_group>UX</module_group>
   <module_parent>UX_Status_std.html</module_parent>
</module>

すべて問題なければ、監視を実行するために実行コマンドラインを(マシンにインストール済の) Pandora エージェントに追加できます。例えば以下の通りです。

module_plugin C:\Users\artica\Documents\Producto\UX-Trans\UX\pandora_ux_x64.exe -exe PWR -script C:\Users\artica\Documents\Producto\UX-Trans\PWR\sesion.html -folder C:\probes

エージェントが Pandora FMS サーバへデータを送ると、関連するモジュールが作られます。モジュールの関係を見るには、階層モード を有効にします。

Ux33.JPG

前述の通り、実行結果(成功・失敗)は、UX_Status_session.html モジュールで、所要時間(秒)は、UX_Time_session.html モジュールで、失敗時のスクリーンショット(例では空です)は UX_Snapshot_session.html に保存されます。アラートを設定したり個々のグラフを表示したりするには、これらのモジュールを使います。

2.2.4.2 トランザクションベースの実行

前の章で説明した Pandora UX PWR トランザクションの記録がある場合、各フェーズを特定するのに必要なモジュールはシステムが生成します。これは実行は一つ前と関連性が無いことを意味します。対応する htmlファイル(この場合、異なるフェーズを含む)を指定します。

pandora_ux_x64.exe -exe PWR -script tests\std.html –folder C:\probes

次のモジュールが返されます。

  • UX_Time_project_name.phase_order
  • UX_Status_project_name.phase_order

フェーズでエラーが返る場合は、次のモジュールが作成されます。

  • UX_Snapshot_project_name.phase_order

エラー時のスクリーンショットが表示されます。

全体の状態モジュールが、次のラベルで返されます。

  • UX_Global_Time_project_name
  • UX_Global_Status_project_name
  • UX_Global_Snapshot_project_name

エラー時のスクリーンショットが表示されます。

エージェントの実行コマンド設定は前述の例に似ていますが、フェーズを含む html ファイルがあります。例えば次の通りです。

module_plugin C:\Users\artica\Documents\Producto\UX-Trans\UX\pandora_ux_x64.exe -exe PWR -script C:\Users\artica\Documents\Producto\UX-Trans\PWR\session_phases.html -folder C:\probes

Pandora FMS サーバにデータが届くと、モジュールとして表示されます。情報を見やすくするには、モジュールの 階層モード を有効にします。

Ux34.JPG

トランザクションおよびフェーズの詳細を確認するには、エージェントの UX にアクセスします。

Ux36.JPG

上記のスクリーンショットでは、記録が分割された 2つのフェーズ間の時間差が見られます。

以下の例は、ブラウジングの処理を示しています。我々のウェブサイトで実施されたさまざまな記事の参照と、5つのフェーズに分けた正確な所要時間の測定、改善できる部分やボトルネックが発生している場所を特定します。

Ux44.JPG
Ux45.JPG

2.2.4.3 データ取得

バージョン v1.20171003 の pandora_UX から、ウェブのブラウジング監視中にウェブコンテンツのデータを取得できるようになりました。

この機能を利用するには、Selenium IDE でテストケースにコメントとしていくつかのディレクティブを追加する必要があります。


PWR recorder getValue.png


この例では、監視の実行後に値を取得しています。そして、モジュール(getValue ディレクティブ)として Pandora に追加されます。

値を取得するプラグインを作成するステップは次の通りです。

  • Selenium IDE で、テストケースにコメントを追加します。
  • ディレクティブをコメントで記載します。

データ取得ディレクティブ:

getValue;モジュール名;モジュールタイプ;データ取得のための正規表現

各フィールドはセミコロンで区切ります。

  • getValue: UX システムのディレクティブです。
  • モジュール名: Pandora に表示されるモジュール名です。
  • モジュールタイプ: Pandora が取り扱えるデータタイプです。(generic_proc,generic_data,generic_data_string,async_proc,async_data,async_string...)
  • Perl 正規表現: perl の正規表現です。カッコ内のデータが取得されます。

以下に例を示します。

 <p>The temperature of the solar plate is: <span class="temperatura">54º C</span></p>

solar plate の温度を取得したい場合、正規表現を以下のようにします。

<span class="temperatura">(\d+\.*\,*\d*).*</span>

すると、システムは数値 "54"、または小数点以下の任意の数を取得します。

ディレクティブ全体は次のようになります。

getValue;Solar plate temperature;generic_data;<span class="temperatura">(\d+\.*\,*\d*).*</span>

2.3 デスクトップ UX (PDR)

2.3.1 PDR の展開 (Windows のみ)

PDR は Windows でのみ動作するように設計されています。Pandora エージェントで実行されるとき プロセスモード で実行する必要があります。サービスモードでは動作しません。デスクトップセッションのブロックはできませんので、仮想マシンの利用をお勧めします。

事前準備:

  • デスクトップモード、自動起動、自動ログインでの Windows OS

設定には以下を実行:

control userpasswords2

"このコンピュータを使うにはユーザ名とパスワードが必要(Users must enter a user name and password to use this computer)" のチェックを外します。

Ux5.JPG

環境設定するには、以下のディレクトリを作成します。

C:\PDR
C:\probes

"PDR.zip" ファイルを C:\PDR へ展開します。

レコーダを実行するには以下を実行します。

C:\PDR\pdr.cmd

2.3.2 PDR セッションの記録

事前準備:

  • 自動化システムのインストール(pdr.zip を任意のディレクトリへ展開)
  • レコーディングシステムを開始(pdr.cmd)
Ux17.JPG

起動したら、レコーディング環境に入ります。

Ux18.JPG

実行するアクションとゾーンを選択します。 最も基本的なものをいくつか挙げます。

一般的なアクション:

Ux19.JPG

フロー制御アクション:

Ux20.JPG

このスクリプト言語の詳細は、http://sikulix-2014.readthedocs.io/en/latest/index.html を参照してください。

プロジェクトが記録されると、次の要素を持つファイルが作成されます。

  • 自動実行コードを含んだ .py ファイル
  • ウェブブラウザ制御イメージ

実行の簡単な例としては、Windows の電卓が正しく動作するかどうかを確認します。 一度に1つずつスライドさせる方法を見てみましょう。

1. "click" アクションを選択し、アクションをしたいエリアを選択します。画面が "エリア選択" モードに変わります。

Ux21.JPG
Ux22.JPG

2. type アクションとテキスト "calc" を入力し、電卓が表示されるのを待ってクリックします。電卓が操作できるようになったら、次のようにアクションを入力します。

Ux23.JPG

3. 関連する部分クリックし、以前と同様の領域を選択します。

4. 最後に、保存して Run をクリックして実行します。

重要な注意点:

  • 記録環境内の任意の画像をダブルクリックすると、クリックする場所を正確に選択するなど、コントロールキャプチャの詳細を調整できます。
  • オペレーティングシステムの遅延によって実行が停止しないように、各クリックの間に「待機」アクションを入力することを強くお勧めします。
  • レコーダーはスクリーンショットのような領域を探しますので、ボタンがその上に置かれているときに強調表示されているものがあれば特に注意する必要があります(たとえば、カーソルがそれらの上にあるときに電卓のボタンがオレンジ色に変わります)。

記録を保存したフォルダに、python ファイルと画像ファイルがあります。

Ux24.JPG

注意:次のコードを使用して、PDR レコーディングエンジンからによるキャプチャ内容をカスタマイズできます。

## OPTIONAL ##capture file names
import shutil
file = "C:\probes\screenshot_prueba.sikuli.png"
focusWindow = App.focusedWindow()
regionImage = capture(focusWindow)
shutil.move(regionImage, file)


これは、指定したファイルに、指定した特定の時間のアクティブウインドウのスクリーンショットを作成します。 座標を使用してスクリーンショットをカスタマイズすることができます。次の構文を用います:

capture(x, y, w, h)

ここで、変数は以下の通りです。

X: キャプチャしたい領域の X 軸の位置

Y: キャプチャしたい領域の Y 軸の位置

W: キャプチャしたい幅

H: キャプチャしたい高さ



2.3.2.1 Pandora UX PDR でトランザクションセッションの記録

特別なセッションの記録は必要ありません。異なるスクリプトでセッションを記録するだけです。Pandora UX は、複雑なトランザクションの結果を返し整理します。次の段階では、正しく動作させるための実行の呼び出し方を見ていきます。

トランザクション処理を作成するために複数のレコーディングを行う場合は、記録時に探している要素が存在することに注意する必要があります。 単一のトランザクション処理ごとに、レコーディング内容を手動で実行することをお勧めします。手動で実行してみたあとに、アクションが期待どおりに行われるようにします。

次の例では、上記の例のプロセス次の段階を構成する記録プロセスを確認できます。電卓の結果をメモ帳にペーストします。以下に例を示します。

Ux40.JPG

ここでは、テキストファイルを特定の場所に保存し、前のファイルを上書きするという別の手順を示します。これにより、柔軟性が大幅に向上し、並行してファイルの監視が可能になり、ヘビー級のデスクトップアプリケーションに対するさまざまな情報を扱えます。この 3つ目のシーケンス例は、以下のステップからなります。

Ux43.JPG

2.3.3 PDR セッションの実行

2.3.3.1 標準実行

あらかじめ記録した PDR セッションを起動するには、pdr.cmd ファイルを置いた場所とともに動作モードを指定します。このファイルの引数は "-r"、セッションガイドラインを含むファイル(-script)を指定し、スクリーンショットが保存されるディレクトリ(-folder)の指定は "\"で終了します。実行失敗時にスクリプトを再実行するための -retries オプションも利用できます。

次の実行では、スクリーンショットはアクティブウインドウのみが対象です。

pandora_ux_x64 -exe C:\PDR\pdr -args -r -script C:\pandora_ux\calculadora.sikuli -folder C:\pandora_ux\ -ss_config active -retries 3

次のモジュールが返されます。

  • UX_Time_project_name
  • UX_Status_project_name
  • UX_Control_Snapshot_project_name (初回の実行時のみ)

フェーズでエラーが発生した場合は、次のモジュールが作成されます。

  • UX_Snapshot_project_name

エラー時には、アクティブウインドウの画像が表示されます(-ss_config が有効な場合)。

正常時の実行結果例:

<module>
   <name><![CDATA[UX_Status_calculadora.sikuli]]></name>
   <type>generic_proc</type>
   <![CDATA[1]]>
   <description><![CDATA[C:\pandora_ux\calculadora.sikuli execution completed Control snapshot rebuild ]]></description>
   <tags>UX</tags>
   <module_group>UX</module_group>
</module>
<module>
   <name><![CDATA[UX_Time_calculadora.sikuli]]></name>
   <type>generic_data</type>
   <![CDATA[20.204]]>
   <description><![CDATA[C:\pandora_ux\calculadora.sikuli execution completed Control snapshot rebuilt ]]></description>
   <tags>UX</tags>
   <module_group>UX</module_group>
   <module_parent>UX_Status_calculadora.sikuli</module_parent>
</module>
<module>
   <name><![CDATA[UX_Control_Snapshot_calculadora.sikuli]]></name>
   <type>async_string</type>
   <![CDATA[data:image/png;base64, IBCAIAAAAOCnfhAAAAAXNSR…/4x79e/7757f8H2C00s1C73yMAAAAASUVORK5CYII=]]>
   <description><![CDATA[Control image rebuilt]]></description>
   <tags>UX</tags>
   <module_group>UX</module_group>
   <module_parent>UX_Status_calculadora.sikuli</module_parent>
</module>

エラー時の実行結果例:

<module>
   <name><![CDATA[UX_Status_std.html]]></name>
   <type>generic_proc</type>
   <![CDATA[0]]>
   <description><![CDATA[Failed to execute verifyText]]></description>
   <tags>UX</tags>
   <module_group>UX</module_group>
</module>
<module>
   <name><![CDATA[UX_Time_std.html]]></name>
   <type>generic_data</type>
   <![CDATA[15.463]]>
   <description><![CDATA[Failed to execute verifyText]]></description>
   <tags>UX</tags>
   <module_group>UX</module_group>
   <module_parent>UX_Status_std.html</module_parent>
</module>
<module>
   <name><![CDATA[UX_Snapshot_std.html]]></name>
   <type>async_string</type>
   <![CDATA[data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAA…JRU5ErkJggg==]]>
   <description><![CDATA[Image (last error)]]></description>
   <tags>UX</tags>
   <module_group>UX</module_group>
   <module_parent>UX_Status_std.html</module_parent>
</module>

すべて問題なければ、Windows マシンの Pandora FMS エージェントのプラグインとしてコマンド設定を行います。以下に例を示します。(1行です)

module_plugin C:\Users\artica\Documents\Producto\UX-Trans\ux\pandora_ux_x64.exe -exe C:\PDR\pdr.cmd -args -r -script C:\PDR\calc.sikuli -folder C:\PDR\ -ss_config active -checkpoint -post "taskkill /F /IM calc.exe"

ご覧の通り、実行にはオプションが追加されています。パラメータ --checkpoint は、エラーが無かったとしても最終結果のスクリーンショットを表示します。-post は、セッションの実行が完了した後にアクションを実行します。この場合、ウインドウを多重に開くなどを防ぐために、電卓のプロセスを終了します。

エージェントに module_plugin の設定ができたら、プロセスモードでの起動準備完了です。管理者権限のコマンドラインから以下を実行します。

"C:\Program Files\pandora_agent\PandoraAgent.exe" --process

PandoraAgent.exe の場所はインストールに依存します。

起動すると、どのようにアクションが記録に従って自動的に実行されるかを見ることができます。ここからは、エージェントのプロセスは終了してはいけません。 また、リモートデスクトップで開始したセッションや実行は中断してはいけません。マシンには触れない状態にしておきます。これが、仮想マシンが必要である理由です。

Imagen nueva pdr.png

Info.png

他の自動監視のテストがある場合、次のようにしてPandora FMS に読み込むことができます。

 


pandora_ux.64 -exe <exe of the aumotatic monitoring system> -args <system parameters> -script <file PAHT of the test>

2.3.3.2 トランザクションベースの実行

いろいろな処理が記録され、正しく機能することが確認されたら、PDR で以下を実行します。

C:\Users\artica\Documents\Producto\UX-Trans\ux\pandora_ux_x64.exe -exe C:\PDR\pdr.cmd -args -r -t calculadora_trans -script C:\PDR\calc.sikuli,C:\PDR\savecalc.sikuli,C:\PDR\savefile.sikuli -folder C:\PDR\ -ss_config active

見ての通り、-scrit のパラメータで新たなスクリプトの場所を指定する必要があるだけです。前のスクリプトとはカンマで区切ります。また、-t パラメータですべての異なるフェーズをカバーするトランザクションの名前を指定します。より多くのフェーズがあったとしても設定の考え方は同じです。以下に例を示します。

pandora_ux_x64.exe -exe C:\PDR\pdr.cmd -args -r -t proceso_transaccional -script C:\PDR\script1,C:\PDR\script2,C:\PDR\script3,C:\PDR\script4 -folder C:\PDR\ -ss_config active

次の行をエージェントの設定ファイルに追加します。

module_plugin C:\Users\artica\Documents\Producto\UX-Trans\ux\pandora_ux_x64.exe -exe C:\PDR\pdr.cmd -args -r -t calculadora_trans -script C:\PDR\calc.sikuli,C:\PDR\savecalc.sikuli,C:\PDR\savefile.sikuli -folder C:\PDR\ -ss_config active -checkpoint -post "taskkill /F /IM calc.exe"

-checkpoint パラメータで、それぞれのフェーズの最終スクリーンショットを Pandora コンソールに表示することができます。

フェーズごとに、以下のモジュールが返ります。

  • UX_Time_project_name.phase_order
  • UX_Status_project_name.phase_order

フェーズでエラーになった場合は、次のモジュールが作成されます。

  • UX_Snapshot_project_name.phase_order

エラーの場合は、エラーが発生した時点の画像が表示されます。

次の名前で全体のまとめのモジュールも返されます。

  • UX_Global_Time_project_name
  • UX_Global_Status_project_name
  • UX_Global_Snapshot_project_name

エージェントがプロセスモードで動き、モジュールを Pandora FMS が受け取ると、コンソールで見ることができます。繰り返しになりますが、階層モード で、モジュール間の関係とフェーズ間の区切りがわかりやすく表示されます。

Ux41.JPG

フェーズとタイムチャートの詳細は、トランザクションの画面で見ることができます。

Ux42.JPG

エラーのスクリーンショットは、UX クライアント(PWR)と PWR サーバが共に同じマシンで動作しているときにのみ表示されます。そうでない場合は、Pandora で画像を表示するために、PWR サーバの画像配布ディレクトリがクライアントからアクセスできる必要があります。

同じモジュールを使用して、アラートを作成し、システムの時間経過に伴う変化を表示するために、履歴表示やグラフ生成ができます。

システムを再起動したときなどに実行の中断を避けるために、システムが起動したときに、Pandora エージェントをプロセスモードで起動させるプログラムタスクを作成することと、パスワード無しでマシンへ自動ログインし、エージェントが確実に実行されるようにすることをお勧めします。

Ux26.JPG
Ux27.JPG
Ux28.JPG
Ux29.JPG
Ux30.JPG
Ux31.JPG
Ux32.JPG

これにより、対象の Windows インスタンスでは、マシンが再起動しても Pandora FMS エージェントが常にプロセスモードで実行され、常にPDR プローブによって収集されたデータを送信できることが保証されます。

さまざまなデスクトップシステムでは問題が発生する可能性があります。そのため、前述の設定を使い、デスクトップモードで自動起動を単一のデスクトップ使用することをお勧めします。

3 WEB User experience トランザクション監視 (WUX)

3.1 概要

Pandora WUX は Pandora FMS の内部コンポーネントで、Web ブラウザの操作を自動的に行うものです。

動作させるためには、WUXServer が Pandora Web Robot Daemon (PWRD) サーバに接続する必要があります。

PWRD は、Web サイトでユーザが事前に実行したアクションを一つ一つ再実行するサービスです。

そのために、PWRD は、Selenium の自動実行技術を用います。

したがって、ユーザが Web サイトをに対して実行した操作を Pandora WUXServer に示すことが必要です。

このデータで、Pandora WUXServer は、所要時間、問題が発生したスクリーンショットといった、パフォーマンスレポートを生成します。

Pandora WUXServer は、ブラウジングセッションをフェーズに分割できます。これにより、表示を単純化し、ボトルネックの分析の手助けになります。


Wux simple.png


3.2 設定

Pandora FMS サーバで WUXServer を有効化するには、Pandora Web Robot service (PWRD) を設定する必要があります。

3.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 サーバ)

3.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 サーバに割り当てられます。

3.2.2.1 PWRD の "Standalone" モード

Standalone モードの PWRD は、デーモンを起動し、WUXServer を通してユーザが要求したアクションを実行します。


Wux pwrd standalone.png


# 起動 
/etc/init.d/pwrd start
# 状態確認
/etc/init.d/pwrd status
# 停止
/etc/init.d/pwrd stop


3.2.2.2 PWRD の "HUB" モード

集中モードまたは HUB は、ロードバランサーとしてデーモンを起動します。この動作モードでは、システムに登録されたすべてのノード間で負荷をバランシングし、負荷に応じてセッションの実行割り当てをします。

HUB の管理コンソールにアクセスすることにより、HUB の状態を常に確認することができます。

http://hub:4444/grid/console


Wux pwrd hub.png


# 起動
/etc/init.d/pwrd start-hub
# 状態確認
/etc/init.d/pwrd status-hub
# 停止
/etc/init.d/pwrd stop-hub


3.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


3.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

3.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 から取得できます。

3.2.3.1 Windows システムにおける PWRD の展開

事前準備:

以下のファイルを準備します。

  • PWR_Server.zip を C:\PWR\ へ展開します。
  • Firefox プロファイルを C:\PWR\profile へ展開します。

チェックにプロファイルを使用することは必須ではありませんが、特にプロキシを使用する場合やオートコンプリートパスワードを使用する場合はお勧めします。 Firefox のプロファイルを作成するには、次に示すステップに従います。


Ux1.JPG


Ux2.JPG


出力先ディレクトリを選択します。


Ux3.JPG


プロキシ、ポップアップなどのオプションをカスタマイズするには、新しいプロファイルでFirefoxを起動する必要があります。


Ux4.JPG


次に、service_installer.bat というバッチファイルを実行することによりサービスをインストールし、サービスを起動します。

net start PWRSRV

このタイミングでサーバ上で Selenium サーバが起動します。ただし、次のコマンドを使用してデバッグタスクを実行する場合は、(事前にサービスを停止して)手動で実行できます。

java -jar selenium-server-standalone-2.53.1.jar -firefoxProfileTemplate C:\selenium\firefox_profile -port 4444 -v

3.3 PWR セッションの記録

User experience 監視の前に、システムが実行する Web ブラウズアクションを記録する必要があります。

これには、モジュールライブラリ に置いている "PWR recorder" ユーティリティを利用します。

記録環境を開始するには、ダウンロードしたファイルを実行します。 環境が起動したら、次のボタンをクリックすることによりレコーダーにアクセスできます。


Iniciar grabador.png


次のようなウインドウが表示されます。


Ux10.JPG


ここから、監視したいウェブサイトをブラウズし、それぞれのステップのアクションがレコーダーに現れます。

記録を停止するには、レコーダーの右上にある次のボタンを利用します。


Ux11.JPG


処理が完了したら、ページのチェックを実施できます。たとえば、特定のテキストの存在を確認して、読み込まれたページが正しいことを確認できます。これには、記録を行っているときに、ブラウザウィンドウのテキスト部分を右クリックし、オプション verifyText を選択します:


Ux13.JPG


テキストチェックアクションを示す新しいステップがレコーダに表示されます。


Ux14.JPG


Play Entire test suite ボタンで全体の流れを再現し、一通り成功するか確認できます。


Ux15.JPG


一連の動作を確認したら、それを保存します(File -> Save Test Case)。 これが、Pandora コンソールで新たな Web 分析モジュールを作成するときにロードするファイルになります。

3.3.1 Pandora WUXのトランザクションセッションを記録する

Pandora WUX は、ウェブサイトのブラウジング監視を、それぞれのステップを表す複数のモジュールに分割することができます。

新たなコントロールポイントを追加しフェーズモジュールを生成するには、フェーズを開始したい場所で右クリックします。


Pwrd recorder transaction.PNG


次のテキストをコメントとして書きます。

phase_start:name_of_phase

フェーズは、次のコメントまでに存在するすべてのコマンドと時間の結果を含みます。

phase_end:name_of_phase

phase_start と phase_end の間に実行されるすべてのコマンドが、一つのフェーズとして扱われます。


Pwrd recorder transaction2.PNG


3.4 Pandora FMS コンソールでの Web 分析モジュールの作成

ブラウジングセッションを記録したら、Pandora FMS コンソールのモジュールとして展開します。

そのためには、WUX 機能が有効化されたサーバで任意のエージェントにアクセスし、"Web analysis" モジュールを作成します。

Wux module.PNG



"作成" を選択後、次のフォームに入力します。

Wux new module form.PNG
  • モジュール名(Module Name): モジュールWUX(親)、監視結果を持つすべてのサブモジュールはこの新しいモジュールに依存します。
  • 対象ウェブサイト(Target Web site): 監視、パフォーマンス統計を取る対象のウェブサイト
  • パフォーマンステスト実行(Run performance test): 閲覧可否の監視だけでなく、対象のウェブサイトへのアクセスのパフォーマンス統計も監視することを示します。
  • データ保存(Historical data): 実行結果のモジュールデータを保存するかどうか。
  • テキスト入力領域: このテキストボックスには、あらかじめ録画したブラウジングセッションのコンテンツファイルをコピー(またはアップロードします。

3.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

3.5 データ表示

WUX で生成された情報は、次のようにモジュールに表示されます。モジュール一覧の中で階層表示を有効化することにより、情報をより分かりやすく表示します。


WUX modules.PNG



階層表示では、次のモジュールを見ることができます。

  • module_Global_Status: ブラウズ完了の 全体の 状態を表示します。
  • module_Global_Time: ブラウズ完了の 全体の 所要時間を表示します。
  • module_Global_Screenshot: ブラウズでエラーとなった画面キャプチャで、エラーの場合のみ生成されます。
  • module_Phase X: フェーズ名_Status: フェーズ X におけるブラウジングの状態を示します。
  • module_Phase X: フェーズ名_Time: フェーズ X における所要時間を示します。

例: エラー画面キャプチャ


Wux screenshot.png


Template warning.png

注意: Pandora FMS 7.0NG 712 以前のバージョンからアップグレードした場合は、少し変更する必要があります。

 


WUXServer によって生成された画面キャプチャを保存するには、データベースにて次の操作を行う必要があります。

alter table tagente_estado modify column datos mediumtext;
alter table tagente_datos_string modify column datos mediumtext;

この操作を行わないと、スクリーンショットは、切り取られる可能性があります

エージェントの WUX セクションにアクセスすることによって、トランザクションとフェーズの追加の詳細を見ることができます。


WUX.PNG



上記のスクリーンショットでは、分割されている 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 ファイルを転送するのにかかった時間。

3.6 ウェブ解析モジュールへのアラートの割り当て

ウェブ解析モジュールに関するアラートは、Pandora FMS の全体のアラートシステムと同様です。

互換性を保つため、次のようにウェブ分析モジュールによって生成されたサブ要素にアラートテンプレートを割り当てることをお勧めします。

  • 全体のブラウジングの状態
  • 時間の閾値へのアラート
  • スクリーンショットのモジュールに対して、常に Email のテンプレートを設定

3.7 ダッシュボードの新たなウィジェット

ブラウジング情報を表示するために、新たに 2つのウィジェットが追加されました。

ブラウジングのフェーズの状態ウィジェット。


Widget wux fases.PNG


ウェブサイトの統計ウィジェット。


Widget wux stats.PNG