メインコンテンツにスキップ ナビゲーションにスキップ フッターにスキップ
期間限定:デザインパートナープログラム — BUSINESSプランを永久利用

モニタリング

マシンの健全性、コンテナ、サービス、リポジトリの監視と診断の実行。

モニタリング

Rediaccは、マシンの健全性、実行中のコンテナ、サービス、リポジトリの状態、システム診断を検査するための組み込みの監視コマンドを提供します。

マシンの健全性

マシンの包括的なヘルスレポートを取得します:

rdc machine health --name server-1

レポート内容:

  • System: アップタイム、ディスク使用量、データストア使用量
  • コンテナ: 実行中、正常、異常のコンテナ数
  • ストレージ: SMARTヘルスステータス
  • 問題点: 検出された問題

マシン可読な出力には --output json を使用してください。

コンテナの一覧表示

マシン上のすべてのリポジトリにわたる実行中のコンテナをすべて表示します:

rdc machine containers --name server-1
カラム説明
Nameコンテナ名
Statusアップタイムまたは終了理由
State実行中、終了済みなど
Health正常、異常、なし
CPUCPU使用率
Memoryメモリ使用量 / 上限
Repositoryコンテナが属するリポジトリ

オプション:

  • --health-check, コンテナに対してアクティブなヘルスチェックを実行
  • --output json, マシン可読なJSON出力

JSON 出力には完全なコンテナ詳細(labelsport_mappingsimageid)に加え、repository(解決後の名前)、repository_guid(元の GUID)、domainautoRoute が含まれます。

サービスの一覧表示

マシン上のRediaccに関連するsystemdサービスを表示します:

rdc machine services --name server-1
カラム説明
Nameサービス名
Stateアクティブ、非アクティブ、失敗
Sub-state実行中、停止など
Restarts再起動回数
Memoryサービスのメモリ使用量
Repository関連するリポジトリ

オプション:

  • --stability-check, 不安定なサービスをフラグ付け(失敗、3回以上の再起動、自動再起動)
  • --output json, マシン可読なJSON出力

JSON 出力には、repository(解決後の名前)と repository_guid(元の GUID)を含む完全なサービス詳細が含まれます。

リポジトリの一覧表示

マシン上のリポジトリを詳細な統計情報とともに表示します:

rdc machine repos --name server-1
カラム説明
Nameリポジトリ名
Sizeディスクイメージのサイズ
Mountマウント済みまたは未マウント
DockerDocker daemonが実行中または停止
Containersコンテナ数
Disk Usageリポジトリ内の実際のディスク使用量
Modified最終更新日時

オプション:

  • --search <text>, 名前またはマウントパスでフィルタリング
  • --output json, マシン可読なJSON出力

JSON 出力には name(解決済み)と guid(元の GUID)が含まれ、各リポジトリの containersdomainautoRouterepository/repository_guid を含む)配列と services 配列がネストされます。

ストレージの健全性

マシン上のすべてのリポジトリにわたる BTRFS の断片化と reflink 共有を検査します:

rdc machine query --name server-1 --storage-health
カラム説明
SizeLUKS イメージファイルのサイズ(リポジトリの見かけ上のサイズ)
Uniqueこのリポジトリのみが所有する実際の一意データ
SharedBTRFS reflink を通じてリポジトリ間で再利用されるデータブロック(無償コピー)
Extentsファイルエクステントの数(多いほど断片化が進んでいる)
Frag断片化レベル:低、中、高

サマリーには BTRFS reflink による節約の合計が表示されます:

14 repos, 224.3 GB virtual size
Unique data: 323.7 MB | Shared: 224.0 GB | Efficiency: 99.9%
  • 仮想サイズはすべてのリポジトリイメージサイズの合計です。これはリポジトリの見かけ上のサイズですが、reflink で共有されているブロックを二重にカウントします。
  • 一意データは1つのリポジトリにのみ存在するリポジトリデータによって実際に消費されているストレージです。リポジトリを削除したときに解放される容量です。
  • 共有は BTRFS reflink を通じてリポジトリ間で再利用されるデータです。リポジトリをフォークすると、どちらかの側が新しいデータを書き込むまでブロックを共有する reflink コピーが作成され、その時点でブロックが分岐します。
  • 効率は reflink で再利用されるデータの割合です。高いほど良いです。同じ親から多くのフォークを持つマシンは 100% に近い効率を示します。

断片化が高く共有ブロックがゼロのリポジトリは btrfs filesystem defragment で安全にデフラグできます。共有ブロックを持つリポジトリはデフラグすべきではありません。デフラグは共有ブロックを一意のコピーに置き換えるためディスク使用量が増加します。

スキャンは並列実行され、リポジトリの数とサイズによって 5〜15 秒かかります。--storage-health を指定しない場合、クエリ出力の後にリマインダーとして1行のヒントが表示されます。

BTRFS スクラブ

Rediaccはすべてのマシンで毎週 BTRFS スクラブを自動的にスケジュールします。スクラブはデータストアのすべてのデータブロックを読み取り、チェックサムを検証し、破損を報告します。これにより、バックアップやフォークに伝播する前にサイレントなデータ破損(ビットロット)を検出します。

スクラブは毎週日曜日の 02:00 ローカルタイム(マシンのタイムゾーン)に最大1時間のランダムな遅延を加えて実行されます。最低の I/O 優先度(ionice idlenice 19)で実行されるため、実行中のサービスに干渉しません。SSD ベースのマシンでは、データストア 100 GB あたり約 8 分を見込んでください。

スクラブタイマーは、renet のアップグレード後の最初のデーモン起動時に自動的にインストールされます。将来の renet バージョンでスクラブポリシーが変更された場合、次のデーモン起動時にユーザーのアクションなしで自動的に更新されます。

スクラブのステータス

最後のスクラブの結果は BTRFS ボリュームの外部(/var/lib/rediacc/scrub-last-result.json)に保存されるため、ボリュームに問題があっても読み取り可能なままです。rdc machine query --system の出力には scrub_status フィールドが含まれます:

"scrub_status": {
  "last_run_human": "3 days ago",
  "status": "ok",
  "total_errors": 0,
  "uncorrectable": 0,
  "duration_seconds": 312
}
ステータス意味
ok最後のスクラブがエラーなしで完了した
never_runスクラブがまだ実行されていない(タイマーがインストールされたばかり)
overdue最後のスクラブが 14 日以上前だった
errors_foundスクラブがチェックサムの不一致を発見した(total_errorsuncorrectable のカウントを確認してください)
failedスクラブプロセスが非ゼロのコードで終了した

uncorrectable がゼロより大きい場合、影響を受けたブロックは自動的に修復できません(単一ディスクの BTRFS には冗長コピーがありません)。影響を受けたリポジトリを最新のバックアップから復元してください。

手動スクラブ

スクラブを即座に実行するには(例:電源障害またはディスク移行後):

rdc term connect -m server-1 -c "sudo renet maintenance scrub --datastore /mnt/rediacc"

結果は同じ JSON ファイルに保存され、次の rdc machine query --system で即座に確認できます。

Vaultステータス

デプロイ情報を含むマシンの完全な概要を取得します:

rdc machine vault-status --name server-1

提供される情報:

  • ホスト名とアップタイム
  • メモリ、ディスク、データストアの使用量
  • リポジトリの総数、マウント数、Docker実行数
  • リポジトリごとの詳細情報

マシン可読な出力には --output json を使用してください。

接続テスト

クラウドアダプターのみ。 ローカルアダプターでは、rdc term connect -m server-1 -c "hostname" を使用して接続を確認してください。

マシンへのSSH接続を確認します:

rdc machine test-connection --ip 203.0.113.50 --user deploy

レポート内容:

  • 接続状態(成功/失敗)
  • 使用された認証方法
  • SSH鍵の設定
  • 公開鍵のデプロイ状態
  • Known hostsエントリ

オプション:

  • --port <number>, SSHポート(デフォルト: 22)
  • --save -m server-1, 検証済みホスト鍵をマシン設定に保存

診断 (doctor)

Rediacc環境の包括的な診断チェックを実行します:

rdc doctor
カテゴリチェック内容
環境Node.jsバージョン、CLIバージョン、SEAモード、Goインストール、Dockerの利用可否
Renetバイナリの場所、バージョン、CRIU、rsync、SEA埋め込みアセット
設定アクティブな設定、アダプター、マシン、SSH鍵
仮想化ローカル仮想マシンを実行できるか確認(rdc ops

各チェックは OK警告、または エラー を報告します。問題のトラブルシューティングの最初のステップとしてこれを使用してください。

終了コード: 0 = すべて合格、1 = 警告あり、2 = エラーあり。