Skip to content

トラブルシューティングガイド

このガイドでは、Cockpit デプロイメントで発生する一般的な運用上の問題の診断および解決手順について詳しく説明します。


1. 診断: ホストノードのステータスが "Disconnected" になる

症状: Vapor を実行している物理ハイパーバイザーノードが Cockpit コンソールで disconnected と表示され、そのノードのパフォーマンスグラフが更新されません。

解決ワークフロー:

  1. ネットワーク接続の確認: Cockpit サービスホストが Vapor ホストにルーティングできることを確認します。Cockpit サーバーから TCP ポート 7770 (API インターフェース) および 7770 (イベントストリーム) が開いており、到達可能であることを確認します。
  2. デーモンステータスの確認: 影響を受けるハイパーバイザーホストにログインし、ローカルの Vapor サービスのステータスを照会します。
    bash
    systemctl status vapor.service
    サービスが停止している場合は、再起動します: systemctl start vapor.service
  3. API トークンのローテーション: Cockpit は API トークンを使用して Vapor と認証します。トークンが無効であるか期限切れの場合、アクセスは拒否されます。Vapor ローカル構成から新しい API トークンを生成し、Cockpit のホスト登録詳細を更新します。

2. 診断: TLS 証明書のエラー

症状: SSL/TLS ハンドシェイクの警告で操作が失敗するか、ハイパーバイザー間でのライブマイグレーションの初期化に失敗します。

解決ワークフロー:

  1. ハイパーバイザー仮想化ステータスの確認: ハイパーバイザーに接続し、仮想化デーモンがアクティブであることを確認します。
    bash
    systemctl status libvirtd
  2. TLS 資格情報の再初期化: TLS 構成エンドポイントをトリガーすることで、ノード上の libvirt 証明書を強制的に再生成できます。
    bash
    # ローカルの Vapor デーモンに更新要求を送信
    curl -sk -X POST https://localhost:7770/api/v1/system/tls/libvirt/setup
  3. 信頼チェーンの確立: 両方の物理ホストサーバーがアクティブであり、同じ Cockpit インベントリスコープ内に登録されていることを確認し、Cockpit が CA 証明書を自動的に配布および同期できるようにします。

3. 診断: ホスト接続が頻繁に切り替わる (アドバイザリーロックの競合)

症状: Cockpit コンソールにおける物理ホストの接続状態が、connecteddisconnected の間で急速に切り替わります。

解決ワークフロー:

  1. ロック保持者の特定: この動作は、複数のアクティブな Cockpit インスタンスが同じ物理ホストを同時に管理しようとしたときに発生します。PostgreSQL データベースに問い合わせて、現在アクティブなアドバイザリーロックセッションを特定します。
    sql
    -- アクティブなトランザクションアドバイザリーロックを照会
    SELECT pid, classid, objid FROM pg_locks WHERE locktype = 'advisory';
  2. 管理デーモンの再同期:
    • すべてのアクティブなインスタンスで Cockpit サービスプロセスを停止します。
    • プライマリノードで Cockpit サービスを開始し、ホストインベントリへの接続が確立されるまで待ちます。
    • セカンダリノードで Cockpit サービスを開始します。セカンダリノードはアクティブなアドバイザリーロックを検出し、スタンバイモードのままになります。