4.4 ZENworks Reporting設定の管理

4.4.1 ログ設定の管理

jasperserver.logファイルは、次のパスにあります。

  • Windowsの場合: %ZRS_HOME%\js\apache-tomcat\webapps\jasperserver-pro\WEB-INF\logs

  • Linuxの場合: /opt/novell/zenworks-reporting/js/apache-tomcat/webapps/jasperserver-pro/WEB-INF/logs

ログ設定を管理するには:

  1. 管理]>[Server Settings (サーバ設定)]>[ログ設定の順にクリックします。

  2. ログ設定ページで、ドロップダウンリストを使用して、ログに記録する各クラスのログレベルを変更します。

    4つのログレベルは、ロガーによって記録されるイベントのタイプを示します。

    設定

    情報のレベル

    ERROR

    プログラムの重大な欠陥を示す最小限の情報をログに書き込みます。

    WARN

    エラーおよび警告メッセージをログに書き込みます。警告メッセージには、ログに記録されたイベントが注意を必要とするかどうかを示す警告情報が含まれます。

    INFO

    エラー、警告、および情報メッセージをログに書き込みます。情報メッセージは、アプリケーションのパフォーマンスに影響を及ぼすイベントなどの重要なイベントを示します。

    DEBUG

    エラー、警告、情報、および追加のメッセージをログに書き込みます。デバッグメッセージは非常に詳細です。この設定は問題を診断する場合にのみ使用します。DEBUGは、システムパフォーマンスに影響を及ぼすため、本番環境では使用しないでください。

    次の表に、[ログ設定]ページに表示される各ロガー名を示します。この表を使用して、ログファイルの特定のログおよびロガーの説明を確認します。

    ロガー名

    ログの識別子

    説明

    SQL query executer (SQLクエリ実行プログラム)

    JRJdbcQueryExecuter

    SQL query executerによって実行されるクエリのSQLテキストとパラメータ値をログに記録します。

    Input control value queries (入力コントロール値のクエリ)

    valueQueryLog

    入力コントロールに関連付けられたクエリのSQLテキストとパラメータ値をログに記録します。

    Cascading input control parameter resolution (カスケード入力コントロールパラメータの解決)

    FilterCore

    カスケード入力コントロールに関連付けられたアクティビティをログに記録します。クエリ駆動型の入力コントロールは、別の入力コントロールから取得された値を持つパラメータがクエリにある場合にカスケードできます。パラメータ値が変更されると、クエリが自動的に再実行され、入力コントロールの値のリストが変更される可能性があります。

    Cascading input control query result caching (カスケード入力コントロールのクエリ結果のキャッシュ)

    TokenControlLogic

    カスケード入力コントロールクエリの結果に対するキャッシュの使用状況をログに記録します。

    Hibernate SQL

    SQL

    Hibernate層により、ZENworks Reportingリポジトリデータベースにアクセスするために実行されるSQLをログに記録します。このロガーは、パフォーマンスに影響を及ぼす可能性のある大量のログを生成します。

    Ad Hoc data policy logging (アドホックデータポリシーログ)

    CommonDomainDataStrategy

    SubFilterInputControlGenerator

    その他

    SQLクエリまたはメモリ内操作を使用してアドホックビューのデータセットを取得する、アドホックデータポリシー実装のさまざまなアクティビティのログを記録します。

    SQL generated for Domain queries (ドメインクエリに対して生成されたSQL)

    JdbcBaseDataSet

    ドメインを使用したクエリから生成されたSQLクエリのログを記録します。

    Connection handling for Domains (ドメインの接続処理)

    DataSourceResolverImpl

    SQLクエリを実行するためにドメインによって使用されるJDBC接続の使用状況をログに記録します。

    Expression to JSON converter (式 - JSONコンバータ)

    ExpressionJSON Converter

    アドホックフィルタによって使用される、DomELとJSON間の変換に関する情報をログに記録します。

    Domain-based security tests (ドメインベースのセキュリティテスト)

    SemanticLayerSecurityResolver Impl

    ドメインの列レベルおよび行レベルのセキュリティに関するアクティビティをログに記録します。

    Cascading input control resolution for Domains (ドメインのカスケード入力コントロールの解決)

    DomainFilterResolver

    前に記載したFilterCoreロガー(Cascading input control parameter resolution)と同じアクティビティをログに記録しますが、ドメインクエリに固有の情報を追加します。

    Ad Hoc cache activity (アドホックキャッシュアクティビティ)

    CachedData

    アドホックビューにアクセスしたときにメモリ内にキャッシュされるデータセットのライフサイクルに関する情報をログに記録します。

    Timing for SQL queries run for reports (レポートのSQLクエリの実行タイミング)

    JsControlledJdbcQueryExecuter

    SQL query executerによって実行されたクエリがレポートにデータを返すまでの時間をログに記録します。

    Ad Hoc WorkingDataSet (アドホックWorkingDataSet)

    WorkingDataSet

    クエリ結果のメモリ内データセット変換を実行するためにアドホックエディタによって使用されるWorkingDataSetのアクティビティをログに記録します。

    General controller (汎用コントローラ)

    AdhocAjaxController

    アドホックエディタのアクティビティをログに記録します。

    Crosstab controller (クロス集計コントローラ)

    AdhocCrosstabAjaxController

    クロス集計レポートに固有のアドホックエディタの追加アクティビティをログに記録します。

    Groovy code generation for memory datasets (メモリデータセットのGroovyコード生成)

    GroovyGenerator

    フィルタおよび計算フィールドに対してアドホックエディタが使用するDomEL式から生成されたGroobyクラスをログに記録します。

    Ad Hoc AJAX requests (アドホックAJAX要求)

    adhocAjaxRequests

    レポートパラメータおよび応答時間を含む、アドホックエディタおよびダッシュボードデザイナによって実行されるAJAX要求に関する情報をログに記録します。アドホックエディタおよびダッシュボードデザイナでエラーが発生するか、応答時間が遅い場合、この設定を有効にします。

    Ad Hoc cache activity (アドホックキャッシュアクティビティ)

    com.jaspersoft.commons.datarator.CachedData

    状態間で遷移した際に、アドホックキャッシュによって管理されるデータセットのライフサイクルを追跡します。このログ出力には、アドホックキャッシュからの情報がトラブルシューティングに役立つ形式で含まれます。この設定を使用して、アドホックエディタのパフォーマンスと応答性にクエリ応答時間がどのくらい寄与しているかを把握します。クエリ自体はログに記録されないため、SQL Query Executer (SQLクエリ実行プログラム)ログ設定と一緒に使用します。

  3. ロガーを追加するには、ページの下部までスクロールします。

  4. ドロップダウンを使用してログレベルを設定します。

4.4.2 アドホック設定の管理

アドホック設定により、アドホックビューの設計および実行時にクエリで利用可能なリソースを制限します。設定できるクエリは次のとおりです。

  • Ad Hoc Filter List of Values Row Limit (アドホックフィルタの値リストの行制限): ユーザがドメインに基づくアドホックビューにフィルタを定義するときに、条件エディタに表示される最大項目数。ユーザがフィルタを定義するときにこの制限を超えた場合、ZENworks Reportingにメッセージが表示されます。これをより低い値に設定するとパフォーマンスを向上できます。

  • Ad Hoc Dataset Row Limit (アドホックデータセットの行制限): アドホックビューが返すことができる最大行数。制限に達すると、ZENworks Reportingはデータを切り捨てます。これをより低い数に設定すると、パフォーマンスを向上できますが、レポートにデータセット全体が反映されない場合があります。

  • Ad Hoc Query Timeout (アドホッククエリのタイムアウト): クエリの実行時にアドホックビューをタイムアウトするまでのサーバ待機秒数。これをより低い数に設定すると、アドホックビューの実行時にユーザに対して例外が表示されなくなる場合があります。これをより高い数に設定すると、複雑な計算がタイムアウトするのを回避できますが、より多くのデータベース接続を使用することになります。

アドホック設定を設定するには:

  1. 管理]>[Server Settings (サーバ設定)の順にクリックして、Ad Hoc Settings (アドホック設定)を選択します。

  2. Ad Hoc Filter List of Values Row Limit (アドホックフィルタの値リストの行制限)で、ユーザがドメインに基づくアドホックレポートにフィルタを定義するときに、条件に表示される最大項目数を指定します。

  3. Ad Hoc Dataset Row Limit (アドホックデータセットの行制限)で、アドホックビューが返すことができる最大行数を指定します。

  4. Ad Hoc Query Timeout (seconds) (アドホッククエリのタイムアウト(秒))フィールドで、クエリ実行時にアドホックレポートをタイムアウトするまでのサーバ待機秒数を指定します。

  5. 変更をクリックして、変更内容を保存します。

データポリシーの理解

データポリシーは、ZENworks Reportingが特定のタイプのアドホックビューのデータロードと処理を実行する方法を決定します。これにより、データのキャッシュ方法と、特定の計算が発生する状況が決まります。たとえば、ドメインベースのレポートがアクセスするデータを、サーバがメモリ内で処理するのではなく、データベースでグループ化、ソート、および集計するように指定できます。

設定できるデータポリシーは次のとおりです。

  • Optimize Queries for JDBC-based Reports (JDBCベースレポート用にクエリを最適化): JDBCベースレポート用のクエリのグループ化、ソート、および集計を選択します。選択しない場合、クエリは変更されないままメモリ内で実行されます。

  • Optimize Queries for Domain-based Reports (ドメインベースレポート用にクエリを最適化): ドメインベースレポート用のクエリのグループ化、ソート、および集計を選択します。選択しない場合、クエリは変更されないままメモリ内で実行されます。

データポリシーを設定するには:

  1. 管理]>[Server Settings (サーバ設定)>[Ad Hoc Settings (アドホック設定)]の順にクリックします。

  2. JDBCベースレポートのクエリを処理する場合、Optimize Queries for JDBC-based Reports (JDBCベースレポート用にクエリを最適化)を選択します。

  3. ドメインベースレポートのクエリを処理する場合、Optimize Queries for Domain-based Reports (ドメインベースレポート用にクエリを最適化)を選択します。

  4. 変更をクリックして、現在の設定を保存します。

メモ:これらのデータポリシー設定は、リポジトリ内のアドホックビューから作成された既存のレポートを更新しません。既存のレポートのデータポリシーを変更するには、適切なポリシー設定を選択し、対応するビューをアドホックエディタで開き、レポートを再び保存します。

4.4.3 アドホックキャッシュ設定の管理

ZENworks Reportingは、アドホッククエリの結果セットを再使用するために一時的にキャッシュできます。キャッシュには、アドホックビューの作成時または実行時にクエリから生成されたデータが入力されます。データセットは、クエリ自体、データソースURL、およびクエリ発行時に使用されたパラメータを参照するキーで一意に識別されます。

キャッシュにより、データベースの負荷が軽減され、頻繁に使用されるデータセットが素早くユーザに提供されます。キャッシュは、レポート作成時だけでなくレポート実行時にも適用されます。アドホックキャッシュを設定することにより、使用パターンに合わせてメモリ使用率および応答時間を最適化できます。

キャッシュの設定

デフォルトでは、各ユーザのデータセットは別々にキャッシュされ、キャッシュキーのパラメータでユーザを識別します。このユーザ単位のキャッシュにより、異なるユーザが同じクエリを実行した場合、データセットが重複する可能性があります。\WEB-INF\applicationContext-datarator.xmlファイルを編集することにより、ユーザ間でキャッシュデータセットを共有するようにZENworks Reportingを設定できます。

次のコードは、キャッシュキーの作成時にログインユーザの資格情報を無視するようにcacheKeyInterceptorを設定します。

<property name="ignoredParameters"> <list>

... <value>LoggedInUser</value>

<value>LoggedInUsername</value> </list>

</property>

コードを追加したら、ZENworks Reportingを再起動してください。

キャッシュの設定

キャッシュにより、データ取得とソートの全体的なパフォーマンスが向上しますが、未使用のデータセットがメモリを消費する可能性があります。これらの問題を解決するために、キャッシュをクリアする頻度を設定する必要があります。

キャッシュを自動的にクリアする頻度を設定するには、次の設定ファイルを編集します。

アドホックキャッシュの例外

設定ファイル

...\WEB-INF\adhoc-ehcache.xml

プロパティ

デフォルト値

説明

maxEntriesLocalHeap

1

ローカルヒープメモリ内のキャッシュの最大数。

timeToIdleSeconds

300

データセットがアクセスされてから、キャッシュから削除されるまでの待機秒数。デフォルトは30分です。制限なしの場合は0 (ゼロ)を使用します。

timeToLiveSeconds

300

データセットが繰り返しアクセスされている場合でも、データセットをキャッシュに格納する最大時間。古いデータが定期的に置き換えられるようにします。デフォルトは90分です。制限なしの場合は0 (ゼロ)を使用します。

設定ファイルを編集したら、ZENworks Reportingを再起動してください。

キャッシュの手動クリア

管理者はクエリを表示することはできますが、キャッシュ内にあるデータセットのコンテンツは表示できません。[Ad Hoc cache (アドホックキャッシュ)]ページには、各クエリに関するパフォーマンスデータも表示されます。この情報は、パフォーマンスの問題を解決する場合に役立ちます。

クエリの値は次のとおりです。

  • Query (クエリ) (ミリ秒) – クエリがデータソース(データベース)に送信されたときに、最初の行を受け取るまでに使われたミリ秒単位の時間。

  • Fetch (フェッチ) (ミリ秒) – 最初の行をデータソース(データベース)から受け取ってから最後の行を受け取るまでのミリ秒単位の時間。

  • Memory used (使用中のメモリ) (MB) – キャッシュエントリに格納される結果データセットのメガバイト単位のサイズ。

    最新のデータをフェッチする必要がある場合、管理者は[Ad Hoc cache (アドホックキャッシュ)]ページでデータセットを手動で削除することもできます。

アドホックキャッシュを表示して手動でクリアするには:

  1. 管理>Server Settings (サーバ設定)>Ad Hoc Cache (アドホックキャッシュ)の順にクリックします。

    [Ad Hoc Cache (アドホックキャッシュ)]ページには、キャッシュ内にあるすべてのデータセットが経過時間順にソートされて表示されます。

  2. Query & Source (クエリとソース)列で、詳細を表示するクエリをクリックします。

    [Detail (詳細)]ページには、キャッシュされているデータセットの行数など、選択したクエリの追加情報が表示されます。

  3. キャッシュからデータセットを削除するには、クリアをクリックします。

  4. すべてのデータセットを削除するには、[Ad Hoc Cache (アドホックキャッシュ)]ページの最上部で、Clear All (すべてクリア)をクリックします。

4.4.4 インポート設定の管理

インポート設定により、インポート手順を簡素化できます。インポートは稼働中のサーバ上で処理され、インポートされたすべてのリソースは直ちに表示されます。また、インポートされたカタログに含まれる環境設定やセキュリティ設定は、サーバを再起動しなくても直ちに反映されます。

インポートはコマンドプロンプト経由でのみ実行する必要があります。

コマンドラインからのインポート

使用法: js-import [OPTIONS]

メモ:キャッシュ、環境設定、およびセキュリティの問題を回避するため、インポートコマンドラインユーティリティを使用する前にサーバを停止することをお勧めします。

ファイルシステムからリポジトリカタログを読み込み、ZENworks Reportingリポジトリ内に指定されたリソースを作成します。エクスポートインタフェースまたはjs-exportコマンドによって、ZIPアーカイブファイルまたはフォルダ構造のいずれかとしてリポジトリカタログが作成されている必要があります。

表 4-2 js-importコマンドのオプション

オプション

説明

--help

利用可能なオプションに関する簡潔な情報を表示します。

--input-dir

ディレクトリからカタログをインポートするためのパス。

--input-zip

zipファイルからカタログをインポートするためのパスおよびファイル名。

--update

URLおよびタイプが一致する場合、カタログ内のリソースでリポジトリ内のリソースを置き換えます。

--skip-user-update

--updateと共に使用した場合、カタログ内のユーザをインポートまたは更新しません。このオプションは、現在定義されているユーザを上書きしないでカタログをインポートする場合に使用します。

--include-access-events

インポートされたリソースのアクセスイベント(最終変更日時とユーザ名)を復元します。

--include-audit-events

Professional Edition専用です。カタログに存在する監査データをインポートします。

--include-monitoring-events

Professional Edition専用です。カタログに存在するモニタリングデータをインポートします。

--include-server-settings

カタログからシステム環境設定を更新するかどうかを決定します。カタログに環境設定を含めるための前提条件は次の2つです。

元のサーバ設定は、UI ([ログ設定]、[Ad Hoc Settings (アドホック設定)]、[Ad Hoc Cache Settings (アドホックキャッシュ設定)])から変更する必要があります。

カタログは、ユーザインタフェースまたはコマンドラインユーティリティから「everything」オプションを使用してエクスポートする必要があります。

サーバ設定をインポートした場合、サーバを起動するとすぐに反映されます。

例:

  • myExport.zipカタログアーカイブファイルをインポートします。

    js-import --input-zip myExport.zip

  • myDirカタログフォルダをインポートし、既存のリソースのURIとタイプがカタログで見つかったリソースと一致する場合、既存のリソースを置き換えます。

    js-import --input-dir myDir --update

  • myExport.zipカタログアーカイブファイルをインポートしますが、カタログで見つかったユーザは無視します。

    js-import --input-zip myExport.zip --update --skip-user-update

  • myDirカタログフォルダをアクセスイベントとともにインポートします。

    js-import --input-dir myDir --include-access-events

4.4.5 エクスポート設定の管理

エクスポート設定を使用すると、システム管理者用の[Server Settings (サーバ設定)]ページを使用して、リポジトリコンテンツに加え(またはリポジトリコンテンツの代わりに)ユーザおよび役割をエクスポートできます。

  1. [管理]>[Server Settings (サーバ設定)]>[エクスポート]の順にクリックします。

  2. エクスポートするカタログのzipファイルの名前を指定します。

    Web UIではzipアーカイブフォーマットのみがサポートされています。

  3. 次のチェックボックスを使用して、エクスポートされたカタログファイルのコンテンツを選択します。

    • Export Everything (すべてをエクスポート)をオンにすると、リポジトリ全体がエクスポートされます。これには、許可とレポートジョブのほかに、すべての組織、ユーザ、および役割も含まれます。

      リソース変更時間を含める場合は、Include access events (アクセスイベントを含める)をオンにします。

    • Export Everything (すべてをエクスポート)チェックボックスをオフにし、エクスポートするユーザと役割のみを選択します。

      役割とユーザのみを選択する場合は、Include users with selected roles (ユーザと選択した役割を含める)をオンにします。

    • いずれの場合も、Include audit events (監査イベントを含める)およびInclude monitoring events (モニタリングイベントを含める)を別々にオンにできます。

  4. エクスポートをクリックします。

    サーバによってカタログzipファイルが生成され、カタログのサイズと選択したオプションに応じて、ファイルの保存を求めるプロンプトが表示されます。

コマンドラインからのエクスポート

使用法: js-export [OPTIONS]

メモ:エクスポートユーティリティを実行する前にサーバインスタンスを停止することをお勧めします。

ファイルシステムにエクスポートするリポジトリリソース(レポート、イメージ、フォルダ、スケジュールされたジョブなど)を指定します。スケジュールされたジョブ、ユーザ、役割、および既存の監査データの内部定義をエクスポートすることもできます。エクスポート出力はリポジトリカタログと呼ばれ、1つのアーカイブファイルか、フォルダ構造になった一連のファイルのいずれかです。

表 4-3 js-exportコマンドのオプション

オプション

説明

--everything

監査およびモニタリングデータを除くすべてをエクスポートします。つまり、すべてのリポジトリリソース、許可、レポートジョブ、ユーザ、および役割をエクスポートします。UIでサーバ設定が変更されている場合は、これらの変更も組み込まれます。このオプションは次のコマンドと同じです。

--uris --repository-permissions --report-jobs --users --roles

--help

利用可能なオプションに関する簡潔な情報を表示します。

--include-access-events

アクセスイベント(最終変更日時とユーザ名)をエクスポートします。

--output-dir

出力カタログフォルダを作成するディレクトリのパス。

--output-zip

作成する出力カタログzipファイルのパスとファイル名。

--report-jobs

レポートユニットジョブをエクスポートするリポジトリレポートユニットおよびフォルダURIのカンマ区切りのリスト。フォルダURIの場合、このオプションは、フォルダ内にあるすべてのレポートのスケジュールされたジョブをエクスポートし、さらに、再帰的にすべてのサブフォルダ内にあるジョブをエクスポートします。

--repository-permissions

このオプションが指定されている場合、エクスポートされたフォルダおよびリソースそれぞれとともに、リポジトリ許可がエクスポートされます。

このオプションは、--urisと併用する場合にのみ使用してください。

--roles

エクスポートする役割のカンマ区切りのリスト。このオプションで役割を指定していない場合、すべての役割がエクスポートされます。

--role-users

このオプションが指定されている場合、役割がエクスポートされるたびに、その役割に属するすべてのユーザのエクスポートがトリガされます。このオプションは、--rolesと併用する場合にのみ使用してください。

--uris

リポジトリ内のフォルダまたはリソースURIのカンマ区切りのリスト。

--users

エクスポートするユーザのカンマ区切りのリスト。このオプションでユーザを指定していない場合、すべてのユーザがエクスポートされます。ユーザのエクスポートにはすべてのユーザ属性が含まれます。また、整合性を維持するため、ユーザに割り当てられたすべての役割もエクスポートされます。ユーザを指定する際、該当する場合は組織IDを指定する必要があります。次に例を示します。

--users user1, "user2|organization_1", ...

--include-audit-events

すべてのリソースおよびユーザの監査データをエクスポートに含めます。

--include-monitoring-events

すべてのリソースおよびユーザのモニタリングデータをエクスポートに含めます。

例:

  • リポジトリ内のすべてをエクスポートします。

    js-export --everything --output-dir myExport

  • /reports/samples/AllAccountsレポートユニットをカタログフォルダにエクスポートします。

    js-export --uris /organizations/organization_1/reports/samples/AllAccounts --output-dir myExport

  • /imagesおよび/fontsフォルダをエクスポートします。

    js-export --uris /organizations/organization_1/images,/organizations/organization_1/reports --output-dir myExport

  • すべてのリソース(ユーザ、役割、およびジョブスケジュールを除く)とその許可をzipカタログにエクスポートします。

    js-export --uris / --repository-permissions --output-zip myExport.zip

  • すべてのリソースとレポートジョブをエクスポートします。

    js-export --uris / --report-jobs / --output-dir myExport

  • /reports/samples/AllAccountsレポートユニットのレポートジョブをエクスポートします。

    js-export --report-jobs /organizations/organization_1/reports/samples/AllAccounts --output-dir myExport

    すべての役割とユーザをエクスポートします。

    js-export --roles --users --output-dir myExport

  • ROLE_USERおよびROLE_ADMINISTRATORの役割を、各役割に属するすべてのユーザとともにエクスポートします。

    js-export --roles ROLE_USER, ROLE_ADMINISTRATOR --role-users --output-dir myExport