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

ポート構成情報

PlantPulse は Docker Compose スタックとして動作し、コンテナごとに固有のポートを持ちます。単一サーバーおよびクラスターの両方で同一のポート設計に従います。

「ファイアウォールが開いている」と「ホストで実際に開いている」は異なります

ホストにバインドされるポートは compose/docker-compose.yml の ports: が決定します。 install.sh が開くファイアウォールリストはそれよりも広範です。ファイアウォールで許可されていても、そのポートで必ずしも応答が返ってくるわけではありません。

このページの最初の表が 実際にホストで開くすべてのポート です。それ以外のポートはコンテナ内部でのみ通信可能です。

コンテナ別オープンポート​

コンテナホストで開くポート
plantpulse-proxy80 · 443 · 1883 · 1884 — ユーザーおよび設備がアクセスする唯一の入口
plantpulse-plugin-opcua11004 · 11005
plantpulse-ha10210
plantpulse-datalakeインフラ系すべて (下表参照)
plantpulse-batch-web9500 · 9501 (PP_BATCH_HTTP_PORT · PP_BATCH_TLS_PORT)
plantpulse-warehouse-web9600 · 9601 (PP_WAREHOUSE_HTTP_PORT · PP_WAREHOUSE_TLS_PORT)
plantpulse-server-web · plantpulse-plugin-aasxなし — プロキシの背後でのみ動作します
plantpulse-certsなし (ポートを開きません)

ポートトポロジー​

外部公開推奨 (ユーザー / 外部システム)​

ポートコンテナプロトコル用途推奨
80proxyHTTP運用コンソール / REST APIリバースプロキシ推奨
443proxyHTTPS運用コンソール / REST API (TLS)✓
4950datalakeHTTPSモニタ UI + /api/healthモニタリングシステム
1883proxyTCPMQTT 平文 — Edgeデバイス / センサ収集閉域網推奨
1884proxyTCP+TLSMQTT over TLS (プロキシはpassthrough、ブローカーが終端)TLS推奨
11004 / 11005opcua-serverOPC-UA外部設備が接続するエンドポイントTLS推奨
10210haHTTPHAデーモン /api/health · /api/cluster — 2クラスタ構成でピアが接続ピアIPのみ
9094datalakeTCP+TLSKafka 外部クライアントTLS必須
5500 / 5501datalakeHTTP / HTTPS外部システムデータ照会API Key

運用推奨: 80/443のみを外部に公開し、それ以外は閉域網のみに配置する構成を推奨します。

9500 · 9501 · 9600 · 9601 はホストに「開きます」が、外部に公開しないでください

バッチおよびウェアハウスコンテナがこれら4つのポートをホストにバインドします(上記最初の表)。これは運用者がコンテナに直接問い合わせできるようにするためのものであり、外部に公開するためのものではありません。 上位ファイアウォールでは遮断し、確認はホスト内部で行ってください。

curl -fsS http://127.0.0.1:9500/api/health | jq # 배치
curl -fsS http://127.0.0.1:9600/api/health | jq # 웨어하우스

ポートを変更するには .env の PP_BATCH_HTTP_PORT · PP_BATCH_TLS_PORT · PP_WAREHOUSE_HTTP_PORT · PP_WAREHOUSE_TLS_PORT を変更します。

ウェブコンソールのリアルタイムプッシュに別途ポートは不要です

リアルタイムプッシュはプロキシ(443)経由で送信されます。別途WebSocketポートをホストに開くことはありません。

メッセージング​

ポートコンテナプロトコル用途
1883 / 1884proxyTCP / TLSMQTT (HiveMQ). プロキシが publish します
18883 / 18884datalakeTCP / TLS予約。現在このポートを開くリスナーはありません
9092datalakeTCPKafka PLAINTEXT (閉域網のみ)
9093datalakeTCPKafka KRaft コントローラ
9094datalakeTCP+TLSKafka SASL_SSL
Kafka はプロキシを経由しません

Kafkaクライアントはブートストラップ後、advertised.listeners が通知したアドレスへ 再接続します。前段にプロキシを配置するとそのアドレスまで変更する必要があり、不一致がある場合ブートストラップのみ成功し、その後静かに失敗します。そのため、Kafkaポートはデータレイクが直接 publish します。

STOMP(ActiveMQ)は廃止されました

ブラウザのリアルタイムプッシュがSSEに変更されたため、STOMPブローカーがデータレイクイメージから除外されました。61000 / 61004 は提供されません。 古いファイアウォールルールに残っている場合は整理してください。

ストレージ (閉域網のみ)​

ポートプロトコル用途
9042CQLAster TSDB
7000 / 7001TCPAster TSDB Gossip / SSL
5432TCPPostgreSQL
6379TCPValkey (Redis互換)
6380TCP+TLSValkey TLSリスナー
9000HTTPRustFS API
9001HTTPRustFS Console

分析 / SQL (閉域網のみ)​

ポートプロトコル用途
7077TCPSpark Master RPC
4440HTTPSpark Master UI — 8080ではありません
8081HTTPSpark Worker UI
10000ThriftKyuubi SQL Gateway
10099HTTPKyuubi REST API
19001HTTPGravitino 統合カタログ
9083ThriftHive Metastore
3500 / 3600HTTPLab 分析環境
4000 / 4001HTTP / HTTPSSQLクエリサービス

処理 / 時系列 (閉域網のみ)​

ポートプロトコル用途
7400 / 7401HTTP / HTTPSCEP (Aster CEP)
7800 / 7801HTTP / HTTPS時系列エンジン(TSE)
3000HTTPPlantPulse Dashboard
5500 / 5501HTTP / HTTPSデータゲートウェイ

ワークフロー (閉域網のみ)​

ポートプロトコル用途
7233gRPCTemporal Frontend
8233HTTPTemporal Web UI
8380HTTPKestra (UI + API)
8381HTTPKestra 管理(management)ポート

その他のデータレイクポート​

ポート用途
7003診断コンソール (閉域網のみ)
60000 / 60001OPC Agent データ収集 (閉域網のみ)
6199 / 6299 / 6399 / 6499 / 7099JMX agent — 管制ノードIPのみ許可してください
9500 · 9501 · 9600 · 9601 は「アプリコンテナが」開きます — データレイクではありません

これら4つのポートはアプリ層です。9500 · 9501 は plantpulse-batch-web のTomcatコネクタ2つ、9600 · 9601 は plantpulse-warehouse-web のものです。どちらも HTTP および HTTPS コネクタであり、9501 · 9601 はリダイレクト用ではなく、それぞれ SSLHostConfig を持つ独立したコネクタです。

バッチ・ウェアハウスがデータレイクと同コンテナにあった当時の定義が データレイク側 に残っており、当時はホストポートを占有したまま 背後に何もなく接続がリセット されていました (2026-09-02 発見)。その定義は整理されました。

そして 2026-09-07 にアプリコンテナが自ら開き始めました (ユーザー決定)。つまり、「アプリコンテナは何も publish しない」というのはもはや事実ではありません。データレイク側のリストからこれらのポートを除いておくことが そのためにより重要です — 両者が同じポートを確保しようとすると、後から起動するコンテナが「ポート名のみが記載された」エラーで起動に失敗します。

コンテナ内部専用 (ホスト非公開)​

以下はコンテナ内部でのみ通信可能なポートです。ホストから curl で問い合わせても応答はありません。

ポート対象代わりの確認方法
8090 · 4800 / 4801AAS(BaSyx) V3 API · V2 Registry/AAS外部アクセスが必要な場合はリバースプロキシを別途検討
7199 · 7279Aster TSDB · HiveMQ JMXbin/shell.sh でデータレイクに進入後に確認
plantpulse-server-web のアプリポート当該コンテナ内部bin/status.sh / bin/logs.sh <컨테이너>
4949 は平文です

コンソールとヘルスAPIは 両方のポート でサービスされます — 4950(HTTPS)と 4949(平文 HTTP)。同一のコンソール・同一のAPIであり、スキームのみが異なります。4949 はもはや 4950 へリダイレクトしません。

4949 は平文です — ログインパスワードとセッションクッキーがそのまま流れます。信頼できないネットワークでは 4950 を使用してください。4949 は自己署名証明書の警告が実際に運用者の妨げとなる環境のための選択肢です。

# 호스트 / 외부에서
curl -kfsS https://<server-ip>:4950/api/health | jq

# 컨테이너 안에서 (어떤 구성에서도 동작합니다)
docker exec plantpulse-datalake curl -kfsS https://127.0.0.1:4950/api/health | jq

インストール前ポート競合確認​

# 핵심 포트 점유 확인
ss -tlnp | grep -E ':(80|443|1883|1884|3000|4000|4950|5432|5500|6379|7077|7233|7400|7800|8233|8380|9000|9042|9092|10000|10210|11004|19001)\s'

出力がなければ競合なし。出力がある場合は:

# 점유 프로세스 확인
sudo lsof -i :<port>
sudo ss -tlnp | grep ":<port>"

頻出競合ポート: 80 (Apache/Nginx), 5432 (外部 PostgreSQL), 3000 (Grafana/Node.js), 9092 (外部 Kafka), 6379 (外部 Redis). 外部サービスを使用している場合は、そのサービスのポートを変更する方が簡単です。

bin/preflight.sh がインストール前に主要ポート(80 · 443 · 4949 · 4950)を非破壊的に点検します。

上記 ss の一行には 9500 · 9501 · 9600 · 9601 が含まれていません。 バッチ・ウェアハウスがこれらのポートを使用するため、これら4つの空き状況も確認したい場合は正規表現に追加してください。

ファイアウォール設定例​

install.sh がホストファイアウォール(firewalld / ufw)を 自動的に設定 します。以下は上位ファイアウォール(社内ネットワーク、クラウドセキュリティグループ、ルーター)で直接許可する場合の例です。

firewalld (RHEL/Rocky/Oracle)​

# 외부 노출 (모든 IP)
for port in 80 443 4950; do
firewall-cmd --permanent --add-port=${port}/tcp
done

# 외부 노출 (TLS 메시징 / 설비)
for port in 1884 9094 11004 11005; do
firewall-cmd --permanent --add-port=${port}/tcp
done

# 사설망 only (RFC 1918 + Tailscale CGN 허용)
for src in 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 100.64.0.0/10; do
for port in 1883 5432 6379 7077 7233 7800 8233 8380 9000 9001 9042 9092 10000 10210 19001; do
firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=${src} port port=${port} protocol=tcp accept"
done
done

firewall-cmd --reload

ufw (Ubuntu)​

# 외부 노출
for port in 80 443 4950 1884 9094 11004 11005; do
ufw allow ${port}/tcp
done

# 사설망 only
for port in 1883 5432 6379 7077 7233 7800 8233 8380 9000 9042 9092 10000 10210 19001; do
for src in 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 100.64.0.0/10; do
ufw allow from $src to any port $port
done
done

ufw enable

自動設定確認​

# RHEL/Rocky/Oracle
sudo firewall-cmd --list-ports
sudo firewall-cmd --list-rich-rules

# Ubuntu
sudo ufw status numbered

クラウドセキュリティグループ (例: AWS / GCP / Azure)​

ホストファイアウォールに加え、クラウドセキュリティグループも同様に設定する必要があります。

インバウンドルールソースポート
運用コンソール0.0.0.0/0 (または社内IP)80, 443
ヘルスチェックモニタリングノード4950
MQTTデバイス1883, 1884
OPC-UA設備11004, 11005
Kafka TLS外部クライアント9094
閉域網VPC CIDR1883, 5432, 6379, 7077, 9042, 9092, 10000, 10210, …

関連ドキュメント​