IM-BPM for Accel Platform IM-BPM チュートリアルガイド 第18版 2021-04-01

6.1.1. IM-BPM for Accel Platformのプロセスの実行時のログをKibanaのダッシュボードに表示する

このチュートリアルでは、「IM-BPM/Elasticsearch コネクタ」モジュールによってElasticsearchへ登録されたプロセスの実行時のログを、Kibana上で可視化し、可視化した情報を表示するためのダッシュボードを作成する方法を解説します。

注意

本チュートリアルは、intra-mart Accel Platformに「IM-BPM/Elasticsearch コネクタ」モジュールが組み込まれている環境上で行うことを前提としています。
また、各プロダクトのバージョンは下記を想定しています。
  • intra-mart Accel Platform : 2019 Spring(Violette)
  • IM-BPM/Elasticsearch コネクタ : 8.0.3
  • Elasticsearch : 6.4.0
  • Kibana : 6.4.0

コラム

Elasticsearch連携機能の詳細については、「IM-BPM 仕様書」 - 「Elasticsearch連携機能」を参照してください。
IM-BPM/Elasticsearch コネクタの設定については、「IM-BPM 設定ファイルリファレンス」 - 「IM-BPM Elasticsearch コネクタ設定」を参照してください。
Elasticsearchの環境構築については、「IM-BPM for Accel Platform セットアップガイド」 - 「Elasticsearch のセットアップ」を参照してください。

6.1.1.1. Kibanaの導入

Windows環境上へKibanaを導入する際の例を説明します。

6.1.1.1.1. Kibanaの取得

Kibanaのホームページより、version:6.4.0のKibanaをダウンロードし、任意の場所へ解凍します。
以降、Kibanaを展開した場所を%KIBANA_HOME%と略します。

コラム

URL(version:6.4.0)

6.1.1.1.2. Kibanaの設定

<%KIBANA_HOME%/config/kibana.yml>ファイルをエディタなどで開き、下記の設定を行います。
server.host: Kibanaのホスト名
elasticsearch.url: ElasticsearchのURL

注意

Kibanaは標準では通信の暗号化や認証機能が使用できません。Kibanaは、セキュアなネットワーク上にて運用されることを推奨します。

6.1.1.1.3. Kibanaの起動

<%KIBANA_HOME%/bin/kibana.bat>ファイルをダブルクリックし起動します。
起動完了後、ブラウザより、下記のURLにアクセスし、Kibanaの画面が表示されることを確認します。
http://Kibanaのホスト名:5601/
../../../../_images/elasticsearch_kibana_create_dashboard_0002.png
図:「Kibana」初期表示

6.1.1.2. プロセス実行とElasticsearchおよびKibanaの概要

「IM-BPM/Elasticsearch コネクタ」モジュールが含まれるintra-mart Accel Platform環境でプロセスの実行を行うと、「プロセスの開始」や、「タスクの完了」、「アクティビティの完了」、「プロセスの完了」など、特定のイベントが発生した際に、タスク名や処理を行ったユーザなどのイベントのログが自動でElasticsearchへ登録されます。
Elasticsearchへ登録された情報を、Kibanaなどのツールを用いて可視化し、ダッシュボードなどを用いて共有することで、プロセスのイベントデータをより有効に活用できます。
../../../../_images/elasticsearch_kibana_create_dashboard_0003.png
図:プロセスの実行とElasticsearchへの登録、Kibanaでの可視化

6.1.1.3. 本チュートリアルで使用する時系列データを作成する

Kibana上で統計情報を可視化するにあたり、サンプルとなる時系列データを作成します。

6.1.1.3.1. 統計情報取得の対象となるプロセスのデプロイを行う

タスクの統計情報の取得対象となるプロセスをデプロイします。
本デプロイ情報には、下記の2つのプロセスと、各サービスタスクで実行するjavaプログラムが含まれます。
../../../../_images/elasticsearch_kibana_create_dashboard_0005.png
図:データ作成用プロセス(process_create_elasticsearch_data)
../../../../_images/elasticsearch_kibana_create_dashboard_0004.png
図:統計情報の取得対象となるプロセス(target_process)
  • データ作成用プロセス(process_create_elasticsearch_data):上記の統計情報の取得対象となるプロセスを、時刻や、タスクの担当者などの情報を変更しながら連続で実行するサービスタスクを含むプロセスです。
  • 統計情報の取得対象となるプロセス(target_process):ユーザタスクなど、本チュートリアルで統計情報の対象とする項目を含むプロセスです。
    • プロセス実行時の流れ
      1. 「業務選択」タスクにより、下記の3業務より実施する業務を選択します。
        • 「業務A_新規契約」
        • 「業務B_契約更新」
        • 「業務C_契約解除」
      2. 実施する業務が決まったら、「データ作成用プロセス」により下記の3ユーザより一人がタスクに割り当てられ、後述する「タスクを処理したユーザの氏名」や「タスクを処理したユーザの所属組織」などの変数情報をプロセス変数に設定したのち、30分~3日の範囲でランダムな処理時間(task_duration)を設定し、完了されます。
        • aoyagi(青柳辰巳)
        • ikuta(生田一哉)
        • ueda(上田辰男)
      3. 「物件情報の検証」タスクを自動で実行します。(50msec~400msecの時間待機を行った後、自動的に完了されます)
      4. 「契約認可」タスクを自動で実行します。(50msec~400msecの時間待機を行った後、自動的に完了されます)
      5. 「物件情報登録」タスクを自動実行します。(ランダムに選択された緯度・経度情報をプロセス変数に登録します)

コラム

緯度・経度情報

出典:[街区レベル位置参照情報 国土交通省]

http://nlftp.mlit.go.jp/index.html

コラム

変数について

各業務で設定される変数の詳細は後続の「Elasticsearch に変数用のテンプレートを登録する」を参照してください。

6.1.1.3.2. barファイルのデプロイ

barファイル「CreateElasticsearchSampleData.bar」をダウンロードし任意の場所に保存し、以下の設定にて「デプロイ」画面にてデプロイを行います。

コラム

デプロイ画面からデプロイする方法については、「IM-BPM ユーザ操作ガイド」 - 「デプロイする」を参照してください。
項目名 設定値
デプロイ名 Elasticsearch/Kibana連携情報サンプル作成プロセスデプロイ
カテゴリ -(入力不要)
ファイル 上記でダウンロードしたbarファイル「CreateElasticsearchSampleData.bar」の保存先のパス
../../../../_images/elasticsearch_kibana_create_dashboard_0006.png
図:「デプロイ」画面

コラム

デプロイに付随するJavaクラスについて

上記のbarファイルによるデプロイを行うと、各プロセスのサービスタスクに設定されているJavaクラスも同時にデプロイされます。これらのクラスはアンデプロイを行うことにより、デプロイされたプロセス定義と一緒に削除されます。

6.1.1.4. Elasticsearch に変数用のテンプレートを登録する

プロセスの実行時に、プロセスが保持している変数用のマッピング情報を含むインデックスのテンプレートをElasticsearchへ登録します。
本チュートリアルでは統計処理のため、変数として以下の5つの項目をElasticsearchへ連携します。
  • selectedTaskName :選択された業務名
  • taskCompletedUserName :タスクを処理したユーザの氏名
  • taskCompletedUserDept :タスクを処理したユーザの所属組織
  • taskCompletedUserDeptAddrGeo :タスクを処理したユーザの所属組織の住所に紐づく緯度・経度情報
  • contractedAddrGeo :業務で扱った物件情報に紐づく緯度・経度情報

注意

インデックスのテンプレートに関して

本項ではElasticsearchへ下記のインデックステンプレート例が登録されていることを前提としています。
インデックスのテンプレートの例に関しては、「IM-BPM 仕様書」- 「IM-BPM Elasticsearch インデックステンプレート例」を参照してください。
Elasticsearchへのインデックスのテンプレート登録方法に関しては、「IM-BPM for Accel Platform セットアップガイド」- 「インデックステンプレートの登録」を参照してください。
以下、本チュートリアルで追加で必要となる変数情報のマッピング情報のみを含むインデックステンプレートをElasticsearchへ、Kibanaの「Dev Tools」を使用して登録する方法を説明します。
Kibanaの「メインメニュー」→「Dev Tools」→「Console」のテキストエリアに下記のコマンドを貼り付け、実行します。
PUT _template/im_bpm-index_template_for_tutorial
{
  "index_patterns": "im_bpm-default-*",
  "mappings": {
    "im_bpm": {
      "properties": {
        "variables" : {
          "properties" : {
            "selectedTaskName" : {
              "type":   "keyword"
            },
            "taskCompletedUserName" : {
              "type":   "keyword"
            },
            "taskCompletedUserDept" : {
              "type":   "keyword"
            },
            "taskCompletedUserDeptAddrGeo" : {
              "type":   "geo_point"
            },
            "contractedAddrGeo" : {
              "type":   "geo_point"
            }
          }
        }
      }
    }
  }
}
../../../../_images/elasticsearch_kibana_create_dashboard_0007.png
図:「Dev Tools」→「Console」

注意

テンプレート内のインデックス名の指定について

上記のテンプレートの例はテナントIDがdefaultの場合の例です。
上記コマンド中の下記の部分の記載をご使用の環境に合わせて変更してください。
{
  "index_patterns": "im_bpm-default-*",
  ・・・
(例)テナントIDがtestの場合、"template": "im_bpm-test-*",としてください。
以降、本チュートリアルでは、テナントIDはdefaultが設定されていると仮定して進めます。

6.1.1.5. データ作成用プロセスを実行する

データ作成用プロセスを実行し、Elasticsearchへ統計情報の取得対象となるプロセスの実行ログをまとめて登録します。
  1. 「サイトマップ」→「BPM」→「プロセス開始一覧」をクリックします。

    ../../../../_images/elasticsearch_kibana_create_dashboard_0008.png
    図:「サイトマップ」→「BPM」→「プロセス開始一覧」
  2. 「プロセス開始一覧」にてプロセス定義名「process_create_elasticsearch_data」のプロセスの「プロセス開始」をクリックします。

    ../../../../_images/elasticsearch_kibana_create_dashboard_0009.png
    図:「プロセス開始一覧」画面

注意

データ作成用プロセスの実行について

データ作成用プロセスは、時系列データを作成するために、実行時にプロセスエンジンの時刻情報を変更しながら実行されます。そのため、本チュートリアルを実施している環境において、データ作成用プロセスの実行中は他のプロセスの実行は行わないでください。

6.1.1.6. Elasticsearch のインデックスをKibanaから確認する

Kibana上でElasticsearchに登録されたデータを確認します。
  1. Kibanaの「メインメニュー」→「Management」をクリックします。

    ../../../../_images/elasticsearch_kibana_create_dashboard_0010.png
    図:「Management」
  2. 「Elasticsearch」→「Index Management」をクリックし、インデックス「im_bpm-default-YYYY」が存在することを確認します。

    ../../../../_images/elasticsearch_kibana_create_dashboard_0011.png
    図:「Index Management」
    ../../../../_images/elasticsearch_kibana_create_dashboard_0012.png
    図:インデックス「im_bpm-default-YYYY

6.1.1.7. Kibana上にインデックスパターンを作成する

Kibana上にインデックスパターンを作成し、Elasticsearchのインデックスのフィールドを扱う際のルールの設定を行います。
  1. Kibanaのメインメニューより「Management」をクリックし、「Management」画面を開きます。

    ../../../../_images/elasticsearch_kibana_create_dashboard_0013.png
    図:「Management」
  2. 「Management」画面の「Kibana」→「Index Patterns」をクリックし、「Create index pattern」画面を開きます。
    ../../../../_images/elasticsearch_kibana_create_dashboard_0014.png
    図:「Kibana」→「Index Patterns」
    ../../../../_images/elasticsearch_kibana_create_dashboard_0015.png
    図:「Create index pattern」画面
  3. 「Create index pattern」画面の「Index pattern」にim_bpm*を指定し、「Next step」をクリックします。

    項目名 設定値
    Index pattern im_bpm*
    ../../../../_images/elasticsearch_kibana_create_dashboard_0016.png
    図:「Next step」をクリック
  4. 「Time Filter field name」のプルダウン項目よりフィールド「time」を選択し、「Create index pattern」をクリックします。

    ../../../../_images/elasticsearch_kibana_create_dashboard_0017.png
    図:「Create index pattern」をクリック
  5. インデックスパターン「im_bpm*」の作成が完了し、フィールドの一覧が表示されたら、フィールド「task_duration」(タスクの所要時間)の「edit」アイコンをクリックします。

    ../../../../_images/elasticsearch_kibana_create_dashboard_0018.png
    図:「task_duration」-「edit」
  6. 「Edit task_duration」画面の各項目に下記の値を設定します。

    項目名 設定値
    Type number(変更不可)
    Format (Default: Number) Duration
    Input format Milliseconds
    Output format Human Readable
    ../../../../_images/elasticsearch_kibana_create_dashboard_0019.png
    図:「Edit task_duration」画面
  7. 「Save field」をクリックし、変更を保存します。

    ../../../../_images/elasticsearch_kibana_create_dashboard_0020.png
    図:「Save field」をクリック
  8. 上記と同様の設定をフィールド「activity_duration」(アクティビティの所要時間)およびフィールド「process_duration」(プロセスの所要時間)に対して行います。

../../../../_images/elasticsearch_kibana_create_dashboard_0021.png
図:フィールド「activity_duration」
../../../../_images/elasticsearch_kibana_create_dashboard_0022.png
図:フィールド「process_duration」

6.1.1.8. タスクの変数を使用して部署ごとの統計情報のグラフを作成する

Kibana上で、Elasticsearchへ連携されたプロセスのタスク完了イベント情報の変数情報を使用し、「部署ごとの完了タスク数の推移」と「部署ごとのタスクの平均処理時間」のグラフを作成します。

6.1.1.8.1. 部署ごとの完了タスク数の推移

部署(処理したユーザの所属組織)ごとの、過去30日間の完了タスク数の推移のグラフを作成します。
  1. Kibanaのメインメニューより「Visualize」をクリックし「Visualize」画面を開き、「Create a visualization」をクリックします。

    ../../../../_images/elasticsearch_kibana_create_dashboard_0023.png
    図:「Visualize」画面
  2. グラフの種類を指定します。
    「Select visualization type」画面にて「Line」を選択します。
    ../../../../_images/elasticsearch_kibana_create_dashboard_0024.png
    図:「Line」
  3. 対象のインデックスパターンを指定します。
    「From a New Search, Select Index」にてインデックスパターン「im_bpm*」を選択します。
    ../../../../_images/elasticsearch_kibana_create_dashboard_0025.png
    図:インデックスパターン選択
  4. 集計対象の期間を指定します。
    「Time Range」欄より「Last 30 days」を選択します。デフォルトは「Last 15 minutes」が表示されています。
    ../../../../_images/elasticsearch_kibana_create_dashboard_0026.png
    図:「Time Range」の選択
  5. 集計対象のイベントとして「TASK_COMPLETED」(タスク完了イベント)を指定します。
    「Add a filter」をクリックし、下記の値を設定し、「Save」をクリックします。
    項目名 設定値
    Fields... type_activiti
    Operators... is
    Value... TASK_COMPLETED
    ../../../../_images/elasticsearch_kibana_create_dashboard_0027.png
    図:「Add a filter」

    注意

    フィールド「type_activiti」のほか、項目名が類似するフィールド「activity_type」 が存在します。ここでは「type_activiti」 を指定してください。

  6. グラフの縦軸を指定します。
    「Metrics」の「Y-Axis」をクリックし、下記の値を設定します。
    項目名 設定値
    Aggregation Count
    Custom Label タスク処理件数
    ../../../../_images/elasticsearch_kibana_create_dashboard_0028.png
    図:「Y-Axis」
  7. グラフの横軸を指定します。
    「Buckets」の「X-Axis」をクリックし、下記の項目を指定します。
    項目名 設定値
    Aggregation Date Histogram
    Field time
    Interval Daily
    ../../../../_images/elasticsearch_kibana_create_dashboard_0029.png
    図:「X-Axis」
  8. 部署ごとに集計結果を分割します。
    「Add sub-buckets」の「Split Series」をクリックし、下記の値を設定します。
    項目名 設定値
    Sub Aggregation Terms
    Field variables.taskCompletedUserDept
    ../../../../_images/elasticsearch_kibana_create_dashboard_0030.png
    図:「Split Series」
  9. 「Apply Changes」をクリックし、組織名「SampleSector11」「SampleSector12」「SampleSector22」のタスク処理件数の推移が表示されることを確認します。

    ../../../../_images/elasticsearch_kibana_create_dashboard_0031.png
    図:「Apply Changes」
  10. 「ヘッダメニュー」の「Save」をクリックします。

    ../../../../_images/elasticsearch_kibana_create_dashboard_0032.png
    図:「Save」
  11. 「Save Visualize」欄に「部署ごとの完了タスク数の推移」を設定し、「Save」をクリックして保存します。

    項目名 設定値
    Save Visualize 部署ごとの完了タスク数の推移
    ../../../../_images/elasticsearch_kibana_create_dashboard_0033.png
    図:「Save Visualize」

6.1.1.8.2. 部署ごとのタスクの平均所要時間

部署(処理したユーザの所属組織)ごとの過去30日間のタスクの平均所要時間のグラフを作成します。
  1. Kibanaのメインメニューより「Visualize」をクリックし「Visualize」画面を開き、「+」をクリックします。

    ../../../../_images/elasticsearch_kibana_create_dashboard_0034.png
    図:「Visualize」画面
  2. グラフの種類を指定します。
    「Select visualization type」画面にて 「Horizontal Bar」を選択します。
    ../../../../_images/elasticsearch_kibana_create_dashboard_0035.png
    図:「Horizontal Bar」
  3. 対象のインデックスパターンを指定します。
    「From a New Search, Select Index」にてインデックスパターン「im_bpm*」を選択します。
    ../../../../_images/elasticsearch_kibana_create_dashboard_0036.png
    図:インデックスパターン選択
  4. 集計対象の期間を指定します。
    「Time Range」欄より「Last 30 days」を選択します。
    ../../../../_images/elasticsearch_kibana_create_dashboard_0037.png
    図:「Time Range」の選択
  5. 集計対象のイベントとして「TASK_COMPLETED」(タスク完了イベント)を指定します。
    「Add a filter」をクリックし、下記の値を設定し、「Save」をクリックします。
    項目名 設定値
    Fields... type_activiti
    Operators... is
    Value... TASK_COMPLETED
    ../../../../_images/elasticsearch_kibana_create_dashboard_0038.png
    図:「Add a filter」

    注意

    フィールド「type_activiti」のほか、項目名が類似するフィールド「activity_type」が存在します。ここでは「type_activiti」を指定してください。

  6. グラフの横軸を指定します。
    「Metrics」の「Y-Axis」をクリックし、「Aggregation」に「Average」を、「Field」に「task_duration」を、「Custom Label」に「タスクの平均所要時間」を指定します。
    項目名 設定値
    Aggregation Average
    Field task_duration
    Custom Label タスクの平均所要時間
    ../../../../_images/elasticsearch_kibana_create_dashboard_0039.png
    図:「Y-Axis」
  7. グラフの縦軸を指定します。
    「Buckets」の「X-Axis」をクリックし、下記の値を設定します。
    項目名 設定値
    Aggregation Terms
    Field variables.taskCompletedUserDept
    Custom Label 組織名
    ../../../../_images/elasticsearch_kibana_create_dashboard_0040.png
    図:「X-Axis」
  8. 「Apply Changes」をクリックし、組織名「SampleSector11」「SampleSector12」「SampleSector22」のタスクの平均所要時間が表示されることを確認します。

    ../../../../_images/elasticsearch_kibana_create_dashboard_0041.png
    図:「Apply Changes」
  9. ヘッダメニューの「Save」をクリックします。

    ../../../../_images/elasticsearch_kibana_create_dashboard_0042.png
    図:「Save」
  10. 「Save Visualize」欄に「部署ごとのタスクの平均所要時間」を指定し「Save」をクリックし保存します。

    項目名 設定値
    Save Visualize 部署ごとのタスクの平均所要時間
    ../../../../_images/elasticsearch_kibana_create_dashboard_0043.png
    図:「Save Visualize」

6.1.1.9. Kibana上にダッシュボードを作成する

Kibana上に上記で作成した統計情報を表示するダッシュボードを作成します。
  1. Kibanaのメインメニューより「Dashboard」をクリックし、「Dashboards」画面を開きます。

    ../../../../_images/elasticsearch_kibana_create_dashboard_0044.png
    図:「Dashboard」
  2. 「Create new dashboard」をクリックし、「Editing New Dashboard」画面を開き、「Add」をクリックし、「Add Panels」を開きます。

    ../../../../_images/elasticsearch_kibana_create_dashboard_0045.png
    図:「Create new dashboard」
    ../../../../_images/elasticsearch_kibana_create_dashboard_0046.png
    図:「Editing New Dashboard」→「Add」
  3. 「Add Panels」→「Visualization」タブより「部署ごとのタスクの平均所要時間」および「部署ごとの完了タスク数の推移」をクリックします。

    ../../../../_images/elasticsearch_kibana_create_dashboard_0047.png
    図:「Add Panels」→「Visualization」
  4. ダッシュボードに「部署ごとのタスクの平均所要時間」および「部署ごとの完了タスク数の推移」が追加されたことを確認し、ヘッダメニューの「Save」をクリックします。

    ../../../../_images/elasticsearch_kibana_create_dashboard_0048.png
    図:「Save」
  5. 「Save Dashboard」ダイアログの「Title」に「IM-BPM Dashboard」を指定し、「Confirm Save」をクリックします。

    ../../../../_images/elasticsearch_kibana_create_dashboard_0049.png
    図:「Save Dashboard」
  6. Kibanaのメインメニューの「Dashboard」をクリックし、「Dashboards」画面を開き、一覧に「IM-BPM Dashboard」が存在することを確認します。

    ../../../../_images/elasticsearch_kibana_create_dashboard_0050.png
    図:「Dashboards」画面

コラム

ダッシュボードの共有について

Kibanaがローカル環境以外からもアクセス可能な設定となっている場合、ダッシュボードをほかの環境から参照できます。
ダッシュボードを開いた状態で、右上の「Share」をクリックし、表示される各種の情報を共有してください。
「Share」にはダッシュボードの最新情報へのリンクのほか、ダッシュボードを表示している時点の断面の情報(スナップショット)へアクセスするための情報があり、それぞれに対して下記の2つの情報が表示されます。
  • iframeへの表示を想定し、メニュー項目のない画面へのリンクを含むHTMLタグ
  • Kibanaの「ダッシュボード」画面へのリンクのURL
../../../../_images/elasticsearch_kibana_create_dashboard_0051.png
図:「Share」
../../../../_images/elasticsearch_kibana_create_dashboard_0052.png
図:Kibanaの「ダッシュボード」画面