EDM エージェントのセットアップ(Linux 編)

※ NEC AI Accelerator を利用している場合、NEC AI Accelerator 編を参照ください。

インストールに関する注意事項について

本ページに記載する手順は、root ユーザーで実施してください。手順中でユーザーを変更する場合は、以下のように記載します。

# su - postgres ← root ユーザーで実行し、postgres ユーザーに切り替えます。
$ initdb ← postgres ユーザーで実行します。

以下を満たしていることを確認してください。Ansible Playbook の実行に必要となります。

  • インターネットに接続できること

  • (RHELのみ) RHELサブスクリプション登録済みになっていること
    以下を実行して確認します。

    # subscription-manager list --available
    (Available Subscriptions にサブスクリプション情報が出力されることを確認)
    

はじめに

セットアップは以下の流れで実施します。

  1. IoT Connectivity Engine (ICE Core) のセットアップ
  2. EDM コンポーネントのセットアップ
  3. ログ管理Agent をセットアップする

各コンポーネントをセットアップするため、以下のインストール媒体を準備します。X.X.Xにはバージョン番号が入ります。インストール媒体はエッジ機器の任意ディレクトリに配置されていることを前提とします。

Red Hat Enterprise Linux, CentOS の場合

コンポーネント名 ファイル名 格納先
ICE Core iot_connectivity_engine_core-x64-X.X.X.tar.gz ice
EDM コンポーネント edm_agent_x64-X.X.X.tar.gz edm_agent

Debian, Raspbian の場合

x64

コンポーネント名 ファイル名 格納先
ICE Core iot_connectivity_engine_core-x64-X.X.X.tar.gz ice
EDM コンポーネント edm_agent_x64-X.X.X.tar.gz edm_agent

arm (32bit)

コンポーネント名 ファイル名 格納先
ICE Core iot_connectivity_engine_core-arm-x.x.x.tar.gz ice
EDM コンポーネント edm_agent-arm32-x.x.x.tar.gz edm_agent

arm (64bit)

コンポーネント名 ファイル名 格納先
ICE Core iot_connectivity_engine_core-arm64-x.x.x.tar.gz ice
EDM コンポーネント edm_agent-arm64-x.x.x.tar.gz edm_agent

注意事項

  1. エッジ機器の時刻にずれがないことを事前確認します

IoT Connectivity Engine (ICE Core) のセットアップ

connexive_edm_agent.zipを任意のディレクトリに配置し展開します。

# unzip connexive_edm_agent.zip
(unzipコマンドがない場合は、インストール願います。)

iceフォルダの中から、プラットフォームに対応した媒体を選択し、以降の手順を実施します。

ICE Core のファイル展開

# mkdir -p /opt/nec/pf/ice
# tar xzf iot_connectivity_engine_core-XXX-X.X.X.tar.gz -C /opt/nec/pf/ice/
# rm iot_connectivity_engine_core-XXX-X.X.X.tar.gz

ICE Core のサービス登録

以下のコマンドを実行し、サービスの登録と有効化を行う。

# cp /opt/nec/pf/ice/core/bin/ice-core.service /etc/systemd/system/
# systemctl daemon-reload
# systemctl enable ice-core

以下のコマンドを実行し、ice-core サービスのステータスが Loaded: loaded であることを確認します。

# systemctl status ice-core
● ice-core.service - IoT Connectivity Engine Core
   Loaded: loaded (/etc/systemd/system/ice-core.service; enabled; vendor preset: enabled)
~~

※ インストールパス中に日本語やスペースを含む場所にはインストールできません。

※ 以下の設定を行う場合、IoT Connectivity Engine 2.0 - インストール(Linux)/ サービス登録をご参照ください。

  • ICE Core をデフォルトと異なる場所にインストールする場合
  • pid ファイルと lock ファイルの配置先を変更する場合

ICE Core の接続設定

cloud_config.json の設定

  • {ICE Core 接続先} には次のいずれかの値を設定します。
  • {ユーザー名}{パスワード} はマネージャー側に設定された値を設定します。
# cd /opt/nec/pf/ice/core/conf/
# cp -p cloud_config.json cloud_config.json.backup
# vi cloud_config.json
{
    "default": {
        "alias": ["app", "adm"],
        "type": "mqtt",
        "compatible_mode": "ice-v1",
        "config": {
            "url": "mqtt://{ICE Core 接続先}:1883",
            "timeout": 30000,
            "options": {
                "username": "{ユーザー名}",
                "password": "{パスワード}"
            }
        }
    }
}

※マネージャー側の設定により設定値は変更が必要です。設定パターンは ICE Core の接続設定例 を参照ください。

core_config.json の設定

エッジIDは対象機器を一意に特定するための識別子となるため、他の機器と重複しない文字列を指定してください。

# cd /opt/nec/pf/ice/core/conf/
# cp -p core_config.json core_config.json.backup
# vi core_config.json
{
    "version": "X.X.X",
    "default_logger": "SYSLOG",
    "edge_id": "{エッジ ID}",
    "modifiable_home_dir": "",
    "heartbeat": {
        "enabled": true,
        "min_interval": 1800000,
        "max_interval": 3600000
    },
    "native_app": {
        "env": {
            "LD_LIBRARY_PATH_suffix": "native/lib:native/user_lib",
            "default_env": {}
        },
        "shutdown_timeout": 30000
    },
    "download": {
        "white_dirs": [
            "/tmp"
        ],
        "default_timeout": 3600000,
        "max_timeout": 3600000,
        "check_content_length": true
    },
    "upload": {
        "white_dirs": [
            "/tmp"
        ],
        "default_timeout": 3600000,
        "max_timeout": 3600000,
        "http": {
            "options": {
                "auth": "{ファイルダウンロード用ユーザの E-Mail}:{ファイルダウンロードユーザ用のパスワード}"
            },
            "useFormData": false
        }
    },
    "notification": {
        "enabled": false,
        "initialDelay": 1000
    },
    "nodered": {
        "enabled": false
    }
}

詳細な設定手順については、IoT Connectivity Engine 2.0 - インストール(Linux)をご参照ください。

EDM コンポーネントのセットアップ

edm_agentフォルダの中から、プラットフォームに対応した媒体を選択し、以降の手順を実施します。

実行ユーザーを作成する

以下のコマンドを実行し、ユーザーを新規追加します。

# adduser --uid 1100 edgesw

以下のコマンドを実行し、ユーザーが正常に登録されたことを確認します。

# grep edgesw /etc/passwd
edgesw:x:1100:1100::/home/edgesw:/bin/bash

以下のコマンドを実行し、ファイル末尾に設定を追加します。

visudo コマンドが存在しない場合 sudo パッケージを事前にインストールしてください。

# visudo
~~ 省略 ~~
edgesw ALL=(ALL:ALL) NOPASSWD: ALL

以下のコマンドを実行し、sudo 設定が正常に行われたことを確認します。

# tail -1 /etc/sudoers
edgesw ALL=(ALL:ALL) NOPASSWD: ALL

EDM コンポーネントのファイル展開

# mkdir -p /opt/nec/pf/edm
# tar xvf edm_agent-XXX-X.X.X.tar.gz -C /opt/nec/pf/
# rm edm_agent-XXX-X.X.X.tar.gz

EDM コンポーネントの接続設定

prestartup.properties ファイルの tenant_name にマネージャーへの接続情報を追記します。

※設定値はシングルクォーテーションやダブルクォーテーションで囲む必要はありません。

# cd /opt/nec/pf/edm/agent/conf
# cp -p prestartup.properties prestartup.properties.backup
# vi prestartup.properties
tenant_name={テナント名}
(CONNEXIVE Edge Device Management マネージャーへ接続する際の設定例)
tenant_name=NEC
(NEC エッジ・デバイス管理サービスへ接続する際の設定例)
tenant_name=TN1233d6aca098192fba407xyz

EDM コンポーネントの起動

以下のコマンドを実行し、EDM コンポーネントを起動します。

# systemctl stop ice-core
# systemctl start ice-core

以下のコマンドを実行し、ice-core サービスのステータスが Active: active (running) であることを確認します。

# systemctl status ice-core
● ice-core.service - IoT Connectivity Engine Core
   Loaded: loaded (/etc/systemd/system/ice-core.service; enabled; vendor preset: disabled)
   Active: active (running) since 金 2022-03-18 16:09:54 JST; 1min 39s ago
~~ 省略 ~~

動作確認

  1. EDM管理画面を確認する
    アクセス先: http://<管理サーバーのIPアドレス>/<テナントIDの値>/
  2. アカウント情報を入力し、ログインする
  3. サイドナビゲーションから「エッジ一覧」を選択する
  4. 追加したエッジが登録されていることを確認する