PostgreSQL のインストールと構成

Qlik Sense マルチノード展開でのパフォーマンスを向上させるため、リポジトリ (QSR)、SenseServices、QSMQ、QLogs ログ、ライセンス データーベースを専用のリモート PostgreSQL サーバーにインストールするオプションが用意されています。

注: Qlik Sense Enterprise でマルチクラウド展開のコンポーネントをすべて構成するかどうかはオプションです。ただし、マルチクラウドでもオンプレミスでも、すべての展開で SenseServices データベースおよび QSMQ データベースをインストールする必要があります。

Qlik Sense リポジトリ データベース (QSR)

QSR は Qlik Sense 展開のプライマリ データベースです。

PostgreSQL サーバー/ホストの詳細を Qlik Sense インストーラーに入力する必要があるため、QSR データベースを専用の PostgreSQL サーバーにインストールする場合は、Qlik Sense をインストールする前に PostgreSQL をインストールして構成する必要があります。

Qlik Sense サービス データベース (SenseServices)

SenseServices データベースには、各 Qlik Sense サービスのスキーマが含まれており、同じ PostgreSQL インスタンスとログイン ロールを共有したまま、Qlik Sense Repository Database から独立して拡張することができます。

Qlik Sense メッセージ キュー データベース (QSMQ)

QSMQ データベースを利用すると、Qlik Sense Enterprise 内のサービス間におけるメッセージの内部送信が容易になります。PostgreSQL の NOTIFY と LISTEN の機能により、メッセージング テーブルに書き込まれた新しいメッセージをサービスに通知できます。

Qlik Sense ログ データベース (QLogs)

QLogs データベースは、展開内のすべての Qlik Sense ノードからログ メッセージを収集して PostgreSQL データベースに保存することで、ログを一元化します。

QLogs データベースをスタンドアロン ログ データベースとしてインストールする場合は、Qlik Sense をインストールする前後のいずれの時点でも構成できます。

  • Qlik Sense のインストール前に QLogs データベースをインストールする場合は、QLogs データベース ログイン ロールを手動で作成する必要があります。
  • Qlik Sense のインストール後に QLogs データベースをインストールする場合は、Qlik.Logging.Service.exe setup コマンドを使用します。このコマンドを実行する場合は、リモート ホストを指定すると、QLogs データベースとログイン ロールが自動的に作成されます。詳細については、次を参照してください Qlik Logging Service

ライセンス サービス データベース (Licenses)

Licenses データベースには、応答時間を短縮するとともに堅牢性を高めるため、ライセンス データのローカル コピーが保管されます。ライセンス サービスのみがアクセスします。

注: QSR、SenseServices、および QSMQ データベースは同じログイン ロールを共有しており、同じ PostgreSQL インスタンスにインストールする必要があります。
注: 以前の展開の一部としてすでに PostgreSQL データベースがインストールされている場合、それを引き続き使用することができます。
警告: Qlik SensePostgreSQL データベースを専用のインフラストラクチャで使用する場合、 PostgreSQL バージョン 9.6 を使用できますPostgreSQL のインスタンスを、Windows、Linux、クラウド ホスト サービス (例: Amazon RDS) などのプラットフォームで実行できます。ただし、PostgreSQL が Windows 上で実行されていないと、Qlik は構成に対応できません。Linux や Amazon RDS を使用する場合、Qlik Sense 用の PostgreSQL の実行インスタンスを使用するためにインストールし、構成するのはユーザーの責任です。

専用の PostgreSQL サーバーに QSR、SenseServices、QSMQ、QLogs、Licenses データベースをインストールするには、以下の手順を実行します。

  • PostgreSQL のインストール
  • PostgreSQL データベースを作成し、ログイン ロールを構成します。
  • Qlik Sense ノードからのアクセスを許可するように構成ファイルを編集します。
  • データベースがインストールされ、正しく動作していることを確認します。

PostgreSQL のインストール

専用の PostgreSQL サーバー インスタンスをインストールする前に、サーバーが www.postgresql.org に記載のシステム要件を満たしていることを確認します。

注: Microsoft AzurePostgreSQL 用の Azure データベースをインストールする場合は、Azure での PostgreSQL のインストールと構成 の指示に従ってください。

PostgreSQL を専用のサーバーにインストールするには、次の手順を実行します。

  1. PostgreSQL をインストールするサーバーに管理者としてログインします。

    参照先: ユーザー アカウント

  2. PostgreSQL Web サイトから PostgreSQL EnterpriseDB バージョン 9.6 をダウンロードします。

  3. [PostgreSQL 設定ウィザード] を実行します。
  4. [インストール ディレクトリ] および [データ ディレクトリ] 画面で既定のパスを受け入れます。
  5. [パスワード] 画面で PostgreSQL のスーパーユーザーのためのパスワードを作成します。
    このパスワードは PostgreSQL データベースに接続するときに使用し、Qlik Sense の設定を実行するときにも使用するよう促されます。
  6. [ポート] 画面でポート 4432 を指定します。このポートは、サイト内の全ノード間の通信に必要です。

  7. [高度なオプション] 画面で既定の場所を受け入れます。
  8. [インストール準備完了] 画面で [次へ] をクリックして設定を実行します。

  9. 設定の実行後、Stack Builder をインストールすることもできます。これを後からインストールする場合は、チェック ボックスの選択を解除します。
  10. [完了] をクリックしてインストールを完了します。

PostgreSQL EnterpriseDB をインストールすると、pgAdmin ツールが付属します。

PostgreSQL データベースの作成

リポジトリ QSR、SenseServices、QSMQ、QLogs (ログ)、Licenses データベースを pgAdmin ツールを使って手動で作成できます。また、スクリプトを使うこともできます。

pgAdmin ツールを使って、新しい空の PostgreSQL データベースを作成するには、次の手順を実行します。

  1. pgAdmin ツールを開きます。

  2. pgAdmin [ブラウザー] の [サーバー] で PostgreSQL ノードを右クリックし、[サーバーを接続] をクリックします。
  3. 接続するために、PostgreSQL のスーパーユーザーのパスワードを入力します。サーバーの接続が成功すると、画面の右下に緑色のステータス バーが表示されます。
  4. [データベース] ノードを右クリックし、[作成] をクリックしてから [データベース] をクリックします。
  5. 作成しているデータベースの名前を入力し、[保存] をクリックします。

pgAdmin ツール内でスクリプトを実行して、新しい空の PostgreSQL データベースを作成するには、次の手順を実行します。

  1. [クエリ ツール] を開きます。最初に、postgres など既存のデータベースを選択して、[ツール] メニューの [クエリ ツール] オプションを表示します。
  2. 次のスクリプトを実行します。
    CREATE DATABASE "<databasename>" ENCODING = 'UTF8'; --空のデータベースを作成
    <databasename> は、リポジトリ データベースの QSR、SenseServices データベースの SenseServices、メッセージ キュー データベースの QSMQ、ライセンス サービスの Licenses、および QLogs (ログ データベースを作成している場合) で置き換えます。

ログイン ロールの作成

PostgreSQL データベースを作成する場合は、ユーザーのログイン ロールを作成する必要があります。ログイン ロールは、pgAdmin ツールを使用するか、スクリプトを実行して作成できます。

QSR、SenseServices、QSMQ、Licenses のログイン ロール

pgAdmin ツールを使ってログイン ロールを作成するには、次の手順を実行します。

  1. [ログイン/グループのロール] ノードを右クリックします。新規データベース ユーザーを作成するには、[作成] をクリックして、[ログイン/グループ ロール] をクリックします。
  2. [作成 - ログイン/グループのロール] ウィンドウの [基本設定] タブで名前「qliksenserepository」を入力します。
  3. [権限] タブで [Can login?] (ログイン可能) を有効にし、他の既定の権限は変更せずそのままにします。
  4. [定義] タブで、任意のパスワードを入力して [保存] をクリックします。
    Qlik Sense の設定時、[共有持続性データベース接続設定] 画面で、Qlik Sense とリポジトリ データベースの接続のために、ここで作成した [データベース ユーザー] のパスワードの入力を求められます。
  5. qliksenserepositoryQSR、SenseServicesQSMQ データベースの所有者にします。それには、前に作成した QSR、SenseServicesQSMQLicenses データベースを右クリックし、[プロパティ] をクリックします。
  6. [基本設定] タブの [所有者] ドロップダウンで、QSR、SenseServicesQSMQLicenses データベースの [所有者] として qliksenserepository を選択し、[保存] をクリックします。

pgAdmin ツール内でスクリプトを実行してログイン ロールを作成するには、次の手順を実行します。

[クエリ ツール] を開きます。既存のデータベースを選択して、[ツール] メニューの [クエリ ツール] オプションを表示します。

次のスクリプトを実行します。

CREATE ROLE "qliksenserepository" WITH LOGIN NOINHERIT NOSUPERUSER NOCREATEDB NOCREATEROLE NOREPLICATION VALID UNTIL 'infinity'; -- change <qliksenserepository_user_pass> to your password for the repository service user ALTER ROLE "qliksenserepository" WITH ENCRYPTED PASSWORD '<qliksenserepository_user_pass>'; GRANT qliksenserepository TO postgres; ALTER DATABASE "QSR" OWNER TO "qliksenserepository"; ALTER DATABASE "SenseServices" OWNER TO "qliksenserepository"; ALTER DATABASE "QSMQ" OWNER TO "qliksenserepository"; ALTER DATABASE "Licenses" OWNER TO qliksenserepository; GRANT TEMPORARY, CONNECT ON DATABASE "QSMQ" TO PUBLIC; GRANT ALL ON DATABASE "QSMQ" TO postgres; GRANT CREATE ON DATABASE "QSMQ" TO "qliksenserepository"; GRANT TEMPORARY, CONNECT ON DATABASE "SenseServices" TO PUBLIC; GRANT ALL ON DATABASE "SenseServices" TO postgres; GRANT CREATE ON DATABASE "SenseServices" TO "qliksenserepository"; GRANT TEMPORARY, CONNECT ON DATABASE "Licenses" TO PUBLIC; GRANT ALL ON DATABASE "Licenses" TO postgres; GRANT CREATE ON DATABASE "Licenses" TO qliksenserepository;
注: qliksenserepository のパスワードを含めます。Qlik Sense のインストール時にこのパスワードが求められます。

QLogs ログイン ロール

pgAdmin ツール内でスクリプトを実行して QLogs データベースのログイン ロールを作成するには、次の手順を実行します。

  1. [クエリ ツール] を開きます。既存のデータベースを選択して、[ツール] メニューの [クエリ ツール] オプションを表示します。
  2. 次のスクリプトを実行します。
  3. CREATE ROLE qlogs_users WITH NOLOGIN NOINHERIT NOSUPERUSER NOCREATEDB NOCREATEROLE NOREPLICATION VALID UNTIL 'infinity';
    CREATE ROLE qlogs_reader WITH LOGIN NOINHERIT NOSUPERUSER NOCREATEDB NOCREATEROLE NOREPLICATION VALID UNTIL 'infinity';
    CREATE ROLE qlogs_writer WITH LOGIN NOINHERIT NOSUPERUSER NOCREATEDB NOCREATEROLE NOREPLICATION VALID UNTIL 'infinity'; --ユーザーを作成し、権限を割り当て
    ALTER ROLE qlogs_reader WITH ENCRYPTED PASSWORD '<qlogs_reader_password>'; -- パスワードを qlogs_reader に割り当て
    ALTER ROLE qlogs_writer WITH ENCRYPTED PASSWORD '<qlogs_writer_password>'; -- パスワードを qlogs_writer に割り当て
    GRANT qlogs_users TO qlogs_reader;
    GRANT qlogs_users TO qlogs_writer; -- qlogs_reader および qlogs_writerを qlogs_users group に追加
    ALTER DATABASE "QLogs" OWNER TO qlogs_writer; -- qlogs_writer を QLogs データベースの所有者として設定
注: qlogs_readerqlogs_writer のパスワードを含めます。Qlik Sense のインストール時にこれらのパスワードが求められます。

PostgreSQL の構成

PostgreSQL リポジトリ データベースと Qlik Sense ノード間の通信を確立するには、pga_hba.conf 構成ファイルと postgresql.conf 構成ファイルを編集します。

注: 元の設定に戻すこともできるように、編集の開始前に、 postgresql.conf ファイルと pg_hba.conf ファイルのバックアップ コピーを作成しておきます。

postgresql.conf

postgresql.conf ファイルでは、監査、認証、暗号化など、PostgreSQL サーバーの一般的なパラメーターを指定できます。このファイルを編集することで、どの Qlik Sense ノードが PostgreSQL データベース サーバーにアクセスできるのかをコントロールします。

postgresql.conf ファイルを編集するには、次の手順を実行します。

  1. PostgreSQL が格納されている C:\Program Files\PostgreSQL\<バージョン>\datapostgresql.conf ファイルにアクセスします。
  2. 管理者としてこのファイルをテキスト エディタで開きます。
  3. 以下の構成の変更を行います。
    設定説明
    listen_addresses*

    待ち受けを行う IP アドレスを入力します。複数の待ち受けアドレスを入力する場合は、それぞれカンマで区切りながら入力します。
    すべての IP アドレスからの接続を待ち受ける場合は、 * を入力します。

    max_connections600

    許可されるクライアント接続の最大数を定義します。

    この値を計算するには、展開内のノード数に 100 を掛けます。

  4. 変更内容を保存します。

これらのパラメーターの設定方法については、PostgreSQL のドキュメントを参照してください。

pg_hba.conf

pg_hba.conf ファイルではクライアントの認証を扱います。各レコードは、クライアント IP アドレス範囲、データベース名、ユーザー名、使用する認証方法など、接続タイプを指定します。

pg_hba.conf ファイルを編集するには、次の手順を実行します。

  1. PostgreSQL が格納されている C:\Program Files\PostgreSQL\<バージョン>\datapg_hba.conf にアクセスします。
  2. 管理者としてこのファイルをテキスト エディタで開きます。
  3. 次の行を探します。

    host all all 127.0.0.1/32 md5

    リポジトリ データベース サーバーにアクセスできるサーバーをこの行で指定します。既定のアドレス設定、127.0.0.1/32 は、データベースへのアクセスをローカル ホストだけに許可します。

  4. 127.0.0.1/32 をサイト内のすべてのノードの IP アドレスを含むサブ ネット指定で置き換えます。
    これらの設定を指定する際には、アドレスごとにサフィックスとして /32 を使って各ノードに 1 行追加するか、/24 などのサフィックスを使ってすべてのアドレスを含むサブ ネットを追加します。

    • IPv4 (32 ビット アドレス):
      • 単一のアドレスを指定する場合: 192.168.1.0/24 または 172.20.143.89/32
      • 小規模ネットワークの場合: 172.20.143.0/24、またはより規模が大きいネットワークの場合は 10.6.0.0/16

      • すべての IPv4 アドレスからのアクセスを許可する場合: 0.0.0.0/0

    • IPv6 (128 ビットの数値アドレス):
      • 単一のホストの場合: ::1/128 (この場合、IPv6 ループバック アドレス)
      • 小規模ネットワークの場合: fe80::7a31:c1ff:0000:0000/96
      • すべての IPv6 アドレスからのアクセスを許可する場合: ::/0
  5. 警告: IPv6 接続を追加し、アドレス列にホスト名を使用した場合、PostgreSQL がクライアントからの接続を受け入れるには、クライアント マシン上での順行および逆行の nslookup はどちらも有効な値を返す必要があります。詳細については、PostgreSQL のドキュメントを参照してください。
  6. 変更内容を保存します。

制限的な IP アドレスの設定方法については、PostgreSQL のドキュメントを参照してください。

別のサーバーへの PostgreSQL データベースのインストールと構成が完了しました。Qlik Sense のインストールを再開する準備が完了しました。