PostgreSQL のインストールと設定 (RHEL)
ここで説明する手順は、PostgreSQL 管理者 (DB ホストサーバーではない) を対象にしています。実装に HA レイヤーを含める場合は、このヘルプセンターの ThingWorx 高可用性セクション を参照してください。
PostgreSQL のインストールと新規ユーザー役割の作成
* 
以下の手順では、RHEL が GUI (X11) で、RHEL ソフトウェアリポジトリにアクセスできるアクティブなアカウントであることを前提とします。GUI を使用しない場合には、pgAdmin のインストールをスキップして、 このサポート記事に示す代替の手順を参照してください。公式の RHEL ソフトウェアソースにアクセスできない場合は、EPEL チームによる 無償のオープンソースリポジトリを設定できます。このサイトは PTC が提供または管理するものではありません。
1. サポートされる PostgreSQL バージョンの詳細については、このヘルプセンターの ThingWorx システムの要件セクションを参照してください。
* 
この手順では、PostgreSQL バージョン x.x を使用しています (x.x はサポートされているバージョン)。
2. PostgreSQL リポジトリを Yum に追加して、インストールします。
3. PostgreSQL 管理ツールである pgAdmin をインストールします。
$ sudo yum install pgadmin4
* 
コマンドラインから pgAdmin をインストールするには、 https://wiki.postgresql.org/wiki/Manual_Setup_at_the_Command_Line を参照します。
4. データベースを初期化して起動します。
$ sudo /usr/pgsql-x.x/bin/postgresqlx.x-setup initdb
PostgreSQL サービスを設定して起動します。
$ sudo chkconfig postgresql-x.x on
$ sudo service postgresql-x.x start
5. PostgreSQL ユーザーのパスワードを設定します。
$ sudo passwd postgres
6. PostgreSQL ユーザーのパスワードを入力します。このパスワードは後の手順で使用します。
* 
パスワードは、簡単に推測または認知できるもの (一般的なパスワード) にしないでください。長さは 14 文字以上で、大文字と小文字、数字、特殊文字を組み合わせます。
7. psql で PostgreSQL ユーザーを設定します。<unique PostgreSQL password> の値は、前の手順で入力したものです。
* 
PostgreSQL データベースが ThingWorx と同じサーバーに配置されていない場合、 ThingWorx とは別のサーバーにある PostgreSQL データベースの設定のセクションを参照し、次の 2 つの手順をスキップします。開発環境では、PostgreSQL データベースを ThingWorx と同じサーバーに任意で配置できますが、すべての本番環境では別のサーバーに配置する必要があります。
$ sudo -u postgres psql -c "ALTER ROLE postgres WITH password '<unique PostgreSQL password>'"
8. コマンドラインを使用する場合は、次のファイルを開いてここに示すように編集します。pgAdmin を使用する場合は、この手順をスキップします。
/var/lib/pgsql/x.x/data/postgresql.conf/postgresql.conf: listen addressesport をコメント解除します。通常は、localhost5432 のデフォルト設定で十分です。
/var/lib/pgsql/x.x/data/pg_hba.conf: Methodmd5 に設定します
9. pgAdmin を設定します。pgAdmin を使用していない場合は、この手順をスキップします。
$ sudo pgadmin3
pgAdmin GUI で、「file」 > 「Open postgresql.conf」の順にクリックします。
/var/lib/pgsql/x.x/data/postgresql.conf を開きます。
「listen addresses」「port」の横にチェックマークを付けます。通常は、localhost5432 のデフォルト設定で十分です。
保存して閉じます。
「file」>「Open pg_hba.conf」の順にクリックします。
/var/lib/pgsql/x.x/data/pg_hba.conf を開きます。
アドレスが 127.0.0.1/32 のデータベース 'all' の行をダブルクリックします。
「Method」を md5 に設定します。
「OK」をクリックします。
ファイルを保存して閉じます。
pgAdmin を閉じます。
10. PostgreSQL サービスを再起動します。
$ sudo service postgresql-x.x restart
11. データベースに接続するように pgAdmin を設定します。
$ sudo pgadmin3
12. 左上隅にあるプラグアイコンをクリックしてサーバーへの接続を追加し、次のように入力します。
Name: PostgreSQL x.x
Host: localhost
Port: 5432
Service: <blank>
Maintenance DB: postgres
Username: postgres
Password: <unique PostgreSQL password as set previously>
Store password: Checked
Group: Servers
13. 「OK」をクリックします。
14. 新規ユーザー役割を作成します。
* 
pgAdmin を使用していない場合は、次のコマンドを使用できます。
sudo -u postgres psql -c "CREATE USER twadmin WITH PASSWORD '<unique postgres password>';"
a. PostgreSQLx.x(localhost:5432) を右クリックします。
b. 「NewObject」 > 「NewLogin Role」の順に選択します。「Properties」タブで、「Role」名フィールドに名前を入力します。
c. 「Definition」タブの「Password」フィールドに、一意のパスワードを入力します (2 回入力するように求められます)。
* 
パスワードは、簡単に推測または認知できるもの (一般的なパスワード) にしないでください。長さは 14 文字以上で、大文字と小文字、数字、特殊文字を組み合わせます。このパスワードは後の手順で再入力する必要があります。
d. 「OK」をクリックします。
ThingWorx とは別のサーバーにある PostgreSQL データベースの設定
* 
このセクションの実行は、開発環境では任意ですが、すべての本番環境で必須です。
デフォルトでは、PostgreSQL サーバーはロックされた状態でインストールされます。このサーバーはローカルマシンからの接続のみを受信します。ThingWorx が PostgreSQL サーバーと通信するためには、PostgreSQL がほかのユーザー (thingworx ユーザー。デフォルトは twadmin) やほかのマシン (別のサーバーにインストールされた ThingWorx) からの接続の受信を認知するように、いくつかのコンフィギュレーションを変更する必要があります。
これらの手順では、PostgreSQL データディレクトリが存在する場所を知っておく必要があります。Linux では、配布とインストールの方法 (ダウンロードまたはパッケージマネージャのインストール) に基づいて、データフォルダやコンフィギュレーションファイルの場所を変更できます。これらの手順において、この場所は <PGDATA> と呼ばれます。
pg_hba.conf ファイルを修正して、目的のコンフィギュレーションに基づいて次の行を追加します。
すべての IPv4 アドレスの接続を許可する場合。
host all all 0.0.0.0/0 md5
特定の IPv4 アドレスの接続のみを許可する場合 (<ipAddress> は、接続を行うマシンの IP アドレスに置き換えてください):
host all all <ipAddress>/32 md5
すべての IPv6 アドレスの接続を許可する場合。
host all all ::0/0 md5
特定の IPv6 アドレスの接続のみを許可する場合 (<ipv6Address> は、適切なアドレスに置き換えてください):
host all all <ipv6Address>/128 md5
許可を追加する行 (個別の IP や範囲) や、PostgreSQL データベースにアクセスする必要があるマシンに適したサブネットマスクを使用することで、その他の組み合わせも可能になります。
このファイルの変更には、データベースサービスの再起動が必要です。
* 
pg_hba.conf ファイルの設定の詳細については、 「PostgreSQL ドキュメント」を参照してください。
PostgreSQL によるすべての接続の受信の有効化
PostgreSQL の Linux インストールでは、PostgreSQL サーバーが接続を受信するように設定するために、追加の設定手順が必要です。
1. postgresql.conf ファイルで、listen_addresses 行をコメント解除して更新します。
Uncomment the listen_addresses line and change localhost to '*'
# Listen on all addresses. Requires restart.
listen_addresses = '*'
2. PostgreSQL サーバーを再起動します。
PostgreSQL データベーススクリプトの設定および実行
PostgreSQL データベースとテーブルスペースを設定するには、thingworxPostgresDBSetup スクリプトを設定および実行する必要があります。
1. ThingworxStorage フォルダが配置されているドライブ (デフォルトではルートディレクトリ) に ThingworxPostgresqlStorage フォルダを作成します。次のことに注意してください。
-d<databasename> コマンドを使用してフォルダを作成する場合、PostgreSQL ユーザーを使用する必要はありません。
-l オプションは存在するパスに指定する必要があります。たとえば、-l D:\ThingworxPostgresqlStorage です。このスクリプトではフォルダは作成されません。
フォルダには適切な所有権とアクセス権が必要です。PostgreSQL サービスの実行者と同じユーザーによって所有され、そのユーザーには「フルコントロール」が割り当てられている必要があります。このユーザーは一般的には NETWORK_SERVICE ですが、環境によって異なる場合もあります。

$ sudo mkdir /ThingworxPostgresqlStorage
$ sudo chown postgres:postgres /ThingworxPostgresqlStorage
$ sudo chmod 755 /ThingworxPostgresqlStorage
2. ThingWorx ソフトウェアダウンロードパッケージから thingworxPostgresDBSetup スクリプトを取得します。このスクリプトは install フォルダにあります。ThingWorx のダウンロードは PTC ソフトウェアダウンロードから入手できます。
3. 必要に応じて、スクリプトを設定します。下の表に示すオプションを参照してください。
* 
この例では、PTC サイトから x.x.x をダウンロードして使用します。使用するバージョンにファイル名を変更します。

$ sudo unzip MED-61111-CD-08x_ThingWorx-Platform-Postgres-x-x-x.zip
$ cd install
thingworxPostgresDBSetup スクリプトのオプション
オプション
パラメータ
デフォルト
説明
t または -T
tablespace
thingworx
テーブルスペース名
-t thingworx
-p または -P
port
5432
Postgresql のポート番号
-p 5432
-d または -D
database
thingworx
作成する PostgreSQL データベース名
-d thingworx
-h または -H
host
localhost
ホストの名前。
-h localhost
-l または -L
tablespace_location
/ThingworxPostgresqlStorage
必須。データベースオブジェクトを表すファイルが保存されるファイルシステムの場所。
-l または -L
-a または -A
adminusername
postgres
管理者名
-a postgres
-u または -U
thingworxusername
twadmin
データベースへの書き込みアクセス許可を持つユーザー名。
-u twadmin
4. PostgreSQL データベースと PostgreSQL ユーザー名を持つデフォルトの PostgreSQL インストールでデータベースとテーブルスペースを設定するには、次のように入力します。
$ sudo sh thingworxPostgresDBSetup.sh -a postgres -u <user role name> -l /ThingworxPostgresqlStorage
5. スクリプトを実行します。
モデル/データプロバイダスキーマスクリプトの設定および実行
PostgreSQL モデル/データプロバイダスキーマを設定するには、thingworxPostgresSchemaSetup スクリプトを設定および実行する必要があります。これにより、ローカルホストにインストールされた PostgreSQL インスタンス上のデータベースにパブリックスキーマが設定されます。
1. ThingWorx ソフトウェアダウンロードパッケージから thingworxPostgresSchemaSetup ファイルを取得して開きます。このスクリプトは install フォルダにあります。
2. 必要に応じて、スクリプトを設定します。下の表に示すオプションを参照してください。
* 
このスクリプトは次のようにデフォルトのパラメータで実行できます。
$ sudo sh thingworxPostgresSchemaSetup.sh
thingworxPostgresSchemaSetup スクリプトのオプション
オプション
パラメータ
デフォルト
説明
-h または -H
host
localhost
データベースの IP またはホスト名。
-h localhost
-p または -P
port
5432
PostgreSQL のポート番号。
-p 5432
-d または -D
database
thingworx
使用するデータベース名。
-d thingworx
-s または -S
schema
public
使用するスキーマ名。
-s mySchema
-u または -U
username
twadmin
データベーススキーマを更新するユーザー名。
-u twadmin
-o または -O
option
all
以下の 3 つのオプションがあります。
all: モデルおよびデータプロバイダスキーマを指定されたデータベースに設定します。
model: モデルプロバイダスキーマを指定されたデータベースに設定します。
data: データプロバイダスキーマを指定されたデータベースに設定します。
-o data
3. スクリプトを実行します。
* 
ユーザー名は、前の手順で作成した PostgreSQL ユーザー名と一致する必要があります。
platform-settings.json の設定
1. ThingworxPlatform フォルダを、Tomcat がインストールされているドライブのルートに、またはシステム変数として作成します。次のことに注意してください。
ThingWorx が設定を保存する場所を指定するには、THINGWORX_PLATFORM_SETTINGS 環境変数を目的の場所に設定します。THINGWORX_PLATFORM_SETTINGS によって参照されるフォルダが存在しており、Tomcat ユーザーが書き込み可能であることを確認します。この環境変数は、システム環境変数の一部として設定する必要があります。
このフォルダへの読み取りおよび書き込みアクセス権がない場合、ThingWorx サーバーは起動できません。
2. platform-settings.json ファイルを ThingworxPlatform フォルダに配置します。このファイルは、ソフトウェアダウンロードで入手できます。

$ sudo cp platform-settings.json /ThingworxPlatform/
3. platform-settings.json を開き、必要に応じて設定します。 platform-settings.json コンフィギュレーションの詳細に示されているコンフィギュレーションオプションを参照してください。
* 
PostgreSQL サーバーと ThingWorx サーバーが同じでない場合や、ThingWorx のインストールに問題がある場合は、Tomcat のログと platform-settings.json ファイルを確認してください。デフォルトインストールでは、両方のサーバーが同じマシン上にあることが前提になっています。
PostgreSQL パスワードの暗号化
パスワードの暗号化の手順に従って、パスワードを暗号化します
(オプション) PostgreSQL クライアントパッケージと PostgreSQL ユーザーのインストール
クライアントマシンから PostgreSQL サーバーに PostgreSQL コマンドを発行する場合は、PostgreSQL ユーザーから実行します。postgresql-client-x.x パッケージはクライアントマシンにインストールできます。インストール方法については、配布に含まれるドキュメントを参照してください。このパッケージには、psql などの複数の管理ツールが用意されています。
ThingWorx のインストール