0
1

More than 3 years have passed since last update.

Blue Prism の Data Gateway を動かしてみる

Last updated at Posted at 2020-05-11

はじめに

Blue Prism には、セッションログやワークキューの状態などのログデータを、外部のログ基盤にエクスポートする「Data Gateway」という仕組みがあります。
この記事では、docker を使って手元に Elasticsearch + Kibana 環境を作り、そこに Blue Prism の Data Gateway からログをエクスポートしてみます。

ドキュメントには Splunk などの名前しか出てきませんが、Data Gateway は内部で logstash を使っているそうなので、Elasticsearch との相性は良さそうです。

Data Gateway をインストールする

v6.7 User Guide - Data Gateways(要ログイン) に沿って、Data Gateway をインストールします。

インストーラーは製品 > Extras(要ログイン) からダウンロードできます

インストールの手順からわかるように、Data Gateway を使うには、BPServer.exe をつかって Blue Prism をサーバーとして動かす必要があります。サーバーとして動かす手順はこちらを参照してください。

BPServer.exe の「サーバー構成の詳細」画面左下に「データゲートウェイプロセスを有効にする」チェックボックスがあるので On にして、「保存」をクリックします。
2.png

Elasticsearch と Kibana を用意する

ローカル検証用に Elasticsearch と Kibana が動く docker-compose ファイルを用意し、docker-compose up します。

version: '2'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.0.1
    volumes:
        - elasticsearch-data:/usr/share/elasticsearch/data
    ports:
        - 9200:9200
        - 9300:9300
    environment:
        discovery.type : single-node
  kibana:
    image: docker.elastic.co/kibana/kibana:7.0.1
    ports:
        - 5601:5601

volumes:
    elasticsearch-data:
        driver: local
>docker-compose up
Starting docker-compose-elasticsearch-kibana-simple_elasticsearch_1 ... done                                            Starting docker-compose-elasticsearch-kibana-simple_kibana_1        ... done                                            Attaching to docker-compose-elasticsearch-kibana-simple_elasticsearch_1, docker-compose-elasticsearch-kibana-simple_kibana_1
elasticsearch_1  | OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
elasticsearch_1  | {"type": "server", "timestamp": "2020-05-04T23:32:02,871+0000", "level": "INFO", "component": "o.e.e.NodeEnvironment", "cluster.name": "docker-cluster", "node.name": "855c6cbffedd",  "message": "using [1] data paths, mounts [[/usr/share/elasticsearch/data (/dev/sda1)]], net usable_space [52.6gb], net total_space [58.4gb], types [ext4]"  }
elasticsearch_1  | {"type": "server", "timestamp": "2020-05-04T23:32:02,878+0000", "level": "INFO", "component": "o.e.e.NodeEnvironment", "cluster.name": "docker-cluster", "node.name": "855c6cbffedd",  "message": "heap size [1007.3mb], compressed ordinary object pointers [true]"  }
elasticsearch_1  | {"type": "server", "timestamp": "2020-05-04T23:32:02,929+0000", "level": "INFO", "component": "o.e.n.Node", "cluster.name": "docker-cluster", "node.name": "855c6cbffedd",  "message": "node name [855c6cbffedd], node ID [JYHFh1LDSK61s12txY6glA]"  }
elasticsearch_1  | {"type": "server", "timestamp": "2020-05-04T23:32:02,931+0000", "level": "INFO", "component": "o.e.n.Node", "cluster.name": "docker-cluster", "node.name": "855c6cbffedd",  "message": "version[7.0.1], pid[1], build[default/docker/e4efcb5/2019-04-29T12:56:03.145736Z], OS[Linux/4.9.184-linuxkit/amd64], JVM[Oracle Corporation/OpenJDK 64-Bit Server VM/12.0.1/12.0.1+12]"  }
elasticsearch_1  | {"type": "server", "timestamp": "2020-05-04T23:32:02,933+0000", "level": "INFO", "component": "o.e.n.Node", "cluster.name": "docker-cluster", "node.name": "855c6cbffedd",  "message": "JVM home [/usr/share/elasticsearch/jdk]"  }
elasticsearch_1  | {"type": "server", "timestamp": "2020-05-04T23:32:02,935+0000", "level": "INFO", "component": "o.e.n.Node", "cluster.name": "docker-cluster", "node.name": "855c6cbffedd",  "message": "JVM arguments [-Xms1g, -Xmx1g, -XX:+UseConcMarkSweepGC, -XX:CMSInitiatingOccupancyFraction=75, -XX:+UseCMSInitiatingOccupancyOnly, -Des.networkaddress.cache.ttl=60, -Des.networkaddress.cache.negative.ttl=10, -XX:+AlwaysPreTouch, -Xss1m, -Djava.awt.headless=true, -Dfile.encoding=UTF-8, -Djna.nosys=true, -XX:-OmitStackTraceInFastThrow, -Dio.netty.noUnsafe=true, -Dio.netty.noKeySetOptimization=true, -Dio.netty.recycler.maxCapacityPerThread=0, -Dlog4j.shutdownHookEnabled=false, -Dlog4j2.disable.jmx=true, -Djava.io.tmpdir=/tmp/elasticsearch-4297416070440673874, -XX:+HeapDumpOnOutOfMemoryError, -XX:HeapDumpPath=data, -XX:ErrorFile=logs/hs_err_pid%p.log, -Xlog:gc*,gc+age=trace,safepoint:file=logs/gc.log:utctime,pid,tags:filecount=32,filesize=64m, -Djava.locale.providers=COMPAT, -Dio.netty.allocator.type=unpooled, -Des.cgroups.hierarchy.override=/, -Des.path.home=/usr/share/elasticsearch, -Des.path.conf=/usr/share/elasticsearch/config, -Des.distribution.flavor=default, -Des.distribution.type=docker, -Des.bundled_jdk=true]"  }
elasticsearch_1  | {"type": "server", "timestamp": "2020-05-04T23:32:06,092+0000", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "855c6cbffedd",  "message": "loaded module [aggs-matrix-stats]"  }
elasticsearch_1  | {"type": "server", "timestamp": "2020-05-04T23:32:06,092+0000", "level": "INFO", "component": "o.e.p.PluginsService", "cluster.name": "docker-cluster", "node.name": "855c6cbffedd",  "message": "loaded module [analysis-common]"  }
....

http://localhost:5601/app/kibana を開くと、Kibana のコンソールが表示されます。

データゲートウェイを設定する

インタラクティブクライアントの「システム」タブで「データゲートウェイ」を選択し、エクスポートしたいデータなどを設定し、「適用」をクリックします。
6.jpg

インタラクティブクライアントの「システム」タブで「データゲートウェイ > 構成」を選択し、「新しいデータゲートウェイ出力を追加」をクリックします。
7.jpg

あとでマニュアルで修正するので、この「データゲートウェイ出力」ダイアログではファイルを選択し、適当なパスを設定し、「次へ」をクリックします。
8.png

「送付するデータを選択」ダイアログではエクスポートしたいデータの種類を選択します。その後、「次へ」をクリックします。
9.png

「出力構成のプレビュー」ダイアログで、「出力の詳細を編集」ボタンをクリックします。
10.png

「データゲートウェイ出力の詳細」ダイアログで、下図のように値を設定し(elasticsearch の部分を追加)、「詳細出力を保存」をクリックします。
11.png

入力例のテキストはこちらの通りです

if [event][EventType] == 1 or [event][EventType] == 4  {
    file { 
        path => "C:\BluePrism\datagateway_outputs\session_logs_%{+YYYY-MM-dd}.txt"
        codec => line { format => "%{event}"}
    }
    elasticsearch {
        hosts => ["localhost"]
        index => "blueprism_log"
    }
}

logstash の設定ファイルのドキュメントはこちらにあります。

確認ダイアログが出るので「はい」を選択します。
12.png

再起動を促されるダイアログが出るので「OK」をクリックします。
13.png

Blue Prism サーバーを停止して、再度起動します。

Kibana での確認

コントロールから適当な公開されているプロセスをランタイムリソース上にドラッグ&ドロップしてセッションを作成し、実行します。

しばらくすると、Kibana からセッションログが確認できます。
14.PNG

セッションログの分析など、捗りそうですね。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1