診断と点検
障害 / 異常動作が疑われるときに使用する診断スクリプト集。
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.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 接続 | まれに発生する起動時レース。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)