トラブルシューティングガイド
このガイドでは、Cockpit の運用中に遭遇する可能性のある一般的な問題と、それらを解決するための簡単でわかりやすいステップを説明します。
1. 問題:サーバーが「接続解除 (Disconnected)」になる 🛑
症状: Vapor が動作する物理サーバーが Cockpit ダッシュボード上で灰色(接続解除)になり、グラフの更新が止まります。
- 💡 たとえ話:スマートTVがネットに繋がらない ご家庭のスマートTVがネットから切断された状況をイメージしてください。TVの電源コードが抜けていますか?ルーターの電源が落ちていますか?あるいは、動画アプリから自動ログアウトしてしまいましたか?
解決手順:
- ネットワーク配線の確認: Cockpit サーバーから Vapor ホストに通信が届くか確認します。Cockpit サーバーのターミナルを開き、Vapor 側のポート
7770(通常命令用)および7770(リアルタイム用)に対して通信が通るか検証します。 - Vapor サービスの稼働確認: 接続が切れた物理サーバーに直接ログインし、以下のコマンドを実行して Vapor プログラムが起動しているか確認します:bash
systemctl status vapor.service- もし停止している(stopped)場合は、起動させます:
systemctl start vapor.service。
- もし停止している(stopped)場合は、起動させます:
- 認証トークンの確認: Cockpit は Vapor と安全に話すためにセキュリティパスワード(トークン)を使用します。このトークンの有効期限が切れるとアクセス拒否されます。Vapor サーバーの管理画面にログインして新しい API トークンを発行し、Cockpit 側のホスト設定を更新してください。
2. 問題:セキュリティ証明書のエラー (SSL/TLS) 🔒
症状: 画面に SSL/TLS セキュリティ警告が表示される、またはサーバー間で VM を移動(ライブマイグレーション)させようとするとエラーが発生する。
- 💡 たとえ話:有効期限切れの身分証明書 サーバーAからサーバーBへ VM を引っ越しさせようとするとき、サーバーBは「サーバーAの身分証明書(TLS証明書)」の提示を求めます。証明書が期限切れだったり、身元不明の機関が発行したものである場合、安全のためにサーバーBは引っ越しを拒否します。
解決手順:
- 仮想化プロセスの確認: 物理サーバーにログインし、仮想化エンジン(libvirtd)が動いているか確認します:bash
systemctl status libvirtd - 証明書の再生成: 物理サーバー上で以下のコマンドを実行して、両方のサーバーでセキュリティバッジを強制的に新しく作り直させます:bash
# サーバーに仮想化セキュリティバッジの再発行を命じます curl -sk -X POST https://localhost:7770/api/v1/system/tls/libvirt/setup - 信頼関係の登録: 両方の物理サーバーが Cockpit に登録されていることを確認してください。登録されていれば、Cockpit がお互いの新しい証明書を自動的に共有して信頼させます。
3. 問題:「スプリットブレイン」状態 (ロック競合) 🤯
症状: ダッシュボード上で、物理サーバーのステータスが数秒ごとに「接続中」と「切断中」を激しく繰り返す。
- 💡 たとえ話:2人で1つの受話器を奪い合う バックアップ用に2台の Cockpit 管理サーバーを同時に動かしている場合、両方がまったく同時に同じ物理サーバーを管理しようとしてしまうことがあります。お互いに回線を奪い合うため、接続が切れたり繋がったりを繰り返してしまいます。
解決手順:
- ロック保持者の特定: データベースに以下のクエリを投げて、現在どちらの Cockpit インスタンスが管理権(チェックアウトカード)を握っているか突き止めます:sql
-- 現在アクティブなアドバイザリーロックを確認する SELECT pid, classid, objid FROM pg_locks WHERE locktype = 'advisory'; - 接続のリセット:
- 両方の管理サーバーで Cockpit プログラムを一度停止させます。
- まず「1号機(メイン)」だけを起動し、数秒待って物理サーバーの管理権を綺麗に獲得させます。
- 次に「2号機(バックアップ)」を起動します。2号機は1号機がすでに管理中であることを検知し、おとなしく待機状態(standby)に入ります。