6.1.1. IM-BPM for Accel Platformのプロセスの実行時のログをKibanaのダッシュボードに表示する¶
このチュートリアルでは、「IM-BPM/Elasticsearch コネクタ」モジュールによってElasticsearchへ登録されたプロセスの実行時のログを、Kibana上で可視化し、可視化した情報を表示するためのダッシュボードを作成する方法を解説します。
注意
- intra-mart Accel Platform : 2019 Spring(Violette)
- IM-BPM/Elasticsearch コネクタ : 8.0.3
- Elasticsearch : 6.4.0
- Kibana : 6.4.0
コラム
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)
ダウンロードページ:https://www.elastic.co/downloads/past-releases/kibana-oss-6-4-0 (English)
6.1.1.1.2. Kibanaの設定¶
<%KIBANA_HOME%/config/kibana.yml>ファイルをエディタなどで開き、下記の設定を行います。server.host: Kibanaのホスト名 elasticsearch.url: ElasticsearchのURL注意
Kibanaは標準では通信の暗号化や認証機能が使用できません。Kibanaは、セキュアなネットワーク上にて運用されることを推奨します。
6.1.1.2. プロセス実行とElasticsearchおよびKibanaの概要¶
「IM-BPM/Elasticsearch コネクタ」モジュールが含まれるintra-mart Accel Platform環境でプロセスの実行を行うと、「プロセスの開始」や、「タスクの完了」、「アクティビティの完了」、「プロセスの完了」など、特定のイベントが発生した際に、タスク名や処理を行ったユーザなどのイベントのログが自動でElasticsearchへ登録されます。Elasticsearchへ登録された情報を、Kibanaなどのツールを用いて可視化し、ダッシュボードなどを用いて共有することで、プロセスのイベントデータをより有効に活用できます。
6.1.1.3. 本チュートリアルで使用する時系列データを作成する¶
Kibana上で統計情報を可視化するにあたり、サンプルとなる時系列データを作成します。
6.1.1.3.1. 統計情報取得の対象となるプロセスのデプロイを行う¶
タスクの統計情報の取得対象となるプロセスをデプロイします。本デプロイ情報には、下記の2つのプロセスと、各サービスタスクで実行するjavaプログラムが含まれます。
- データ作成用プロセス(process_create_elasticsearch_data):上記の統計情報の取得対象となるプロセスを、時刻や、タスクの担当者などの情報を変更しながら連続で実行するサービスタスクを含むプロセスです。
- 統計情報の取得対象となるプロセス(target_process):ユーザタスクなど、本チュートリアルで統計情報の対象とする項目を含むプロセスです。
- プロセス実行時の流れ
- 「業務選択」タスクにより、下記の3業務より実施する業務を選択します。
- 「業務A_新規契約」
- 「業務B_契約更新」
- 「業務C_契約解除」
- 実施する業務が決まったら、「データ作成用プロセス」により下記の3ユーザより一人がタスクに割り当てられ、後述する「タスクを処理したユーザの氏名」や「タスクを処理したユーザの所属組織」などの変数情報をプロセス変数に設定したのち、30分~3日の範囲でランダムな処理時間(task_duration)を設定し、完了されます。
- aoyagi(青柳辰巳)
- ikuta(生田一哉)
- ueda(上田辰男)
- 「物件情報の検証」タスクを自動で実行します。(50msec~400msecの時間待機を行った後、自動的に完了されます)
- 「契約認可」タスクを自動で実行します。(50msec~400msecの時間待機を行った後、自動的に完了されます)
- 「物件情報登録」タスクを自動実行します。(ランダムに選択された緯度・経度情報をプロセス変数に登録します)
6.1.1.3.2. barファイルのデプロイ¶
barファイル「CreateElasticsearchSampleData.bar」をダウンロードし任意の場所に保存し、以下の設定にて「デプロイ」画面にてデプロイを行います。コラム
デプロイ画面からデプロイする方法については、「IM-BPM ユーザ操作ガイド」 - 「デプロイする」を参照してください。
項目名 設定値 デプロイ名 Elasticsearch/Kibana連携情報サンプル作成プロセスデプロイ カテゴリ -(入力不要) ファイル 上記でダウンロードしたbarファイル「CreateElasticsearchSampleData.bar」の保存先のパス 図:「デプロイ」画面
コラム
デプロイに付随する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" } } } } } } }図:「Dev Tools」→「Console」注意
テンプレート内のインデックス名の指定について
上記のテンプレートの例はテナントIDがdefaultの場合の例です。上記コマンド中の下記の部分の記載をご使用の環境に合わせて変更してください。{ "index_patterns": "im_bpm-default-*", ・・・(例)テナントIDがtestの場合、"template": "im_bpm-test-*",としてください。以降、本チュートリアルでは、テナントIDはdefaultが設定されていると仮定して進めます。
6.1.1.5. データ作成用プロセスを実行する¶
注意
データ作成用プロセスの実行について
データ作成用プロセスは、時系列データを作成するために、実行時にプロセスエンジンの時刻情報を変更しながら実行されます。そのため、本チュートリアルを実施している環境において、データ作成用プロセスの実行中は他のプロセスの実行は行わないでください。
6.1.1.7. Kibana上にインデックスパターンを作成する¶
Kibana上にインデックスパターンを作成し、Elasticsearchのインデックスのフィールドを扱う際のルールの設定を行います。
Kibanaのメインメニューより「Management」をクリックし、「Management」画面を開きます。
- 「Management」画面の「Kibana」→「Index Patterns」をクリックし、「Create index pattern」画面を開きます。
図:「Kibana」→「Index Patterns」図:「Create index pattern」画面「Create index pattern」画面の「Index pattern」にim_bpm*を指定し、「Next step」をクリックします。
「Time Filter field name」のプルダウン項目よりフィールド「time」を選択し、「Create index pattern」をクリックします。
インデックスパターン「im_bpm*」の作成が完了し、フィールドの一覧が表示されたら、フィールド「task_duration」(タスクの所要時間)の「edit」アイコンをクリックします。
「Edit task_duration」画面の各項目に下記の値を設定します。
「Save field」をクリックし、変更を保存します。
上記と同様の設定をフィールド「activity_duration」(アクティビティの所要時間)およびフィールド「process_duration」(プロセスの所要時間)に対して行います。
6.1.1.8. タスクの変数を使用して部署ごとの統計情報のグラフを作成する¶
Kibana上で、Elasticsearchへ連携されたプロセスのタスク完了イベント情報の変数情報を使用し、「部署ごとの完了タスク数の推移」と「部署ごとのタスクの平均処理時間」のグラフを作成します。
6.1.1.8.1. 部署ごとの完了タスク数の推移¶
部署(処理したユーザの所属組織)ごとの、過去30日間の完了タスク数の推移のグラフを作成します。
Kibanaのメインメニューより「Visualize」をクリックし「Visualize」画面を開き、「Create a visualization」をクリックします。
グラフの種類を指定します。「Select visualization type」画面にて「Line」を選択します。 対象のインデックスパターンを指定します。「From a New Search, Select Index」にてインデックスパターン「im_bpm*」を選択します。 集計対象の期間を指定します。「Time Range」欄より「Last 30 days」を選択します。デフォルトは「Last 15 minutes」が表示されています。 集計対象のイベントとして「TASK_COMPLETED」(タスク完了イベント)を指定します。「Add a filter」をクリックし、下記の値を設定し、「Save」をクリックします。 グラフの縦軸を指定します。「Metrics」の「Y-Axis」をクリックし、下記の値を設定します。 グラフの横軸を指定します。「Buckets」の「X-Axis」をクリックし、下記の項目を指定します。 部署ごとに集計結果を分割します。「Add sub-buckets」の「Split Series」をクリックし、下記の値を設定します。「Apply Changes」をクリックし、組織名「SampleSector11」「SampleSector12」「SampleSector22」のタスク処理件数の推移が表示されることを確認します。
「ヘッダメニュー」の「Save」をクリックします。
「Save Visualize」欄に「部署ごとの完了タスク数の推移」を設定し、「Save」をクリックして保存します。
6.1.1.8.2. 部署ごとのタスクの平均所要時間¶
部署(処理したユーザの所属組織)ごとの過去30日間のタスクの平均所要時間のグラフを作成します。
Kibanaのメインメニューより「Visualize」をクリックし「Visualize」画面を開き、「+」をクリックします。
グラフの種類を指定します。「Select visualization type」画面にて 「Horizontal Bar」を選択します。 対象のインデックスパターンを指定します。「From a New Search, Select Index」にてインデックスパターン「im_bpm*」を選択します。 集計対象の期間を指定します。「Time Range」欄より「Last 30 days」を選択します。 集計対象のイベントとして「TASK_COMPLETED」(タスク完了イベント)を指定します。「Add a filter」をクリックし、下記の値を設定し、「Save」をクリックします。 グラフの横軸を指定します。「Metrics」の「Y-Axis」をクリックし、「Aggregation」に「Average」を、「Field」に「task_duration」を、「Custom Label」に「タスクの平均所要時間」を指定します。 グラフの縦軸を指定します。「Buckets」の「X-Axis」をクリックし、下記の値を設定します。「Apply Changes」をクリックし、組織名「SampleSector11」「SampleSector12」「SampleSector22」のタスクの平均所要時間が表示されることを確認します。
ヘッダメニューの「Save」をクリックします。
「Save Visualize」欄に「部署ごとのタスクの平均所要時間」を指定し「Save」をクリックし保存します。
6.1.1.9. Kibana上にダッシュボードを作成する¶
Kibana上に上記で作成した統計情報を表示するダッシュボードを作成します。
Kibanaのメインメニューより「Dashboard」をクリックし、「Dashboards」画面を開きます。
「Create new dashboard」をクリックし、「Editing New Dashboard」画面を開き、「Add」をクリックし、「Add Panels」を開きます。
「Add Panels」→「Visualization」タブより「部署ごとのタスクの平均所要時間」および「部署ごとの完了タスク数の推移」をクリックします。
ダッシュボードに「部署ごとのタスクの平均所要時間」および「部署ごとの完了タスク数の推移」が追加されたことを確認し、ヘッダメニューの「Save」をクリックします。
「Save Dashboard」ダイアログの「Title」に「IM-BPM Dashboard」を指定し、「Confirm Save」をクリックします。
Kibanaのメインメニューの「Dashboard」をクリックし、「Dashboards」画面を開き、一覧に「IM-BPM Dashboard」が存在することを確認します。
コラム
ダッシュボードの共有について
- iframeへの表示を想定し、メニュー項目のない画面へのリンクを含むHTMLタグ
- Kibanaの「ダッシュボード」画面へのリンクのURL