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

診断 / 点検

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

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)

詳細: コンテナモード運用ガイド + /opt/kopens/install/RUNBOOK.md


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.sh # 1차: Tomcat 만
# 그래도 이상 시
$PE_HOME/bin/stop.sh
$PE_HOME/bin/start.sh # 2차: 전체
# 그래도 이상 시
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 接続まれに発生する起動時の race。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.outOutOfMemoryError / heapdump ディレクトリを確認
Node-RED が Deploy 後に消えるuserDir の破損。$PE_HOME/node/conf の master コピーから復旧する設計 — node/bin/start.sh が自動 sync
外部からゲートウェイに接続できないファイアウォール (firewall-cmd --list-all または iptables -L) / SELinux ポリシー / ルータ NAT を点検

9. さらに詳しく