診断 / 点検
障害 / 異常動作が疑われる場合に使用する診断スクリプト集。
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.CassandraDaemon | Cassandra | cassandra.pid |
hivemq.jar | MQTT | (なし) |
plantpulse.timeseries.engine.Main | 時系列エンジン | (なし) |
org.apache.catalina.startup.Bootstrap | Tomcat | CATALINA_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 : true | 9042 クライアントポートが 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.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. さらに詳しく
- ディスク不足時: 整理 / クリーンアップ
- 段階的な障害診断シナリオ: 運用シナリオ
- モニタリング (REST メトリクス): モニタリング (運用者/REST)