2.3. RPM/AMI

RPMパッケージを使ってインストールする場合や、AWS Marketplaceで提供されているintdash All-in-One AMIを使用する場合は、以下の手順で行います。

2.3.1. 必須要件

この方法で構築する場合は、以下が必要です。 ただし、intdash All-in-One AMIを使用する場合、※印はAMIに含まれていますので用意する必要はありません。

2.3.2. プロダクトの取得とアクティベーション(intdash All-in-One AMIを使用する場合)

AWS Marketplaceで提供されているintdash All-in-One AMIを使用する場合は事前に以下を準備してください。

  • AWSアカウント

  • intdashインスタンス用のネットワーク設定

    • VPC設定

    • サブネット設定

    • ルーティングテーブル

  • Elastic IP(外部に公開する場合のみ必要)

2.3.2.1. intdashインスタンスを作成する

AWSコンソールを開き、intdashインスタンスを作成します。

  1. AWSにサインインし、[コンピューティング] > [EC2] を選択します。

    ../_images/image51.ja.png

    図 3 [EC2]を選択

  2. ダッシュボードから[インスタンスを起動]をクリックします。

    ../_images/image81.ja.png

    図 4 インスタンスを起動

  3. intdashを検索し、AWS Marketplaceより[intdash 202311 (2023R2) All-in-One] を選択します。

    • 検索ワード:intdash

    • タブ: AWS Marketplace

    ../_images/image82.ja.png

    図 5 intdashの検索と選択

  4. 内容を確認し、[Continue]をクリックします。

    ../_images/image83.ja.png

    図 6 内容を確認し[Continue]をクリック

  5. intdashインスタンスのタイプを選択します。インスタンスタイプはさまざまなCPU、メモリ、ストレージ、ネットワークキャパシティの組み合わせです。この例では「m5.large」を選択し、[次のステップ]をクリックします。

    ../_images/image43.ja.png

    図 7 インスタンスタイプの選択

  6. intdashインスタンスの詳細を設定します。インスタンスが所属するネットワーク、IPアドレスの割り当て、その他の詳細設定を行います。

    この例では「ネットワーク」「サブネット」「自動割り当てパブリックIP」の3つを設定します。必要に応じてその他の項目も設定してください。設定が終わったら、[次のステップ]をクリックします。

    ../_images/image70.ja.png

    図 8 インスタンスの詳細の設定

  7. intdashインスタンスにアタッチするストレージのサイズを選択します。この例では必要最小限のサイズである8GBとしています。なお、ストレージのサイズはインスタンス作成後に一般的な手法で増やすことも可能です。設定が終わったら、[次のステップ]をクリックします。

    ../_images/image16.ja.png

    図 9 ストレージの追加

  8. intdashインスタンスに適用するタグを追加します。タグの追加は任意です。この例では「Name」タグを追加し、値を「intdash」にしています。設定が終わったら、[次のステップ]をクリックします。

    ../_images/image66.ja.png

    図 10 タグの追加

  9. intdashインスタンスに適用するセキュリティグループを設定します。セキュリティグループでは以下を許可してください。設定が終わったら、[確認と作成]をクリックします。

    • SSH(TCP 22番ポート)

    • HTTP(TCP 80番ポート)

    • HTTPS(TCP 443番ポート)

    ../_images/image63.ja.png

    図 11 セキュリティグループの設定

    注釈

    「SSH(TCP 22番ポート)」は、SSHを利用してサーバソフトウェアの設定作業を行うために許可します。必要に応じ接続元を制限することを推奨します。

  10. 設定の確認画面が表示されます。内容を確認し、問題がなければ[起動]をクリックします。

  11. 使用するキーペアを選択します。

    キーペアは intdashインスタンスに接続するために必要な秘密鍵と公開鍵のペアです。既存のキーペアを使用するか、新しいキーペアを作成してください。新しいキーペアを作成する場合は、ここで必ず秘密鍵を自分のコンピューターにダウンロードしてください。

    ../_images/image18.ja.png

    図 12 キーペアを新規作成する場合の例

  12. [インスタンスの作成]をクリックします。

2.3.2.2. intdashインスタンスが作成されたことを確認する

  1. AWSコンソールで、左側のメニューバーから[インスタンス]>[インスタンス]を選択し、インスタンスの一覧を表示します。

    ../_images/image52.ja.png

    図 13 インスタンスを表示する

  2. intdashインスタンスが表示されていることを確認します。またインスタンスの状態およびステータスチェックが以下の状態となっていることを確認します。

    • インスタンスの状態: 「running」

    • ステータスチェック: 「2/2 のチェックに合格しました」

    ../_images/image21.ja.png

    図 14 作成したインスタンスが表示されていることを確認

    ../_images/image1.ja.png

    図 15 [インスタンスの状態]と[ステータスチェック]を確認

注釈

Elastic IPを使用する場合は、Elastic IPアドレスの割り当てを行ってください。

2.3.2.3. intdashインスタンスにSSHで接続できることを確認する

手元のPCのターミナルからintdashインスタンスにSSHで接続できることを確認します。ターミナルで以下のようにコマンドを実行してください。

$ ssh -i PATH-TO-PRIVATE-KEY rocky@INSTANCE-IP-ADDRESS
PATH-TO-PRIVATE-KEY

秘密鍵のファイルパス

INSTANCE-IP-ADDRESS

intdashインスタンスのIPアドレス

例えば、秘密鍵のファイルパスが ./.ssh/intdash-keypair.pem で、intdashインスタンスのIPアドレスが 203.0.113.123 の場合は、コマンドは ssh -i ./.ssh/intdash-keypair.pem rocky@203.0.113.123 のようになります。

正常に接続できた場合は、以下のような画面が表示されます。

$ ssh -i ./.ssh/intdash-keypair.pem rocky@203.0.113.123

    _         _     |   ____               _
   (_) _ __  | |_   |  |  _ \   __ _  ___ | |__
   | || '_ \ | __|  |  | | | | / _` |/ __|| '_ \
   | || | | || |_   |  | |_| || (_| |\__ \| | | |
   |_||_| |_| \__|  |  |____/  \__,_||___/|_| |_|
                    |

https://www.aptpod.co.jp/products/intdash/

Last login: ...
[rocky@ip-10-0-0-123 ~]$

以上でインスタンスが作成できました。 intdashサーバー(フロントエンド)の設定 に進んでください。

2.3.3. データベースの設定

注釈

AMIを使用する場合、設定済みのため本手順は不要です。

ここではPostgreSQLとInfluxDBの設定を行います。

PostgreSQLとInfluxDBをインストールしてから以下の手順を開始してください。

2.3.3.1. PostgreSQLの設定

  1. パスワードを生成します。任意の方法でランダムな文字列を生成します。生成したパスワードは以降の手順で使用します。ここでは pwgen というツールを使用します。pwgen の実行は構築中のサーバー上で行う必要はありません。

pwgen -s -n 10

注釈

pwgenは次のコマンドでインストールします。

# Ubuntu
sudo apt install -y pwgen
# macOS
brew install pwgen
  1. PostgreSQLの設定をします。psql コマンドで対話型シェルを起動します。

sudo -u postgres psql -d template1
  1. データベースとユーザーを作成します。

CREATE ROLE "intdash" WITH LOGIN ENCRYPTED PASSWORD '<生成したランダムパスワード>';
CREATE DATABASE "intdash-api-tenant" OWNER "intdash";
CREATE DATABASE "intdash-api-auth" OWNER "intdash";
CREATE DATABASE "intdash-api-broker" OWNER "intdash";
CREATE DATABASE "intdash-api-measurement" OWNER "intdash";
CREATE DATABASE "intdash-api-media" OWNER "intdash";
CREATE DATABASE "intdash-api-webhook" OWNER "intdash";
CREATE DATABASE "vm2m-data-viz-backend" OWNER "intdash";

2.3.3.2. InfluxDBの設定

  1. 次にInfluxDBの設定をします。influxdb.conf の設定を変更します。この設定は必須ではありませんが、推奨します。

[data]
  ...
  index-version = "tsi1"

[http]
  ...
  auth-enabled = true

注釈

データボリュームを変更する場合は、 influxdb.conf ファイルを編集します。

[meta]
  ...
  dir = "<任意のデータボリュームのディレクトリ>/meta"

[data]
  ...
  dir = "<任意のデータボリュームのディレクトリ>/data"

  ...
  wal-dir = "<任意のデータボリュームのディレクトリ>/wal"
  1. InfluxDBの再起動を行います。

sudo systemctl restart influxdb.service
  1. InfluxDBのユーザーとデータベースを作成します。

influx
> CREATE USER intdash WITH PASSWORD '<生成したランダムパスワード>' WITH ALL PRIVILEGES;
> auth
> auth
username: intdash
password: <設定したランダムパスワード>
> CREATE DATABASE "intdash-measurement" WITH SHARD DURATION 1h;

2.3.4. NATSの設定

注釈

AMIを使用する場合、設定済みのため本手順は不要です。

ここではNATSの設定を行います。

NATSをインストールしてから以下の手順を開始してください。

  1. パスワード を生成します。

    pwgen -s -n 22
    
  2. Bcryptで暗号化します。 natscli を使用します。

    nats server passwd -p <生成したパスワード>
    
  3. nats-server.conf を編集します。

    listen: 0.0.0.0:4222
    jetstream {
      store_dir /home/nats/jetstream
    }
    authorization: {
        user: intdash,
        password: <nats server passwd で生成したBcrypt文字列>
    }
    

注釈

使用される設定ファイルは、systemdのUnitファイルで確認できます。例えばUnitファイルで次のように設定されている場合は /etc/nats-server.conf が使用されますので、これを編集します。

nats-server -c /etc/nats-server.conf
  1. nats-server を再起動します。

    sudo systemctl restart nats-server
    

注釈

Unitファイルは nats-server.service を参考にして配置してください。

2.3.5. intdashサーバーのインストール

注釈

AMIを使用する場合、本手順は不要です。

ここでは、intdashサーバーのインストールを行います。

Nginx、NodeJS 18系のリポジトリを設定してから以下の手順を開始してください。

  1. intdash.repo の設定を行います。/etc/yum.repos.d/intdash.repo を次のように設定してください。

    [intdash]
    name=intdash packages
    baseurl=https://private-repository.aptpod.jp/intdash/202311/linux/rpm
    username=<intdash rpm リポジトリ用のユーザーID>
    password=<intdash rpm リポジトリ用のパスワード>
    enabled=1
    gpgcheck=0
    
  2. intdash サーバーアプリケーションのインストールを行います。

    dnf -y install \
      intdash-api-auth \
      intdash-api-broker \
      intdash-api-gateway \
      intdash-api-measurement \
      intdash-api-media \
      intdash-api-tenant \
      intdash-api-webhook \
      intdash-ffmpeg \
      intdash-nginx \
      intdash-web-admin-console \
      intdash-web-authentication \
      intdash-web-client-auth \
      intdash-web-client-auth-redirector \
      intdash-web-edge-finder \
      intdash-web-meas-hub \
      intdash-web-media-explorer \
      intdash-web-my-page \
      intdash-web-project-console \
      intdash-web-tenants \
      vm2m-data-viz \
      vm2m-data-viz-backend \
      vm2m-data-viz-plugins-core
    

2.3.6. intdashサーバー(フロントエンド)の設定

ここでは、intdashサーバー(フロントエンド)の設定を行います。

  1. 証明書を設定します。ここでは例として以下のドメイン名と証明書ファイルを使用します。

項目

この説明で使用する例

intdash用のドメイン名

intdash.example.com

第三者認証局により発行されたSSLサーバー証明書(サーバー証明書と中間証明書が連結されたもの)

/etc/pki/intdash/certs/intdash.pem

SSLサーバー秘密鍵

/etc/pki/intdash/private/intdash.pem

注釈

intdash用ドメイン名は、組織で所有・管理しているドメイン名に対しサブドメインとして払い出す方法が一般的です。 その場合、例えばexample.comを所有、管理している場合は、intdash用のドメイン名はintdash.example.comのようにします。

詳細については、組織のドメイン名管理者にご相談ください。

注釈

  • サーバー証明書は、SSL/TLS証明書とも呼ばれ、クライアントとサーバーの間の接続情報を保護し、第三者からの読み取りや変更を防ぐものです。

  • セキュリティ上の理由から、自己署名証明書ではなく第三者認証局により発行された証明書を使用してください。自己署名証明書を使用すると、クライアントからの接続時にサーバー証明書の検証に失敗します。サーバー証明書の検証をスキップした場合、通信相手の認証をしないことになり、中間者攻撃等による盗聴・改ざんを許すことになります。

  • 証明書を発行する認証局の例としては、Cybertrust、DigiCert、Let's Encrypt等があります。 Let's Encrypt では、無料で証明書の発行を受けることができます。

  1. Nginxの設定をします。設定ファイルのディレクトリに移動します。

cd /etc/nginx/conf.d
  1. テキストエディターで設定ファイルを開きます。

    vi intdash.conf
    
  2. ポート80(HTTP)とポート443(HTTPS)の server_name にドメイン名を設定します。

    ...
    
    server {
        listen       80;
        listen       [::]:80;
        server_name  intdash.example.com;   <----
    
        ...
    }
    
    server {
        listen       443 ssl http2;
        listen       [::]:443 ssl http2;
        server_name  intdash.example.com;   <----
    
        ...
    
    ...
    
  3. 同じ設定ファイル内でポート443の ssl_certificate にサーバー証明書、 ssl_certificate_key にサーバー証明書の秘密鍵を指定します。その後設定ファイルを閉じます。

    ...
    
    server {
        listen       443 ssl http2;
        listen       [::]:443 ssl http2;
    
        ...
    
        ssl_certificate     /etc/pki/intdash/certs/intdash.pem;        <----
        ssl_certificate_key /etc/pki/intdash/private/intdash.pem;      <----
    
    ...
    

次にintdash の OAuth2 認証におけるウェブ UI クライアントの認証を担う UI サービス(intdash-web-client-auth) の設定を行います。

  1. 設定ファイルのディレクトリに移動します。

    cd /etc/sysconfig
    
  2. テキストエディターで設定ファイルを開きます。

    vi intdash-web-client-auth
    
  3. AUTHORIZATION_HOSTCLIENT_HOST にドメイン名を入力します。その後、設定ファイルを閉じます。

    ...
    AUTHORIZATION_HOST="https://intdash.example.com"   <----
    CLIENT_HOST="https://intdash.example.com"          <----
    ...
    

次に intdash の認証関連の UI サービス(intdash-web-authentication)の設定を行います。

  1. 設定ファイルのディレクトリに移動します。

    cd /etc/sysconfig
    
  2. テキストエディターで設定ファイルを開きます。

    vi intdash-web-authentication
    
  3. CLIENT_HOST にドメイン名を入力します。その後、設定ファイルを閉じます。

    ...
    CLIENT_HOST="https://intdash.example.com"   <----
    ...
    

2.3.7. intdashサーバー(バックエンド)の設定

ここでは、intdashサーバー(バックエンド)の設定を行います。

以降バックエンドサービスを一つずつ設定していきます。設定するサービスは次のとおりです。

  • Tenant Service(intdash-api-tenant)

  • Authentication Service(intdash-api-auth)

  • Broker Service(intdash-api-broker)

  • Measurement Service(intdash-api-measurement)

  • Media Service(intdash-api-media)

  • Webhook Service(intdash-api-webhook)

  • VM2M Data Visualizer Backend Service(vm2m-data-viz-backend)

  • Tenant UI(intdash-web-tenants)

2.3.7.1. Tenant Service

  1. テナント管理APIの認証情報使用するパスワードを生成します。ここでは pwgen を使用します。

pwgen -s -n 10
  1. 設定ファイルのディレクトリに移動します。

cd /etc/intdash
  1. テキストエディターで設定ファイルを開きます。

vi intdashd.conf
  1. 設定ファイルの次の箇所を設定します。ここでは主に次の内容を設定します。

    • PostgreSQLへの接続設定

    • テナント管理APIの認証情報設定

...
[postgres]
  ...
  address = '/var/run/postgresql' <----
  password = '' <----
  ...

[tenant]
  enable = true        <---- trueにする
  ...
  basic-password = ''  <---- 生成したランダムパスワード
  ...

2.3.7.2. Authentication Service

  1. 設定ファイルのディレクトリに移動します。

cd /etc/intdash
  1. テキストエディターで設定ファイルを開きます。

    vi authd.conf
    
  2. 設定ファイルの次の箇所を設定します。ここでは主に次の内容を設定します。

    • PostgreSQL,NATSなど各種ミドルウェアへの接続設定

    • WebアプリケーションのURL設定(ホスト名の変更)

    ...
    [postgres]
      ...
      address = '/var/run/postgresql' <----
      password = '' <----
      ...
    
    ...
    [jet-stream]
      url = 'nats://127.0.0.1:4222' <----
      username = '' <----
      password = '' <----
      ...
    
    ...
    [oauth2]
      issuer-base = 'https://intdash.example.com' <---- ホスト名を修正する
      sign-in-page-url = 'https://intdash.example.com/console/signin/' <---- ホスト名とパスを修正する
      change-password-page-url = 'https://intdash.example.com/oauth2/authorization/api/password-change' <---- ホスト名を修正する
      web-client-redirect-base-urls = [
       'https://intdash.example.com'  <---- ホスト名を修正する
       ...
      ]
    
    ...
    [user-email]
      ...
      verification-page-url = 'https://intdash.example.com/console/email/activate/' <---- ホスト名とパスを修正する
      ...
    
    ...
    [user-password]
      ...
      recovery-page-url = 'https://intdash.example.com' <---- ホスト名を修正する。
      ...
    
  3. 認証で使用する認証用のJWT秘密鍵やRSA秘密鍵を設定します。ここでは pwgen を使用してシークレットを生成します。必ず32文字以上のランダム文字列を設定してください。

pwgen -s -n 32

注釈

ここで固定値を設定しない場合、intdash-api-authサービスが再起動されるたびに、認証用のJWT秘密鍵やRSA秘密鍵が自動生成されます。 その場合、サービスを再起動するたびに、以下のようなことが起こります。

  • APIトークンが無効になる

  • ユーザーのログイン状態がリセットされる

  • メールアドレス確認用のメールに含まれるリンクが無効になる

そのため、固定の値を設定することを推奨します。

  1. RSA秘密鍵を生成します。ここでは openssl を使用します。

openssl genrsa 2048 2>/dev/null | sed -e 's/$/\\\\n/' | tr -d '\\n'
  1. authd.conf の認証に使用するJWT秘密鍵やRSA秘密鍵を設定します。

    ...
    [keys]
      [keys.oauth2-rsa]
        [keys.oauth2-rsa.private-key]
          [keys.oauth2-rsa.private-key.static]
            ...
            key = "" <---- 前の手順で出力された内容を貼り付ける。ダブルクオーテーションを使用する。
    
    ...
    [keys.oauth2-hmac]
      ...
      hash-secret = '' <---- 生成したランダム文字列
      rotated-hash-secrets = [""]
      ...
    
    ...
    [keys.api-token]
      ...
      hash-secret = '' <---- 生成したランダム文字列
      rotated-hash-secrets = [""]
      ...
    
    ...
    [keys.password-recovery]
      ...
      hash-secret = '' <---- 生成したランダム文字列
      rotated-hash-secrets = [""]
      ...
    
    ...
    [keys.email-verification]
      ...
      hash-secret = '' <---- 生成したランダム文字列
      rotated-hash-secrets = [""]
      ...
    

    注釈

    [keys.oauth2-rsa.private-key] サブセクションでは、 driver = "file" を指定することで、PEM形式の文字列を直接書き込む代わりにRSA秘密鍵のファイルパスを指定して読み込ませることも可能です。

    秘密鍵ファイルはintdashユーザーで動作するintdash-api-authサービスから読み込まれます。intdashユーザーからの読み込みができるように、ファイルのパーミッション、オーナー、グループを設定してください。

    [keys]
      [keys.oauth2-rsa]
        [keys.oauth2-rsa.private-key]
          driver = "file"
          [keys.oauth2-rsa.private-key.file]
            path = "/etc/intdash/authd.d/keys/oauth2_rsa"   <----
    

2.3.7.3. Broker Service

  1. 設定ファイルのディレクトリに移動します。

cd /etc/intdash
  1. iSCPプロトコルの接続認証で使用する、シークレットを設定します。ここでは pwgen を使用して生成します。

pwgen -s -n 32
  1. テキストエディターで設定ファイルを開きます。

vi brokerd.conf
  1. 設定ファイルの次の箇所を設定します。ここでは主に次の内容を設定します。

    • PostgreSQL,NATSなど各種ミドルウェアへの接続設定

    • シークレット情報

...
[postgres]
  ...
  address = '/var/run/postgresql' <----
  password = '' <----
  ...

...
[nats]
  url = 'nats://127.0.0.1:4222' <----
  username = '' <----
  password = '' <----
  ...

...
[jet-stream]
  url = 'nats://127.0.0.1:4222' <----
  username = '' <----
  password = '' <----
  ...

...
[ticket]
  secret = '' <---- 生成したランダム文字列
...

2.3.7.4. Measurement Service

  1. (デフォルト値から変更する場合のみ)計測をアップロードする機能が使用する保存用のディレクトリを設定します。

mkdir -p <任意のデータディレクトリ。例 /data/intdash/upload>
chown intdash:intdash <作成したデータディレクトリ>
chmod 700 <作成したデータディレクトリ>
  1. 設定ファイルのディレクトリに移動します。

cd /etc/intdash
  1. テキストエディターで設定ファイルを開きます。

vi measurementd.conf
  1. 設定ファイルの次の箇所を設定します。ここでは主に次の内容を設定します。

    • PostgreSQL,NATSなど各種ミドルウェアへの接続設定

    • シークレット情報

...
[postgres]
  ...
  address = '/var/run/postgresql' <----
  password = '' <----
  ...

...
[jet-stream]
  url = 'nats://127.0.0.1:4222' <----
  username = '' <----
  password = '' <----
  ...

...
[influxdbs]
  [influxdbs.0]
    ...
    address = 'http://127.0.0.1:8086' <----
    password = '' <----
    ...

...
[upload]
  ...
  [upload.local-storage]
    ...
    directory = '/var/lib/intdash/upload' <---- (必要に応じて)作成した保存用のデータディレクトリ

注釈

Measurement Serviceのアップロード機能が使用するストレージについては ファイルシステム か S3(またはS3互換のOSS)を使用することができます。 デフォルトはファイルシステムとなっていますが、保守の観点からS3の使用を推奨します。

設定方法については Measurement Service を参照してください。

2.3.7.5. Media Service

  1. (デフォルト値から変更する場合のみ)メディアデータ(動画データなど)の保存用のディレクトリを作成します。

mkdir -p <任意のデータディレクトリ。例 /data/intdash/media/hls>
chown intdash:intdash <作成したデータディレクトリ>
chmod 700 <作成したデータディレクトリ>
  1. 設定ファイルのディレクトリに移動します。

cd /etc/intdash
  1. テキストエディターで設定ファイルを開きます。

vi mediad.conf
  1. 設定ファイルを次のように編集します。

    • PostgreSQL,NATSなど各種ミドルウェアへの接続設定

    • データディレクトリ情報

...
[postgres]
  ...
  address = '/var/run/postgresql' <----
  password = '' <----
  ...

...
[media-filmed]
  ...
  [media-filmed.storage]
    ...
    [media-filmed.storage.local]
      ...
      base-dir = '/var/lib/intdash/media/hls' <---- 作成したデータディレクトリ
      ...

  ...
  [media-filmed.jet-stream]
    url = 'nats://127.0.0.1:4222' <----
    username = '' <----
    password = '' <----
    ...

注釈

メディアデータ(動画データなど)を保存するストレージについては ファイルシステム か S3(またはS3互換のOSS)を使用することができます。 デフォルトはファイルシステムとなっていますが、保守の観点からS3の使用を推奨します。

設定方法については Media Service を参照してください。

2.3.7.6. Webhook Service

  1. 暗号化キーを生成します。ここでは pwgen というツールを使用します。

# Webhookのシークレット暗号化キー
pwgen -s -n 32
  1. 設定ファイルのディレクトリに移動します。

cd /etc/intdash
  1. テキストエディターで設定ファイルを開きます。

vi webhookd.conf
  1. 設定ファイルを次のように編集します。

...
[postgres]
  ...
  address = '/var/run/postgresql' <----
  password = '' <----
  ...

[jet-stream]
  ...
  url = 'nats://127.0.0.1:4222' <----
  username = '' <----
  password = '' <----
  ...

 [cipher]
   key = '' <---- Webhookのシークレット暗号化キー

2.3.7.7. VM2M Data Visualizer Backend Service

  1. 設定ファイルのディレクトリに移動します。

cd /etc/vm2m-data-viz-backend
  1. テキストエディターで設定ファイルを開きます。

vi datavizd.conf
  1. 設定ファイルを次のように編集します。

...
[postgres]
  ...
  address = '/var/run/postgresql' <----
  password = '' <----
  ...

2.3.7.8. Tenant UI(テナント管理UI)

  1. パスワードと暗号化キーを生成します。ここでは pwgen というツールを使用します。

# Tenant UIへログインするパスワード生成
pwgen -s -n 10

# Tenant UIのCSRF用の暗号化キー
pwgen -s -n 32
  1. 設定ファイルのディレクトリに移動します。

cd /etc/intdash-web-tenants
  1. テキストエディターで設定ファイルを開きます。

vi tenantd.conf
  1. 設定ファイルを次のように編集します。

...

[private-intdash-api]
  [private-intdash-api.basic-auth]
    ...
    password = '' <----  intdash-apiの設定で設定したパスワード

[basic-auth]
  password = ''   <----  1の手順で生成したパスワード

[csrf]
  encryption-key = '' <----  1の手順で生成した暗号化キー

2.3.8. データベースのマイグレーション

データベースのマイグレーションを実施します。次のコマンドを実行します。

sudo -u intdash intdashd db migrate -c /etc/intdash/intdashd.conf
sudo -u intdash authd db migrate -c /etc/intdash/authd.conf
sudo -u intdash brokerd db migrate -c /etc/intdash/brokerd.conf
sudo -u intdash measurementd db migrate -c /etc/intdash/measurementd.conf
sudo -u intdash mediad db migrate -c /etc/intdash/mediad.toml
sudo -u intdash webhookd db migrate -c /etc/webhook/webhookd.conf
sudo -u intdash datavizd db migrate -c /etc/vm2m-data-viz-backend/datavizd.conf

警告

authd のマイグレーション時に初期ユーザーのIDとパスワードが出力されます。 ここで出力されたパスワードは初回ログインで使用するので必ず控えておいてください。

2.3.9. 各intdashサービスの起動

intdashの各マイクロサービスを起動します。

  1. SSHでAPIサーバーに接続し、各サービスを有効化するために以下のコマンドを実行します。

sudo systemctl enable nginx.service
sudo systemctl enable intdash-api-auth.service
sudo systemctl enable intdash-api-broker.service
sudo systemctl enable intdash-api-gateway.service
sudo systemctl enable intdash-api-measurement.service
sudo systemctl enable intdash-api-media.service
sudo systemctl enable intdash-api-tenant.service
sudo systemctl enable intdash-api-webhook.service
sudo systemctl enable intdash-web-admin-console.service
sudo systemctl enable intdash-web-authentication.service
sudo systemctl enable intdash-web-client-auth-redirector.service
sudo systemctl enable intdash-web-client-auth.service
sudo systemctl enable intdash-web-edge-finder.service
sudo systemctl enable intdash-web-meas-hub.service
sudo systemctl enable intdash-web-media-explorer.service
sudo systemctl enable intdash-web-my-page.service
sudo systemctl enable intdash-web-project-console.service
sudo systemctl enable intdash-web-tenants.service
sudo systemctl enable vm2m-data-viz-backend.service
  1. 各サービスを起動するために以下のコマンドを実行します。

    sudo systemctl start nginx.service
    sudo systemctl start intdash-api-auth.service
    sudo systemctl start intdash-api-broker.service
    sudo systemctl start intdash-api-gateway.service
    sudo systemctl start intdash-api-measurement.service
    sudo systemctl start intdash-api-media.service
    sudo systemctl start intdash-api-tenant.service
    sudo systemctl start intdash-api-webhook.service
    sudo systemctl start intdash-web-admin-console.service
    sudo systemctl start intdash-web-authentication.service
    sudo systemctl start intdash-web-client-auth-redirector.service
    sudo systemctl start intdash-web-client-auth.service
    sudo systemctl start intdash-web-edge-finder.service
    sudo systemctl start intdash-web-meas-hub.service
    sudo systemctl start intdash-web-media-explorer.service
    sudo systemctl start intdash-web-my-page.service
    sudo systemctl start intdash-web-project-console.service
    sudo systemctl start intdash-web-tenants.service
    sudo systemctl start vm2m-data-viz-backend.service
    
  2. 起動後、各サービスが正常に起動していることを確認します。

    sudo systemctl status nginx.service
    sudo systemctl status intdash-api-auth.service
    sudo systemctl status intdash-api-broker.service
    sudo systemctl status intdash-api-gateway.service
    sudo systemctl status intdash-api-measurement.service
    sudo systemctl status intdash-api-media.service
    sudo systemctl status intdash-api-tenant.service
    sudo systemctl status intdash-api-webhook.service
    sudo systemctl status intdash-web-admin-console.service
    sudo systemctl status intdash-web-authentication.service
    sudo systemctl status intdash-web-client-auth-redirector.service
    sudo systemctl status intdash-web-client-auth.service
    sudo systemctl status intdash-web-edge-finder.service
    sudo systemctl status intdash-web-meas-hub.service
    sudo systemctl status intdash-web-media-explorer.service
    sudo systemctl status intdash-web-my-page.service
    sudo systemctl status intdash-web-project-console.service
    sudo systemctl status intdash-web-tenants.service
    sudo systemctl status vm2m-data-viz-backend.service
    

正常に動作していれば Active: active (running) と表示されます。

2.3.10. メールサーバーと通知メール送信元を設定する

パスワードを忘れた場合の認証の際などに、intdashサーバーが使用者にメールを送信することがあります。その際に使用する送信元のメールアドレスとSMTPサーバーを設定します。

  1. SSHでintdashサーバーに接続し、設定ファイルのディレクトリに移動します。

    cd /etc/intdash
    
  2. テキストエディターで設定ファイルを開きます。

    vi authd.conf
    
  3. [smtp]セクションにSMTPサーバーの情報と送信メールの情報を入力します。SMTPサーバーの情報はお使いの環境に合わせて Authentication Service を参照し、 設定してください。その後、設定ファイルを閉じます。

    [smtp]
     ...
     enable = true
     ...
     from = '<送信元として使用されるメールアドレス>'
     reply-to = '<Reply-toヘッダーに使用されるメールアドレス(設定は必須ではありません)>'
    
  4. 設定を反映させるため、以下のコマンドでintdash-api-authサービスを再起動します。

    sudo systemctl restart intdash-api-auth.service
    
  5. 再起動後、intdash-api-authが正常に起動していることを確認します。

    sudo systemctl status intdash-api-auth.service
    

    正常に動作していれば Active: active (running) と表示されます。

2.3.11. 管理者ユーザーのアカウントを設定する

初期状態では、「intdash」という名前の管理者ユーザーアカウントが存在します。 本セクションではこのアカウントのメールアドレスを設定します。

  1. ウェブブラウザーで https://intdash.example.com/console/me/ にアクセスします。

  2. サインイン画面が表示されたら、管理者ユーザー名 intdash と、さきほど設定した初期ユーザーパスワードでサインインします。

    ユーザー intdash のMy Pageが表示されます。

    ../_images/image36.ja.png

    図 16 My Page

  3. [ユーザー情報] > 「メールアドレス」 で管理者ユーザーのメールアドレスを入力し、[追加]をクリックします。

    ../_images/image37.ja.png

    図 17 メールアドレスを設定

  4. 以下のメッセージが表示されます。メールアドレスが正しいことを確認し、[閉じる]をクリックします。

    ../_images/image44.ja.png

    図 18 メールアドレスを確認

  5. お使いのメールクライアントで確認メールを開き、メールに記載されているアクティベーション用URLにアクセスします。

    メールに記載されているアクティベーション用URLにアクセスします。

    ../_images/image54.ja.png
  6. 再度、My Pageの[ユーザー情報]を開き、メールアドレスが以下のように[確認済み]となっていれば設定は完了です。

    ../_images/image80.ja.png

    図 19 メールアドレス確認済み

2.3.12. Google MapsのAPIキーを設定する(Google Mapsを使用する場合のみ)

Data VisualizerでGoogle Mapsビジュアルパーツを使用するためには、Google MapsのAPIキーをintdashサーバーに設定しておく必要があります。

注釈

  • Data Visualizerでは、Open Street Mapを使用することもできます。Open Street Mapを使用する場合、ここでAPIキーを設定する必要はありません。

  • Google Mapsの詳細に関しては Google Maps公式サイト を参照してください。

../_images/image71.png

図 20 Google Mapsビジュアルパーツ

Google MapsのAPIキーの設定は、intdashサーバーの設定用APIに管理者ユーザーとしてアクセスして行います。

  1. SSHでintdashサーバーに接続します。

  2. 設定ファイルのディレクトリに移動します

    cd /etc/vm2m-data-viz-backend/vm2m-2nd-variables
    
  3. JSONファイルを編集します。

    vi vm2m-2nd-variables.production.json
    
  4. 次の内容で更新します。

    {
      "googleMapsApiKey":"<Google Maps のAPIキー>",
      "googleMapsApiClientID":""
    }
    

    注釈

    APIキーではなくClient IDをお持ちの場合は、下記のように googleMapsApiClientID の値として入力してください。

    {
      "googleMapsApiKey":"",
      "googleMapsApiClientID":"<GoogleMapsのClientID>"
    }
    
  5. vm2m-data-viz-backend サービスを再起動します。再起動されたタイミングで設定が反映されます。

    sudo systemctl restart vm2m-data-viz-backend.service