はじめに
Watson Explorer Deep Analytics Edition のコンポーネントの1つであるoneWEXの導入時メモです。
外のインターネットからは隔離されているハイセキュアな環境に導入する想定で、オフラインでのインストールを試してみました。
最近のサービスはクラウド上で提供されるものも多いですが、oneWEXはDockerベースで実装されており、オンプレ環境に構築できるのが特徴の一つでもあります。
##関連記事
インストール関連
oneWEX導入メモ / Ubuntu編
oneWEX導入メモ / RHEL7.6 オフライン編
検索関連
oneWEX検証メモ - (0) 概要理解
oneWEX検証メモ - (1)ファイルシステムクローラーによるデータの取り込み / データセット、コレクションの作成
oneWEX検証メモ - (2)Windowsファイルシステムクローラーによるデータの取り込み
oneWEX検証メモ - (3)ContentMinerによる文書の検索
oneWEX検証メモ - (4)ApplicationBuilderによるWebアプリの作成と文書の検索
分析関連
oneWEX検証メモ - (5)ContentMinerによる分析 / ガイド付きモード
oneWEX検証メモ - (6)ContentMinerによる分析 / 各種"ID情報"をベースとした分析
API関連
oneWEX検証メモ - (7)REST API
環境情報
H/W (VirtualBox上のVMとして作成)
Memory 24MB
Disk 200GB
CPU 6Core (Intel Core i5-8350U CPU @ 1.70GHz)
S/W
RHEL v7.6
Docker CE v19
oneWEX v12.0.3
参考: oneWEX - Compatibility Report
CPUについて
The following table specifies the minimum processor required to install the IBM Watson Explorer oneWEX for single container deployment on server.
Note: oneWEX for single container deployment is for processing small amount of data such as PoC use case. A server equips around 4 to 8 CPU cores are appropriate. Allocating more CPU cores to the system does not contribute to the performance improvement.64-bit (AMD64 or Intel 64) x86 system with four or more cores of 2GHz, or higher processor
導入作業
事前準備 (パッケージ入手)
REHLとoneWEX本体はライセンス購入して、しかるべき手続きで入手するとして...
Dockerがちとやっかいです。
Dockerは有償版のEE(Enterprise Edition)と無償版のCE(Community Edition)があるようなのですが、どうやらRedHatについてはEE版しかないみたいです。
参考: https://docs.docker.com/install/
RedHatの場合はDockerEE使うのが王道っぽいですが、とりあえず手元にDockerEEのライセンスが無いのでDockerCEでやります。
で、RHELへの導入はCentOS版を使えばよさそうなので、CentOSのパッケージを入手することにします。
参考: Get Docker Engine - Community for CentOS - Install from a package
上のガイドにあるダウンロードサイトからrpmパッケージを入手します。
https://download.docker.com/linux/centos/7/x86_64/stable/Packages/
現時点で最新のもの(v19.03)をダウンロード
docker-ce-19.03.1-3.el7.x86_64.rpm
docker-ce-cli-19.03.1-3.el7.x86_64.rpm
containerd.io-1.2.6-3.3.el7.x86_64.rpm
さらに、RHEL上へのDockerインストールについて調べていると、こういう情報がありました。
https://stackoverflow.com/questions/42981114/install-docker-ce-17-03-on-rhel7
https://stackoverflow.com/questions/45272827/docker-ce-on-rhel-requires-container-selinux-2-9/45287245
この辺の情報によると、container-selinux のパッケージも必要になるとのことなので、以下のサイトから、container-selinuxの最新版パッケージを入手しておきます。
http://mirror.centos.org/centos/7/extras/x86_64/Packages/
container-selinux-2.107-1.el7_6.noarch.rpm
※追記
「libXScrnSaver」というパッケージが必要らしいのでこいつもインストールする!
https://www.ibm.com/support/knowledgecenter/ja/SS8NLW_12.0.0/com.ibm.watson.wex.ee.doc/c_onewex_install_docker.html
Docker CEのインストール
上で入手したrpmファイルを対象のマシンに持っていき、インストールします。
[root@test11 /Host_Inst_Image/oneWEX/DockerCE_CentOS]# yum install ./docker-ce-cli-19.03.1-3.el7.x86_64.rpm
読み込んだプラグイン:langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
./docker-ce-cli-19.03.1-3.el7.x86_64.rpm を調べています: 1:docker-ce-cli-19.03.1-3.el7.x86_64
./docker-ce-cli-19.03.1-3.el7.x86_64.rpm をインストール済みとして設定しています
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ docker-ce-cli.x86_64 1:19.03.1-3.el7 を インストール
--> 依存性解決を終了しました。
依存性を解決しました
==========================================================================================================================
Package アーキテクチャー バージョン リポジトリー 容量
==========================================================================================================================
インストール中:
docker-ce-cli x86_64 1:19.03.1-3.el7 /docker-ce-cli-19.03.1-3.el7.x86_64 169 M
トランザクションの要約
==========================================================================================================================
インストール 1 パッケージ
合計容量: 169 M
インストール容量: 169 M
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
インストール中 : 1:docker-ce-cli-19.03.1-3.el7.x86_64 1/1
rhel-dvd/productid | 1.6 kB 00:00:00
検証中 : 1:docker-ce-cli-19.03.1-3.el7.x86_64 1/1
インストール:
docker-ce-cli.x86_64 1:19.03.1-3.el7
完了しました!
[root@test11 /Host_Inst_Image/oneWEX/DockerCE_CentOS]# yum install ./container-selinux-2.107-1.el7_6.noarch.rpm
読み込んだプラグイン:langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
./container-selinux-2.107-1.el7_6.noarch.rpm を調べています: 2:container-selinux-2.107-1.el7_6.noarch
./container-selinux-2.107-1.el7_6.noarch.rpm をインストール済みとして設定しています
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ container-selinux.noarch 2:2.107-1.el7_6 を インストール
--> 依存性解決を終了しました。
依存性を解決しました
==========================================================================================================================
Package アーキテクチャー
バージョン リポジトリー 容量
==========================================================================================================================
インストール中:
container-selinux noarch 2:2.107-1.el7_6 /container-selinux-2.107-1.el7_6.noarch 40 k
トランザクションの要約
==========================================================================================================================
インストール 1 パッケージ
合計容量: 40 k
インストール容量: 40 k
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
インストール中 : 2:container-selinux-2.107-1.el7_6.noarch 1/1
検証中 : 2:container-selinux-2.107-1.el7_6.noarch 1/1
インストール:
container-selinux.noarch 2:2.107-1.el7_6
完了しました!
[root@test11 /Host_Inst_Image/oneWEX/DockerCE_CentOS]# yum install ./containerd.io-1.2.6-3.3.el7.x86_64.rpm
読み込んだプラグイン:langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
./containerd.io-1.2.6-3.3.el7.x86_64.rpm を調べています: containerd.io-1.2.6-3.3.el7.x86_64
./containerd.io-1.2.6-3.3.el7.x86_64.rpm をインストール済みとして設定しています
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ containerd.io.x86_64 0:1.2.6-3.3.el7 を インストール
--> 依存性解決を終了しました。
依存性を解決しました
==========================================================================================================================
Package アーキテクチャー バージョン リポジトリー 容量
==========================================================================================================================
インストール中:
containerd.io x86_64 1.2.6-3.3.el7 /containerd.io-1.2.6-3.3.el7.x86_64 96 M
トランザクションの要約
==========================================================================================================================
インストール 1 パッケージ
合計容量: 96 M
インストール容量: 96 M
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
インストール中 : containerd.io-1.2.6-3.3.el7.x86_64 1/1
検証中 : containerd.io-1.2.6-3.3.el7.x86_64 1/1
インストール:
containerd.io.x86_64 0:1.2.6-3.3.el7
完了しました!
[root@test11 /Host_Inst_Image/oneWEX/DockerCE_CentOS]# yum install ./docker-ce-19.03.1-3.el7.x86_64.rpm
読み込んだプラグイン:langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
./docker-ce-19.03.1-3.el7.x86_64.rpm を調べています: 3:docker-ce-19.03.1-3.el7.x86_64
./docker-ce-19.03.1-3.el7.x86_64.rpm をインストール済みとして設定しています
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ docker-ce.x86_64 3:19.03.1-3.el7 を インストール
--> 依存性解決を終了しました。
依存性を解決しました
==========================================================================================================================
Package アーキテクチャー バージョン リポジトリー 容量
==========================================================================================================================
インストール中:
docker-ce x86_64 3:19.03.1-3.el7 /docker-ce-19.03.1-3.el7.x86_64 104 M
トランザクションの要約
==========================================================================================================================
インストール 1 パッケージ
合計容量: 104 M
インストール容量: 104 M
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
インストール中 : 3:docker-ce-19.03.1-3.el7.x86_64 1/1
検証中 : 3:docker-ce-19.03.1-3.el7.x86_64 1/1
インストール:
docker-ce.x86_64 3:19.03.1-3.el7
完了しました!
dockerバージョン確認
[root@test11 ~]# docker version
Client: Docker Engine - Community
Version: 19.03.1
API version: 1.40
Go version: go1.12.5
Git commit: 74b1e89
Built: Thu Jul 25 21:21:07 2019
OS/Arch: linux/amd64
Experimental: false
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
docker起動
[root@test11 ~]# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
Active: inactive (dead)
Docs: https://docs.docker.com
[root@test11 ~]# systemctl start docker
[root@test11 ~]# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
Active: active (running) since 木 2019-08-08 14:49:04 JST; 7s ago
Docs: https://docs.docker.com
Main PID: 7141 (dockerd)
Tasks: 14
Memory: 44.1M
CGroup: /system.slice/docker.service
mq7141 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
8月 08 14:49:04 test11 dockerd[7141]: time="2019-08-08T14:49:04.151988935+09:00" level=info msg="ClientConn swi...e=grpc
8月 08 14:49:04 test11 dockerd[7141]: time="2019-08-08T14:49:04.152031393+09:00" level=info msg="pickfirstBalan...e=grpc
8月 08 14:49:04 test11 dockerd[7141]: time="2019-08-08T14:49:04.152281031+09:00" level=info msg="pickfirstBalan...e=grpc
8月 08 14:49:04 test11 dockerd[7141]: time="2019-08-08T14:49:04.184899421+09:00" level=info msg="Loading contai...tart."
8月 08 14:49:04 test11 dockerd[7141]: time="2019-08-08T14:49:04.497813310+09:00" level=info msg="Default bridge...dress"
8月 08 14:49:04 test11 dockerd[7141]: time="2019-08-08T14:49:04.724817777+09:00" level=info msg="Loading contai...done."
8月 08 14:49:04 test11 dockerd[7141]: time="2019-08-08T14:49:04.779594517+09:00" level=info msg="Docker daemon"...9.03.1
8月 08 14:49:04 test11 dockerd[7141]: time="2019-08-08T14:49:04.779873370+09:00" level=info msg="Daemon has com...ation"
8月 08 14:49:04 test11 dockerd[7141]: time="2019-08-08T14:49:04.813336778+09:00" level=info msg="API listen on ....sock"
8月 08 14:49:04 test11 systemd[1]: Started Docker Application Container Engine.
Hint: Some lines were ellipsized, use -l to show in full.
はい、OKぽいです。
oneWEXのインストール
以前、consoleモードではまったので、今回は最初からGUIモードでインストールします。
oneWEXのインストーラーを起動し、全てデフォルトのまま次へ次へでインストール。
[root@test11 /Inst_Image/oneWEX]# ./install.bin
今回はすんなりいきました。
oneWEX起動
[root@test11 ~]# cd /root/ibm/wex/bin
[root@test11 ~/ibm/wex/bin]# ./wexdocker.sh
FFQC5306I システムを停止しています...
FFQC5302I システムを始動しています...
確認
[root@test11 ~/ibm/wex/bin]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b07a283ec410 ibm-wex-ee:12.0.3.935 "/opt/ibm/wex/sbin/e…" 2 minutes ago Up 2 minutes 0.0.0.0:443->60443/tcp wex12dae
39090454d4d9 ibm-wex-wksml:12.0.3.935 "/sire-entrypoint.sh…" 2 minutes ago Up 2 minutes 9080/tcp, 9443/tcp wksml-service
はい、上がりました!
接続確認
ブラウザから当該ホストに以下にアクセスできればOK
-
Admin Console / https://hostname:443/admin
adminユーザーでサインイン
-
Content Miner / https://hostname:443/miner
-
App Builder / https://hostname:443/builder
#補足
##構成ファイル
oneWEXの構成情報は、インストールディレクトリ(/root/ibm/wex)のconfig/wex.jsonファイルに保持しています。
{
"env": {
"SOLR_MAX_HEAP": "4g",
"DOCPROC_WORKER_NUM": "2",
"SOLR_PER_NODE": "1",
"DOCPROC_MAX_MEMORY": "2g",
"WKSML_HOST": "wksml-service",
"ZK_MAX_HEAPSIZE": "1g",
"ZK_MIN_HEAPSIZE": "512m",
"WLP_JVM_MAX_MEMORY": "1g"
},
"port": 443,
"name": "wex12dae",
"wexDataVolume": "wex12dae",
"dockerImage": "ibm-wex-ee:12.0.3.935",
"wksmlImage": "ibm-wex-wksml:12.0.3.935",
"wksmlContainerName": "wksml-service",
"restart": "unless-stopped"
}
色々とデータを取り込んだり分析させようとすると、ヒープが足りなくなることがあるので、SOLR_MAX_HEAPあたりは増やしておいた方がよいでしょう。
参考: https://www-01.ibm.com/support/docview.wss?uid=ibm10734583
(一応上のような情報はありますが、あまり明確なチューニングの基準は無さそうです。というか、そもそも上のパラメーターのリファレンスすらKnowledge Centerに見当たらないのはどういう訳なんだろうか???)
SSLサーバー証明書
oneWEXの操作を行う際は、ブラウザからAdminConsoleやContentMinerに接続しますが、HTTPSでの接続となります。この際、デフォルトではoneWEXは自己署名証明書(いわゆるオレオレ証明書)をサーバー証明書として使っているらしく、ブラウザでの接続時にNET::ERR_CERT_AUTHORITY_INVALID とか「この接続ではプライバシーが保護されません」といった警告がでます。無視して接続することもできますが、正規の認証局から証明書を取得してそれを使用したい場合、以下の手順で置き換えが可能なようです。
How to set up SSL certificate files on oneWEX single container?