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

診断と点検

障害 / 異常動作が疑われるときに使用する診断スクリプト集。

2026.05+ コンテナモードでは pe-doctor が標準

以下の手順は native ボックス (bin/ps.sh, bin/log-viewer.sh) 用。コンテナモード:

bash /opt/kopens/install/bin/status.sh # 한 줄 상태
bash /opt/kopens/install/bin/health.sh # 종합 헬스 (exit 0/1)
bash /opt/kopens/install/bin/logs.sh -f tomcat # 로그 follow
sudo bash /opt/kopens/install/bin/doctor.sh # 진단 일괄 tarball (support escalation)

詳細: コンテナモード運用。


1. 段階別診断手順​

# 1. 누가 죽었나?
$PE_HOME/bin/ps.sh

# 2. 어디가 시끄러운가?
$PE_HOME/bin/log-viewer.sh
# (실시간 — Ctrl+C 로 빠져나옴)

# 3. Cassandra 의심
$PE_HOME/bin/node-info.sh

# 4. Disk 의심
df -h /data1
du -sh $PE_HOME/*/log/* /data1/* 2>/dev/null | sort -h | tail -20

# 5. 다 안 맞으면 — 안전하게 단계적 재시작
$PE_HOME/bin/restart-app.sh # 1차: 앱(Tomcat)만 — 30~90초
# 그래도 이상 시
$PE_HOME/bin/restart.sh # 2차: 전체 스택 (stop + start 를 한 프로세스로)
# 그래도 이상 시
sudo $PE_HOME/bin/reboot.sh # 3차: OS 재부팅 (최후의 수단)

2. 注意 — 非対話型シェルでは log-viewer.sh 呼び出し禁止​

log-viewer.sh は無限 tail -f です。CI / cron のような非対話型環境 で呼び出すと ssh セッションが終了しません。対話型シェル のときだけ使用してください。


3. log-viewer.sh — 統合ログ tail​

$PE_HOME/bin/log-viewer.sh

7つのログをリアルタイムで1画面に:

  • Tomcat (server/logs/catalina.out)
  • timeseries-engine
  • Cassandra (db/logs/system.log)
  • HiveMQ (mqtt/log/hivemq.log)
  • Node-RED (node/log/node-red.log)
  • Redis cache
  • その他

Ctrl+C で終了。障害発生時には 最初に実行 するツール。


4. ps.sh​

$PE_HOME/bin/ps.sh

plantpulse キーワードで稼働中の Java プロセス一覧。正常状態では以下がすべて表示される必要があります:

プロセス意味PID 環境変数
apache.cassandra.service.CassandraDaemonCassandracassandra.pid
hivemq.jarMQTT(なし)
plantpulse.timeseries.engine.Main時系列エンジン(なし)
org.apache.catalina.startup.BootstrapTomcatCATALINA_PID
node-red (Node.js)Node-RED(なし)

欠けているものがあれば、そのコンポーネントが停止している — start.sh または該当 sub-component の bin/start.sh で復旧させます。


5. node-info.sh — Cassandra 状態​

$PE_HOME/bin/node-info.sh

代表的な出力 (nodetool info):

ID : 8a4d...
Gossip active : true
Native Transport active: true
Load : 1.21 GiB
Generation No : 1778176430
Uptime (seconds) : 1234
Heap Memory (MB) : 824.10 / 2048.00
点検ポイント意味
Native Transport active : true9042 クライアントポート listen 中
Heap > 80%OOM 切迫 — データ整理 / heap 増量
Load がディスクの 80% 超過sstable 清掃(node-cleanup.sh) またはディスク増設

6. node-cql.sh — cqlsh 対話型​

$PE_HOME/bin/node-cql.sh

cqlsh -u cassandra -p ... が自動実行され、keyspace pe に接続されます。手動データ点検 用 — 運用中に直接 INSERT/UPDATE は推奨しません (キャッシュ未反映、レプリケーション不一致など)。

よく使う照会例:

USE pe;
SELECT count(*) FROM app_tag;
SELECT opc_id, opc_type FROM app_opc;
DESCRIBE TABLE app_tag;

7. network-speed-test.sh​

$PE_HOME/bin/network-speed-test.sh

product.kopens.io で speedtest.py を受け取り実行して外部ネットワーク速度を測定。回線が遅いと アップグレード も長くなります — アップグレード前の診断用。


8. よくある落とし穴 — 総合​

症状原因 / 解決
restart.sh 後に OPC が 0/N 接続まれに発生する起動時レース。restart.sh をもう一度呼び出し
clean.sh 後に ssh セッションが突然切断/tmp/* が ssh socket まで消去 — 別セッションで再接続
upgrade.sh 中にダウンロード失敗外部ネットワーク / product.kopens.io を点検。network-speed-test.sh
start.sh が長時間停止 ([4] DB START)Cassandra commitlog 回収 — 通常 30s+ 待機。それでも終わらない場合は db/logs/system.log を確認
Tomcat だけが頻繁に停止OOM の可能性 — server/logs/catalina.out の OutOfMemoryError / heapdump ディレクトリを確認
Node-RED が Deploy 後に消えるuserDir 破損。$PE_HOME/node/conf の master コピーで復旧するよう設計 — node/bin/start.sh が自動 sync
外部からゲートウェイに接続できないファイアウォール (firewall-cmd --list-all または iptables -L) / SELinux ポリシー / ルーター NAT を点検

9. さらに詳しく​