カスタマイズ事例 (ウィジェット、セキュリティ・SSO、運用自動化と監視) ウチダスペクトラム株式会社 Product Management Office
設定変更によるカスタマイズ コード変更によるカスタマイズ 運用自動化と監視 SMART/InSight G2
検索結果ウィジェットのカスタマイズ マスタブラウザのカスタマイズ クロスタブのカスタマイズ 時系列のカスタマイズ ナビゲータのカスタマイズ 設定変更によるカスタマイズ ウィジェットの基本設定は、InSightConfig_Local.xmlに記載されており、コードの変更なしに動作を変更できるものがあります。 以下に代表的な例を記載します。 検索結果ウィジェットのカスタマイズ マスタブラウザのカスタマイズ クロスタブのカスタマイズ 時系列のカスタマイズ ナビゲータのカスタマイズ ヘッダの変更 SMART/InSight 導入設定ガイドの「10.カスタマイズ」に詳細が記載されています。
ウィジェットの設定変更は、InSightConfig_Local.xmlを編集することで行います。 ウィジェットカスタイズ ウィジェットの設定変更は、InSightConfig_Local.xmlを編集することで行います。 ウィジェットは、/components/componentに定義されています。 ウィジェット定義ID、JavaScriptクラス ウィジェット拡張属性定義 ウィジェット定義 属性値 内容 minHeight ウィジェットの最小の高さをピクセルで指定 maxHeight ウィジェットの最大の高さをピクセルで指定。autoが指定された場合は、ウィジェット内の描画に合わせて高さを調整します。
【検索結果ウィジェットのカスタマイズ】 設定変更によるカスタマイズ ナレッジメタデータバーの非表示 表示するフィールドの変更 InSightConfig_Local.xml mode属性の設定を空にして、hide_metadata属性をtrueに設定 表示するフィールドの変更 WEB-INF/tld/tags/widget/simplesr/document.tagを変更する。 コンテンツセットに登録されているfieldIDはdocument.<fieldID>で参照可能。 データチェインが設定しているフィールドの場合は、検索も可能。
【マスタブラウザのカスタマイズ】 設定変更によるカスタマイズ 非表示のマスターの指定 InSightConfig_Local.xml 非表示のマスターの指定 属性値 内容 excludeMaster マスタブラウザで表示しないマスターのデータモデル名を指定します。 検索モードの設定(startWith,Exact,datachain) 属性値 内容 searchMode マスターブラウザで検索する時の検索タイプを指定します。 検索タイプ 内容 startWith IDを前方一致で検索します。階層構造を持ったID体系の場合に使用します。 exact IDを完全一致で検索します。 datachain フィールドのデータチェイン先として指定しているコンテンツセットに対して検索を行います。
【クロスタブのカスタマイズ】 設定変更によるカスタマイズ 行・列の最大表示件数 最大列数の指定 (maximumColumns) InSightConfig_Local.xml 行・列の最大表示件数 最大列数の指定 (maximumColumns) 最大行数の指定 (maximumRows) 表示項目のソート順 sortbyAttribute sortbyOrder ソートタイプ 内容 name 文字列順でソート count 件数順でソート none ソートしない(検索エンジンからの戻り順) ソートタイプ 内容 acending 昇順 deacending 降順
【時系列のカスタマイズ】 2013 201304 2013/4/23 2013/4/23 20130423 設定変更によるカスタマイズ InSightConfig_Local.xml スケール選択時の使用フィールドの変更 tsyyyy/tsyyyynav (スケール) 2013 年 年月 ファセットの件数を取得 tsyyyymm/tsyyyymmnav 年月日 201304 時系列グラフの横軸となる日付型を設定 PurchaseDate(購入日付) tsdatetime tsyyyymmdd/tsyyyymmddnav コピー 2013/4/23 2013/4/23 20130423 分割
【ナビゲータのカスタマイズ】 設定変更によるカスタマイズ 表示順の指定 InSightConfig_Local.xml sortbyAttribute ソートタイプ 内容 name 文字列順でソート count 件数順でソート none ソートしない(検索エンジンからの戻り順) sortbyOrder ソートタイプ 内容 acending 昇順 deacending 降順
【ヘッダの変更】 メイン画面表示用 設定変更によるカスタマイズ 共通のヘッダに特定のリンクを付与します。 WEB-INF\jsp\core\Mainframe.jsp
フェデレートサーチ 検索結果を表示するウィジェットでコンテンツセットを特定することができます。 通常は、ウィジェットはページ作成時に指定したコンテンツセットの検索結果を表示しますが、コンテンツセットをもったウィジェットをページに配置することで、ひとつの検索で複数のコンテンツセットの検索を同時に行うことができます。 検索 A コンテンツセット C コンテンツセット B コンテンツセット D コンテンツセット 更新
InSightConfig_Local.xml ウィジェットの追加 フェデレートサーチ ウィジェットとコンテンツセットを結びつけるには、InSightConfig_Local.xmlにあるウィジェットのbamidパラメータにコンテンツセットIDを設定します。 InSightConfig_Local.xml ウィジェットの追加 設定したコンテンツセット用のウィジェットとして表示されます。
コピーする 設定変更によるカスタマイズ ウィジェットのパラメータを変更すると、すべてのウィジェットに影響を与えます。 異なるパラメータをもったウィジェットを作成するには、ウィジェットのコピーが必要です。 コピーする componentDefIdを一意な識別子に変更する
データを Indexに投入 検索してデータを取得 Index ウィジェットのカスタマイズ事例 【要件】 2軸のパラメータを指定させ、データの分布の傾向を表示したい。 【実現手段】 検索結果から、縦軸と横軸のデータを取得して、散布図として描画する。 年式年代 重量 燃費 1990 1503 23 2000 2512 34 2010 1533 22 2700 44 2200 33 1800 21 1954 28 1612 30 ; データを Indexに投入 検索してデータを取得 Index
複数のフィールドの組み合わせによるAND/ORの条件をサーチオプションで表すのは難しいため、専用のウィジェットを開発することが必要 ウィジェットのカスタマイズ事例 【要件】 サーチオプションのようにフィールドを一つずつの指定ではなく、複数のフィールドの組合せで検索を行いたい。 【実現手段】 専用の入力フォームをもったウィジェットを新規開発した。 複数のフィールドの組み合わせによるAND/ORの条件をサーチオプションで表すのは難しいため、専用のウィジェットを開発することが必要
ウィジェットのカスタマイズ事例 【要件】 【実現手段】 ページに表示しているグラフをまとめてレポートとして出力したい。 現在ページに表示しているグラフを、PDFに貼り付けてダウンロード可能にした。 ○○○○(Graph1) T1コード(Graph2) T2コード(Graph2) ○○○○(Graph3)
ウィジェットのカスタマイズ事例 【要件】 【実現手段】 表示しているグラフに付加情報を重ねあわせて表示させたい。 たとえば、時系列ウィジェットの日付のグラフにイベント情報を同時に表示。 【実現手段】 ナビゲータや時系列ウィジェットでグラフを生成したあとに、付加情報の検索をおこないグラフイメージ上に文字の重ね合わせをおこなった。 G2.5から使用しているグラフでは、異なるグラフの重ね合わせも可能 日付 原因部位 2004/1/22 ブレーキ 2004/1/23 ペダル 2005/2/2 2010/3/6 アクセル 2004/11/1 2002/5/14 2001/7/3 ギア 2003/10/5 パネル ; イベント情報の重ねあわせ グラフ表示 イベントID 日付 1 2004/1/22 2 2004/1/23 3 2005/2/2
ウィジェットのカスタマイズ 【要件】 【実現手段】 ファイルサーバーの検索で、ユーザーにダウンロード先(サーバー名、共有名)を見せたくない。 ネットワーク構成上、ユーザーから共有フォルダに直接参照することができない 【実現手段】 ファイルをダウンロードするアクションを追加し、InSight経由でファイルをクライアントに送信する機能を追加。 ① ダウンロードのリクエストを受付 ② 代理でファイルサーバーにアクセス (※ファイルサーバーへのアクセス権が必要) ③ 取得者がアクセス可能(ACL)かのチェック ④ ストリーミングでクライアントに送信する。 ① 検索 ② ファイルのダウンロード 直接の参照は不可
セキュリティ 【要件】 データベースのデータを対象にして、ログインしているユーザーが所属するグループによって、表示するコンテンツを制御したい。 【実現手段】 InSightでは、データのセキュリティで以下の制御が可能です。 ACL(ファイルサーバーの場合) コンテンツタイプ コンテンツセット コンテンツセット1 コンテンツセット2 userA コンテンツタイプ1 コンテンツタイプ1 コンテンツタイプ3 コンテンツタイプ2 userC コンテンツタイプ4 userB コンテンツセットやコンテンツタイプで制御ができない場合は、検索時に強制的に条件を 付与することで、フィルタを掛けることも可能です。 フィルタの追加: 所属するグループの取得 フィルタ条件の追加 他システム セキュリティ情報 Search Filter Pipeline 検索 権限レベルの取得
シングルサインオン 【要件】 【実装パターン】 既存のアプリケーションから再ログイン無しで連携したい。 InSightでの認証ではなく、ユーザーで構築されている認証基盤を利用した認証を行いたい。 【実装パターン】 # 要件概要 1 お客様の認証機構で認証後、認証機構で付与されるリクエストヘッダの項目をもとにG2へのログインを行う。 2 お客様の認証機構で認証後、認証機構でCookieに付与される項目をもとにG2へのログインを行う。 3 お客様の認証機構で認証後にリクエストヘッダに付与される項目をもとにG2へのログインを行い、さらに認証ユーザーの権限情報を格納したDBのデータを参照してG2側でも適切な実行権限を付与。 4 お客様の既存アプリケーションから検索を行い、その際の検索条件を保持してSSOでログインし、その後検索を実行。 【構成例】 認証サーバー Other System 認証 ①代理アクセス InSight、もしくは他アプリケーションで認証をおこない、それぞれの連携で認証情報の引き継ぎ ② 認証情報の引き継ぎ
【運用自動化】 【監視】 バックアップ ログの削除 サーチヒストリ削除 ナレッジセンターログの削除 プロセスの死活監視 エラー監視 運用自動化と監視 【運用自動化】 SMART/InSightを運用を自動化する際の代表的なメンテナンスポイントを以下に記します。これらをメンテナンス処理を定期的に実行します。 バックアップ ログの削除 サーチヒストリ削除 ナレッジセンターログの削除 【監視】 SMART/InSightを継続的に動作させるために、システムの監視を運用する必要があります。これは、通常のOSレベルでの監視(CPU、メモリ、ディスク容量)に加えて、以下の様な監視をおこなうことで、エラーの早期検出をおこなうことができます。 プロセスの死活監視 エラー監視
ハードウェア等の障害発生時にリカバリを行うために、定期的なバックアップを検討します。 ここでは、SMART/InSightのバックアップで必要な項目を解説します。 アプリケーションフォルダ データベース ログファイル ナレッジセンター(KC_Log/KC_Content)
※バックアップの前に、Tomcatの停止をおこなう。 【アプリケーションフォルダ】 [Tomcatインストールフォルダ]\webapps\<InsightG2> をTomcatディレクトリ以外の場所にコピー 【データベース】 InSightで使用しているデータベースのバックアップをおこなう。 MySQLの場合のサンプル: バックアップ:mysqldump –u root –p g2 > c:\g2.sql 【ログファイル】 [Tomcatインストールフォルダ]\log をTomcatディレクトリ以外の場所にコピー ※ InSightログは、デフォルトでは、\logファイルの直下です。 Log4j.xmlで設定することで、場所を変更することが可能です。
【ナレッジセンター】 上記フォルダのバックアップを行う。 バックアップ ※バックアップの前に、Tomcatの停止をおこなう。 KC_log 種別 内容 KC_log ユーザーの操作(検索、ダウンロードなど)の履歴を保存。 検索キーワードやドキュメントのレコメンドに使用。 KC_Contents ナレッジメタデータ(ドキュメントに対するタグやコメントなどの付加情報)の付与を行ったドキュメントを格納。 KCは、InSight専用のSolrインデックスに格納されている。 KC_Log InSightConfig_Local.xml KC_Contents 上記フォルダのバックアップを行う。 ※バックアップの前に、Tomcatの停止をおこなう。
過去のログは、不要の場合は削除することでディスク容量を軽減出来ます。 ログファイルの削除 InSightのログは、規定では、 [Tomcatインストールフォルダ]\logに格納されます。デフォルトの設定(log4j)では、日単位でログファイルは切り替われます。 過去のログは、不要の場合は削除することでディスク容量を軽減出来ます。 ある一定期間経過したログの削除
ナレッジセンター ログの削除 ナレッジセンターは、InSightで実行された検索やファイルのダウンロードなどのすべての操作が記録されます。 これは、InSight内部にあるSolrにインデックスとして格納されます。 検索 ダウンロード タグ付け etc 記録 ナレッジセンター ある特定の期間より古いナレッジログを自動的に削除して、インデックスのディスク容量を軽減することができます。また、インデックスの肥大化を防ぐために、定期的なオプティマイズを実行することをお薦めします。 InSightConfig_Local.xml
検索を行うと、検索履歴としてフィールドごとに使用したきワードが、個人スペースに記録されます。 サーチヒストリ削除 検索を行うと、検索履歴としてフィールドごとに使用したきワードが、個人スペースに記録されます。 この履歴情報は、InSightのDB上に保存されるため、必要に応じて削除の検討が必要になる。 t_search_keyword フィールド名 内容 field_value 検索文字列 business_action_id コンテンツセット(BAM)ID action_field_id フィールドID last_run_date 最終検索実行日時 以下の様なSQLを定期的に実行するエージェントを配置 例: delete from t_search_history where last_run_date < (now() - interval 12 month) ※ヒストリに保存しない設定も可能です。詳細は、導入設定ガイドに記載しています。 「15.4.3 サーチヒストリを利用しない場合」を参照ください。
OSのリソース(CPU、メモリ、ディスク容量)の監視に加えて、Javaプロセスの使用メモリ、CPU使用率の確認 【利用メモリ増加の主な要因】 マスターキャッシュ 使用する言語の数に応じて、キャッシュに要するメモリ使用量は増大します。キャッシュの設定の解除、言語の選択 ナレッジセンターインデックス 不要なログの削除、オプティマイズの実行 【機能監視】 外部からInSightのアクションを呼び出して、検索が正しく行われているかを確認する(要カスタマイズ) LWSのSolr Adminを使用してLWSの検索機能を確認することも可能
InSightでは、エラーが発生した場合は、ログにエラーが出力されます。 エラー監視 InSightでは、エラーが発生した場合は、ログにエラーが出力されます。 運用時にエラー監視をおこなうには、以下のファイルの更新日を確認します。 [Tomcatインストールフォルダ]\log 種別 内容 Insight_fatal.log システムの継続ができないなどの致命的なエラーが発生した場合に出力されます。 Insight_error.log システムは継続して利用することができるが、一部の機能が正常に動作していない場合に出力します。(バッチのエラーやウィジェットのエラー、一部のコンテンツセットでの検索エラーなど) デフォルトの設定では、導入時のエラーの確認をおこなうために、エラーレベルは、「INFO」になっています。 運用を開始後は、「WARNING」もしくは、「ERROR」レベルに変更することを推奨します。
ご清聴いただき、ありがとうございました。