メインコンテンツまでスキップ

ユーティリティモジュール

Platform の運用を支援する補助モジュールの集まりです。常時実行されるのではなく、必要時に実行する方式です。

現在のコンテナ出荷版にすべて含まれているわけではありません

コンテナイメージに含まれるモジュールは決まっており、下表の多くは現行イメージに含まれていません。 コンテナ内で該当パスを探しても存在しません。

モジュール用途現行出荷版
backup統合バックアップ (PG / Aster TSDB / ファイル)✅ データレイクコンテナに含まれる
mirror-makerデータ複製 (HA / DR)✅ 別途コンテナ — mirror プロファイルでデフォルトOFF
apiREST API クライアントライブラリ✅ 外部 Java プロジェクトで使用するライブラリ (コンテナとは無関係)
setup初期モデル一括登録 (CSV)✅ 専用イメージとして提供(2026.09) — Java・ビルド不要
recoveryデータ復旧❌ イメージ未含有
exporter時系列 CSV エクスポート❌ イメージ未含有
migratorAster TSDB データマイグレーション❌ 2026-08-30 除外
labJupyter / Metabase 分析環境❌ 2026-08-30 除外

migrator と lab は、「オーケストレーターが呼び出さず、ユニットもなく、実際に動作するプロセスもない」という理由でイメージから明示的に除外されました(lab はイメージ 792MB を占有していました)。

以下の手順が必要な場合は、webmaster@kopens.com までお問い合わせください。

データレイクコンテナに含まれるモジュールは、コンテナ内で実行します。

cd /opt/kopens/plantpulse-platform-docker/bin
./shell.sh

plantpulse-setup​

CSV ファイルベースのサイト / 資産 / OPC / タグモデルを一括登録します。

2026.09 より専用コンテナイメージとして提供されます — Java をインストールしたり、ビルドしたりする必要はありません。

# 내 CSV 를 마운트해서 등록
docker run --rm -v "$PWD/csv:/csv" \
docker.kopens.io/pp/plantpulse-setup:latest \
--host ${PP_HOST_IP} --port 80 --user admin --password '<password>' --dir /csv

# 이미지에 든 예제로 먼저 시험 — 마운트 없이 됩니다
docker run --rm docker.kopens.io/pp/plantpulse-setup:latest \
--host ${PP_HOST_IP} --port 80 --user admin --password '<password>' \
--dir /opt/kopens/plantpulse-platform/plantpulse-setup/model_example

docker run --rm docker.kopens.io/pp/plantpulse-setup:latest --help
項目値
イメージdocker.kopens.io/pp/plantpulse-setup:<릴리즈 태그> · :latest
CSV 伝達ホストディレクトリをマウントし、--dir にコンテナ内パスを指定します
エンコーディングデフォルトは MS949。UTF-8 の場合は -e CSV_CHARSET=UTF-8
必須引数--host · --port · --user · --password · --dir (デフォルト値なし)
プロトコルHTTP 専用 — --port に 80 を指定します
以前の例にある --port 7003 は現在正しくありません

API コネクタ 7003 は 2026-09-14 に削除されました。現在はウェブと同様に 80 で接続します。 7003 をそのまま使用すると接続できません。

🔴 443 も使用できません。 このツールはプレーンテキスト HTTP のみで通信します(ソースに固定)。443 を指定すると、TLS ポートにプレーンテキストでリクエストを送ることになり、接続できません。これは 7003 と同様の失敗(インストールは完了したが接続できない)となります。

CSV ファイルの順序:

  1. 1_SITE_LIST.csv — サイトリスト
  2. 2_ASSET_TREE.csv — アセット階層
  3. 3_OPC_LIST.csv — OPC サーバー接続
  4. 4_TAG_LIST.csv — タグ定義

plantpulse-backup​

PostgreSQL (pgBackRest), Aster TSDB (Medusa), ファイル (Restic) の統合バックアップ。

cd /opt/kopens/plantpulse-platform/plantpulse-backup/bin

./backup.sh --install # 초기 설정
./backup.sh --postgres # PG Differential (기본)
./backup.sh --postgres full # PG Full
./backup.sh --postgres incr # PG Incremental
./backup.sh --cassandra # Cassandra Differential
./backup.sh --cassandra full # Cassandra Full
./backup.sh --purge # 보관 정책 정리

# 파일 백업
/opt/kopens/plantpulse-platform/plantpulse-backup/etc/run_restic.sh

スケジュールはこのツールで管理しません。 --cron-install · --cron-remove · --schedule-install · --schedule-remove は 2026-09-08 に廃止され、現在はエラーを出して終了コード 2 で終了します。スケジュールはデータレイク DB の backup_schedule テーブルにあり、Quartz がトリガーします — pd backup schedule で確認し pd backup schedule set で変更します。

このツールが引き続き保持しているのは、全体一時停止スイッチ一つのみです — PP_BACKUP_SCHEDULE_ENABLED=false (スケジュール表はそのままに、発火のみを停止します)。 状態は ./backup.sh --schedule-show で確認します。

詳細は バックアップおよび復旧 を参照してください。

plantpulse-recovery​

現行コンテナイメージに含まれていません

特定アセットの時系列データを期間別に再処理します。

cd /opt/kopens/plantpulse-platform/plantpulse-recovery/bin
./recovery.sh EQUIPMENT_000001 20260101 20260530

plantpulse-exporter​

現行コンテナイメージに含まれていません

時系列データの CSV エクスポート + 大容量 dsbulk。

cd /opt/kopens/plantpulse-platform/plantpulse-exporter/bin

# 에셋 단위 CSV 추출
./export.sh EQUIPMENT_000001 20260101 20260530 /tmp

# 테이블 전체 벌크 언로드 (dsbulk)
./bulk-unload.sh pp tm_tag_point
# → /data1/pp-backup/cassandra/bulk/tm_tag_point.gz

# 벌크 로드 (복원)
./bulk-load.sh pp tm_tag_point

plantpulse-migrator​

2026-08-30 にイメージから除外されました

Spark ベースの Aster TSDB サーバー間マイグレーション (サーバー交換 / クラスター移行)。

cd /opt/kopens/plantpulse-platform/plantpulse-migrator/bin
./run.sh 192.168.0.41 192.168.0.237 pp.tm_tag_point

plantpulse-mirror-maker​

データ複製 (HA / DR)。専用コンテナとして起動し、mirror プロファイルに紐付いているため、デフォルトでは起動しません。

cd /opt/kopens/plantpulse-platform-docker

# 켜기
docker compose -f compose/docker-compose.yml --profile mirror up -d plantpulse-mirror-maker

# 상태 · 로그
docker compose -f compose/docker-compose.yml --profile mirror ps
bin/logs.sh plantpulse-mirror-maker

設定は他のコンテナと同様に compose の環境変数で渡します。

plantpulse-simulator​

テスト / デモ用時系列データシミュレータです。RANDOM(タグリストを読み込み、毎秒 N 個をランダムに生成) または CSV(時刻入りファイルをその順序で再生) の 2 方式であり、2026.09 よりコンテナイメージとして提供されます。

# 무작위 부하
docker run --rm \
-e API_HOST=${PP_HOST_IP} -e API_TOKEN=<v5 API 토큰> \
-e PP_MQ_USER=<메시징 계정> -e PP_MQ_PASSWORD=<메시징 비밀번호> \
-e SIM_TYPE=RANDOM -e SIM_MPS=1000 \
docker.kopens.io/pp/plantpulse-simulator:latest

# CSV 재생 — 파일을 마운트하고 «컨테이너 안» 경로를 줍니다
docker run --rm -v "$PWD/data:/data" \
-e API_HOST=${PP_HOST_IP} -e API_TOKEN=<token> \
-e PP_MQ_USER=<계정> -e PP_MQ_PASSWORD=<password> \
-e SIM_TYPE=CSV -e SIM_CSV=/data/a.csv,/data/b.csv \
-e SIM_START=TOMORROW -e SIM_SPEED=2.0 \
docker.kopens.io/pp/plantpulse-simulator:latest
必須設定が空の場合、「起動を拒否します」

API_HOST · API_TOKEN · PP_MQ_USER · PP_MQ_PASSWORD がない場合、コンテナは起動しません — 「トークンなしで起動して何も送信しない」状態を避けるためです。

plantpulse-api​

PlantPulse REST API クライアント Java ライブラリ。

plantpulse-api/
├── lib/ # 의존 jar
└── target/
├── plantpulse-api.jar
├── plantpulse-buffer.jar
├── plantpulse-cassandra-3.0.jar
├── plantpulse-cassandra.jar
└── plantpulse-cep-api.jar

外部 Java プロジェクトの pom.xml / build.gradle に依存関係を追加して使用してください。詳細な使用方法は API 使用マニュアル を参照してください。

plantpulse-lab​

2026-08-30 にイメージから除外されました

Jupyter · Metabase はオーケストレーターが起動させず、実際に動作するプロセスもなかったため、イメージで 792MB を占有していた状態で除外されました。

ウェブコンソールに Jupyter カードがまだ表示される場合がありますが、そのカードはこの変更前からも動作していませんでした。 分析環境が必要な場合は、外部に別途構築し Kyuubi(10000) · PostgreSQL(5432) で接続することを推奨します。

データサイエンティスト / 開発者向けの分析環境。

plantpulse-lab/
├── jupyter/ # Jupyter Notebook
│ ├── bin/
│ ├── logs/
│ └── notebook/ # 노트북 저장소
└── metabase/ # Metabase (BI 도구)
├── bin/
└── metabase.jar

Jupyter​

cd /opt/kopens/plantpulse-platform/plantpulse-lab/jupyter/bin
./start.sh
# 기본 포트 8888

PySpark / cassandra-driver / psycopg2 がプリインストールされており、すぐに分析可能です。

Metabase​

cd /opt/kopens/plantpulse-platform/plantpulse-lab/metabase/bin
./start.sh
# 기본 포트 3001

非開発者向けのビジュアル BI ダッシュボード。PostgreSQL / Kyuubi に直接接続します。

関連記事​