21.6. Apache、EWS/Tomcat、および JBoss EAP 5 への応答時間監視の設定
応答時間監視は、デフォルトではアプリケーションや Web サーバーから利用できません。特別なモジュールをインストールして、JBoss ON が応答時間メトリクスを収集するようにする必要があります。
モジュールのインストール後に、リソースに対して HTTP メトリックを有効にできます。
21.6.1. parameters for User-Defined <filter>s
管理者は、アプリケーションおよび Web サーバーに対して応答時間メトリックを収集する方法のルールを設定できます。これは応答時間 フィルター です。
JBoss、Apache、および EWS/Tomcat に応答時間監視を行うには、応答時間フィルターがインストール済みである必要があります。これらのデフォルトフィルターに追加して、リソースのモニタリングをカスタマイズできます。
パラメーター
|
description
|
---|---|
chopQueryString
|
このパラメーターが true に設定されている場合、クエリーの URI 部分のみがログに記録されます。それ以外の場合は、クエリー行全体がログに記録されます。デフォルトは true です。
|
logDirectory
|
ログファイルが書き込まれるディレクトリー。デフォルト設定は {
jboss.server.log.dir}/rt/ (通常は server/xxx/log/rt )です。このプロパティーが定義されていない場合は、フォールバックは {java.io.tmpdir}/rt/ (/tmp/ on)になります。 UNIX®および ~/Application Data/Local Settings/Temp - TEMP 環境変数が使用されることを確認します。この init パラメーターを指定すると、ディレクトリーは作成 rt/ されませんが、指定したディレクトリーは文字どおりに取得されます。
|
logFilePrefix
|
ログファイルの前に配置される接頭辞。デフォルトは空の文字列です。
|
dontLogRegEx
|
クエリー文字列に適用される正規表現。See java.util.regex.Pattern.パラメーターが指定されていない場合や、空の文字列は適用されません。
|
matchOnUriOnly
|
dontLogRegEx はクエリーの URI 部分(true)またはクエリー文字列(false)全体に適用される必要があります。デフォルトは true です。
|
timeBetweenFlushesInSec
|
ログ行はデフォルトでバッファーされます。指定の秒数を超え、新しいリクエストを受け取ると、(を参照)後にフラッシュする行数がまだ到達していない場合でも、バッファーされた行はディスクにフラッシュされます。デフォルト値は 60 秒(1 分)です。
|
flushAfterLines
|
ログ行はデフォルトでバッファーされます。指定された行がバッファーされると、ディスクにフラッシュされます。デフォルト値は 10 行です。
|
maxLogFileSize
|
ログファイルの最大許容サイズ(バイト単位)。ログファイルがこの制限を超えると、フィルターは切り捨てられます。デフォルト値は 5242880(5 MB)です。
|
vHostMappingFile
|
このプロパティーファイルは、Tomcat プロセスクラスパスに存在する必要があります。たとえば、
conf/vhost-mappings.properties ファイルではです。ファイルには、「着信」 vhost(サーバー名)から応答時間のログファイル名の接頭辞として使用する vhost へのマッピングが含まれます。マッピングがない場合(ファイルまたはエントリーの応答時間が設定されていない場合)、受信 vhost(サーバー名)が使用されます。例:
pickeldi.users.acme.com=pickeldi pickeldi= %HOST%=
最初のマッピングでは、受信 vhost が 'host1.users.acme.com' の場合は、ログファイル名に「host1」の vhost をプレフィックスとして取得し、コンテキストルート部分から _ で区切ります。2 つ目のマッピングでは、「incoming」 vhost が「host1」で、接頭辞なし、_ を使用しない場合が示されます。3 つ目のマッピングは、特別な左端トークンである%HOST%' を使用します。このマッピングでは、「incoming」 vhost が localhost の表現である場合、接頭辞なし、_ を使用すべきです。
%host% は、InetAddress.getLocalHost()の実装によって返されるホスト名、または正規のホスト名または IP アドレスに一致します。
2 つ目のマッピングは空の右側の例ですが、vhost も提供しました。
これはワンタイム置換です。1 行目の結果が 2 番目の行に適用されるという形式の再帰はありません。
|
21.6.2. JBoss EAP/AS 5 への応答時間フィルターのインストール
JBoss EAP/AS 5 サーバーの応答時間メトリクスを収集するには、最初に応答時間フィルターのサーブレット JAR をインストールし、Web サーバーがそのサーバーを使用するように設定します。
- JBoss ON UI から JBoss の Response Time パッケージをダウンロードします。注記これは、wget以下のコマンドを使用してコマンドラインから行うこともできます。
[root@server ~]# wget http://server.example.com:7080/downloads/connectors/connector-rtfilter.zip
- トップメニューの Administration タブをクリックします。
- 左側の Configuration メニューボックスで、Downloads 項目を選択します。
- connector-rtfilter.zip リンクをクリックしてファイルを保存します。
- コネクターの展開
[root@server ~]# unzip connector-rtfilter.zip
- プロファイルの
lib/
ディレクトリーにrhq-rtfilter-
バージョン.jar
ファイルをコピーします。[root@server ~]# cp connector-rtfilter/rhq-rtfilter-version.jar JbossHomeDir/server/profileName/lib/
JBoss EAP/AS にはcommons-logging.jar
ファイルがすでに含まれており、応答時間のフィルターにも必要です。 - 次に、EAP/AS インスタンス
web.xml
用に設定します。応答時間フィルターは、EAP/AS インスタンスがホストするすべての Web アプリケーションに対してグローバルにデプロイすることも、特定の Web アプリケーションに対して設定することもできます。これをグローバルに設定するには、グローバルweb.xml
ファイルを編集します。[root@server ~]# vim JbossHomeDir/server/configName/deployers/jbossweb.deployer/web.xml
単一の Web アプリケーション用に設定するには、任意の Web アプリケーションのweb.xml
ファイルを編集します。[root@server ~]# vim WARLocation/WEB-INF/web.xml
- フィルターを追加し、設定に応じてマッピング要素をファイルにフィルターします。これにより、応答時間フィルターが有効になります。応答時間フィルターが機能するために必要となるのは、オプションのパラメーターを除いたデフォルトの <filter> 要素のみです。ただし、パラメーターのコメントを解除して、必要に応じて設定できます。異なるパラメーターについては、で説明してい 「parameters for User-Defined <filter>s」 ます。
<filter> <filter-name>RhqRtFilter</filter-name> <filter-class>org.rhq.helpers.rtfilter.filter.RtFilter</filter-class> <!-- Optional parameters. <init-param> <param-name>chopQueryString</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>logDirectory</param-name> <param-value>/tmp</param-value> </init-param> <init-param> <param-name>logFilePrefix</param-name> <param-value>localhost_7080_</param-value> </init-param> <init-param> <param-name>dontLogRegEx</param-name> <param-value></param-value> </init-param> <init-param> <param-name>matchOnUriOnly</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>timeBetweenFlushesInSec</param-name> <param-value>73</param-value> </init-param> <init-param> <param-name>flushAfterLines</param-name> <param-value>13</param-value> </init-param> <init-param> <param-name>maxLogFileSize</param-name> <param-value>5242880</param-value> </init-param> --> </filter> <!-- Use this only when also enabling the RhqRtFilter in the filter <filter-mapping> <filter-name>RhqRtFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> -->
- JBoss EAP/AS サーバーを再起動して、新しい
web.xml
設定を読み込みます。 - の説明に従って HTTP メトリクスを有効にし 「HTTP 応答時間メトリクスの設定」、JBoss ON はアプリケーションサーバーで応答時間メトリクスをチェックします。
21.6.3. 応答時間メトリクス向けの Apache サーバーの設定
- Response Time モジュールを使用するには、Apache サーバーが共有オブジェクトサポートでコンパイルされている必要があります。Red Hat Enterprise Linux システムおよび EWS サーバーでは、これはデフォルトで有効になります。共有オブジェクトサポートで Apache サーバーがコンパイルされていることを確認するには、apachectl -l コマンドを使用してコンパイル済みモジュールを一覧表示し、
mod_so.c
モジュールを探します。[root@server ~]# apachectl -l Compiled in modules: core.c prefork.c http_core.c mod_so.c
- -enable-module=so
オプションを使用します。[jsmith@server ~]$ ./configure - -enable-module=so [jsmith@server ~]$ make install
- JBoss ON UI から Apache バイナリーをダウンロードします。
- JBoss ON UI にログインします。
https://server.example.com:7080
- トップメニューの Administration タブをクリックします。
- 左側の Configuration メニューボックスで、Downloads 項目を選択します。
- connector-apache.zip リンクをクリックしてファイルを保存します。
- Apache コネクターを展開します。
[root@server ~]# unzip connector-apache.zip
- Response Time モジュールをコンパイルします。注記apxs ユーザー PATH にインストールされ、インストールされている make 必要があります。
[root@server ~]# cd apacheMOduleRoot/apache-rt/sources [root@server sources]# chmod +x build_apache_module.sh [root@server sources]# ./build_apache_module.sh 2.x apache_install_directory/bin/apxs
- 次に、Apache サーバーに Response Time モジュールをインストールします。
[root@server sources]# cp apache2.x/.libs/mod_rt.so apache_install_directory/modules
httpd.conf
ファイルを開きます。例:[root@server ~]# vim apache_install_directory/conf/httpd.conf
- この行をファイルの最後に追加して、Apache の
httpd.conf
ファイルでモジュールを有効にします。LoadModule rt_module modules/mod_rt.so LogFormat "%S" rt_log
ログ形式を設定する場合、変数に %S は大文字 S が含まれます。 - メインの Apache サーバーに応答時間ロギングを設定するには、ファイルのトップレベルに以下の行を追加します。
CustomLog logs/myhost.com80_rt.log rt_log
仮想ホストの応答時間ロギングを設定するには、<VirtualHost> ブロック内の以下の行を追加します。CustomLog logs/myhost.com8080_rt.log rt_log
メインサーバーと仮想ホストで応答時間ログファイルの名前が異なることを確認します。host _port などのファイル名を形成するのに使用する ServerName ディレクティブのホストおよびポートを使用することを検討してください_rt.log
。 - Apache サーバーを再起動します。
[root@server ~]# apachectl -k restart
- Response Time モジュールが正常にインストールされたことを確認するには、CustomLog ディレクティブで設定した応答時間ログファイルが存在することを確認します。
- の説明に従って HTTP メトリクスを有効にし 「HTTP 応答時間メトリクスの設定」、JBoss ON はアプリケーションサーバーで応答時間メトリクスをチェックします。
21.6.4. Tomcat に対する応答時間フィルターのインストール
- JBoss ON UI から Tomcat の Response Time パッケージをダウンロードします。
- トップメニューの Administration タブをクリックします。
- 左側の Configuration メニューボックスで、Downloads 項目を選択します。
- connector-rtfilter.zip リンクをクリックしてファイルを保存します。
- 応答時間コネクターの展開
unzip connector-rtfilter.zip
パッケージには 2 つの JAR ファイル(version.jar
およびcommons-logging-
versionrhq-rtfilter-
)が含まれ.jar
ます。Tomcat 5 サーバーはcommons-logging-
バージョン.jar
ファイルのみを使用しますが、Tomcat 6 サーバーには両方のファイルが必要です。 - 適切な JAR ファイルを Tomcat 設定ディレクトリーにコピーします。ディレクトリーの場所は、Tomcat または JBoss インスタンス(組み込み Tomcat の場合)によって異なります。たとえば、スタンドアロン Tomcat 5.5 で以下を行います。
cp commons-logging-version.jar /var/lib/tomcat5/server/lib/
Tomcat 6 の場合:cp rhq-rtfilter-version.jar /var/lib/tomcat6/lib/ cp commons-logging-version.jar /var/lib/tomcat6/lib/
たとえば、埋め込み Tomcat インスタンスでは以下のようになります。cp rhq-rtfilter-version.jar JBoss_install_dir/server/default/deploy/jboss-web.deployer/ cp commons-logging-version.jar JBoss_install_dir/server/default/deploy/jboss-web.deployer/
web.xml
ファイルを開き、フィルター定義を追加します。ファイルの場所は、サーバーインスタンスや、スタンドアロンサーバーか組み込みサーバーかによって異なります。一般的な場所がいくつか一覧表示され 表21.4「web.xml 設定ファイルの場所」 ます。- Tomcat サーバーに Response Time フィルターを設定するために、<filter> または <filter-mapping> エントリーを追加します。a <filter> または a のどちらかは <filter-mapping> 使用できますが、両方を使用することはでき ません。最も基本的なフィルター定義は、<filter> 要素の Response Time フィルター名とクラスのみを参照します。これにより、すべてのデフォルト設定で応答時間フィルターが読み込まれます。
<filter> <filter-name>RhqRtFilter </filter-name> <filter-class>org.rhq.helpers.rtfilter.filter.RtFilter </filter-class> </filter>
フィルターの定義は、<init-param 要素を追加することでユーザー定義の設定値で拡張できます。これにより、すべてのデフォルト設定で応答時間フィルターが読み込まれます。<filter> <filter-name>RhqRtFilter </filter-name> <filter-class>org.rhq.helpers.rtfilter.filter.RtFilter </filter-class> <init-param> <description>Name of vhost mapping file. This properties file must be in the Tomcat process classpath.</description> <param-name>vHostMappingFile</param-name> <param-value>vhost-mappings.properties</param-value> </init-param> ... </filter>
利用可能なパラメーターはに記載されてい 「parameters for User-Defined <filter>s」 ます。監視される URL を照合するために使用する <filter-map> エントリーを設定します。<filter-mapping> <filter-name>RhqRtFilter </filter-name> <url-pattern>/* </url-pattern> </filter-mapping>
注記設定されたフィルターの前に Response Time フィルターを付け、応答時間メトリックに他の応答時間の合計合計が含まれるようにします。 - Tomcat インスタンスを再起動して、新しい設定を読み込む。
- の説明に従って HTTP メトリクスを有効にし 「HTTP 応答時間メトリクスの設定」、JBoss ON はアプリケーションサーバーで応答時間メトリクスをチェックします。
Tomcat バージョン | 埋め込みサーバータイプ | ファイルの場所 |
---|---|---|
Tomcat 6 | スタンドアロンサーバー | /var/lib/tomcat6/webapps/project/WEB-INF/web.xml |
Tomcat 5 | スタンドアロンサーバー | /var/lib/tomcat5/webapps/project/WEB-INF/web.xml |
Tomcat 6 | EAP 5 | JBOSS_HOME/server/config/deployers/jbossweb.deployer/web.xml |
Tomcat 6 | JBoss 4.2、JBoss EAP4 | JBOSS_HOME/server/config/deploy/jboss-web.deployer/conf/web.xml |
Tomcat 5.5 | JBoss 4.0.2 | JBOSS_HOME/server/config/deploy/jbossweb-tomcat55.sar/conf/web.xml |
Tomcat 5.0 | JBoss 3.2.6 | JBOSS_HOME/server/config/deploy/jbossweb-tomcat50.sar/conf/web.xml |
Tomcat 4.1 | JBoss 3.2.3 | JBOSS_HOME/server/config/deploy/jbossweb-tomcat41.sar/web.xml |
21.6.5. HTTP 応答時間メトリクスの設定
応答時間メトリックの設定は、イベントの設定に類似しています。JBoss ON エージェントは Web サーバーが保持する特定のログファイルをポーリングして、Web サーバーが提供する異なるリソースのパフォーマンス時間を特定します。
- Web サーバーの応答時間フィルターをインストールします。Apache では、フィルターをインストールするだけです。Tomcat の場合は、
web.xml
ファイルにフィルターエントリーを設定するために追加の設定が必要になります。必要な場合は、web.xml
ファイルにフィルターエントリーを設定します。を参照してください 「Apache、EWS/Tomcat、および JBoss EAP 5 への応答時間監視の設定」。 - トップメニューの Inventory タブをクリックします。
- 左側の Servers メニューテーブルを選択し、Web アプリケーションに移動し、応答時間監視を実行する Web アプリケーションコンテキストを選択します。
- web アプリケーションコンテキストリソースの Connection Settings タブをクリックし、Response Time configuration セクションまでスクロールします。
- Web サーバーの応答時間プロパティーを設定します。エージェントは、Web サーバーが応答時間データを記録するのに使用するログファイルを認識する必要があります。オプションで、サーバーは収集したデータに対して特定の変換を実行できます。
- 応答時間ログは、Web サーバーが処理するすべてのリソースの時間を記録します。これには、CSS ファイルやアイコン、背景イメージなどのサポートファイルが含まれます。これらのリソースは、Response Time Url Excludes フィールドの応答時間の計算から除外できます。
- URL で渡された異なるパラメーターを使用して同じページにアクセスできます。この Response Time Url Transforms フィールドは、渡されたパラメーターのストライピングや置き換えに使用できる正規表現を提供します。
- Save ボタンをクリックします。
- Web サーバーリソースエントリーの Monitoring タブをクリックします。
- Schedules サブタブをクリックします。
- HTTP Response Time メトリクスを選択します。このメトリクスは呼び出し時間 タイプ です。
- 一覧の Enable 下部にあるをクリックします。