Language: English | 日本語
Kubernetes History Inspector (KHI) は、Kubernetes クラスタのログ可視化ツールです。 大量のログをインタラクティブなタイムラインビューなどで可視化し、Kubernetes クラスタ内の複数のコンポーネントにまたがる複雑な問題のトラブルシューティングを強力にサポートします。
クラスタ内へのエージェント等のインストールの必要はなく、ログを読み込ませるだけで、トラブルシューティングに役立つ以下のログの可視化を提供します。
| タイムラインビュー | クラスタダイアグラム |
|---|---|
![]() |
![]() |
| 監査ログ等から特定期間の複数リソースに対する変更、ステータス等の遷移をわかりやすくタイムライン、差分として表示。 | kube-apiserverの監査ログから復元した特定タイミングのリソースの関係性をわかりやすく可視化。 |
KHIの主要な強みは、従来のテキストベースのログ分析を超えて、各Kubernetesリソースに関連する多数のアクティビティログをタイムラインベースのグラフとして視覚化できる点です。 単一のリソースでログを手動でフィルタリングしたり、個々のアクティビティログをテキストデータで時系列に読み進めたりする必要はありません。KHIを使用すると、タイムラインの視覚化から何が起こったのかを一目で把握できます。
また、ログの視覚化に加えて、KHIでは特定の瞬間のログデータを従来のテキスト形式で確認したり、特定のイベント発生時のYAMLマニフェストの差分を確認したりことも可能です。これにより、事象の原因を特定するプロセスが大幅に簡素化されます。
さらに、KHIはある特定の時点でのKubernetesクラスターのリソースの状態とその関係を示すクラスタダイアグラムを生成することもできます。これは、インシデント発生時の特定の時間におけるリソースのステータスやクラスターのトポロジーを理解する上で非常に役に立ちます。
KHIのセットアップはとても簡単です。エージェントレスなので、対象クラスターに複雑な事前設定をすることなく、誰でも簡単に使い始めることができます。また、KHIはGUI操作でKubernetesログを視覚化できます。ログの取得のために複雑なクエリやコマンドを記述する必要はありません。

KHIは、Google Cloud サポートチームが開発し、その後オープンソース化されました。Google Cloudのサポートエンジニアが日々の業務でKubernetesログを分析する中で培った経験から生まれたツールです。KHIには、Kubernetesのログトラブルシューティングにおける彼らの深い専門知識が凝縮されています。
-
Google Cloud
-
その他環境
- JSONlines 形式の kube-apiserver 監査ログ (チュートリアル (Using KHI with OSS Kubernetes Clusters - Example with Loki | 英語のみ))
-
Google Cloud
- Cloud Logging(Google Cloud 上のすべてのクラスタ)
-
その他環境
- Google Chrome(最新版)
dockerコマンド
Important
動作環境以外でのご利用、または動作環境下でもブラウザの設定によっては正しく動作しない場合がございます。
- Cloud Shell を開きます。
docker run -p 127.0.0.1:8080:8080 asia.gcr.io/kubernetes-history-inspector/release:latestを実行します。- ターミナル上のリンク
http://localhost:8080をクリックして、KHI の使用を開始してください!
Tip
メタデータサーバーが利用できない他の環境で KHI を実行する場合は、プログラム引数でアクセストークンを渡します。
docker run -p 127.0.0.1:8080:8080 asia.gcr.io/kubernetes-history-inspector/release:latest -access-token=`gcloud auth print-access-token`Note
コンテナイメージの配信元は近いうちに変更される可能性があります。 #21
詳細は Getting Started を参照してください。
動かしてみる (ソースから実行)
- Go 1.24.*
- Node.js 環境 22.13.*
gcloudCLIjqコマンド
- このリポジトリをダウンロードまたはクローンします。
例:git clone https://github.com/GoogleCloudPlatform/khi.git - プロジェクトルートに移動します。
例:cd khi - プロジェクトルートから
cd ./web && npm installを実行します。
gcloudで認証します。
例: ユーザーアカウントの認証情報を使用する場合は、gcloud auth loginを実行します。- プロジェクトルートから
make build-web && KHI_FRONTEND_ASSET_FOLDER=./dist go run cmd/kubernetes-history-inspector/main.goを実行します。
localhost:8080を開き、KHI の使用を開始してください!
Important
KHI のポートをインターネット向けに公開しないでください。 KHI 自身は認証、認可の機能を提供しておらず、ローカルユーザからのみアクセスされることが想定されています。
以下の権限が必須・推奨されます。
-
必須権限
logging.logEntries.list
-
推奨権限
- 対象のクラスタのタイプに対するリスト権限(例:GKE の場合
container.clusters.list) ログフィルタ生成ダイアログの候補の出力に使用します。KHI の主機能の利用に影響はありません。
- 対象のクラスタのタイプに対するリスト権限(例:GKE の場合
-
設定手順
- Compute Engine 仮想マシン上など、サービスアカウントがアタッチされた Google Cloud 環境で KHI を実行する場合、対応するリソースにアタッチされたサービスアカウントに上記権限を付与します。
- ローカル環境や Cloud Shell など、ユーザアカウント権限で KHI を実行する場合、対応するユーザ上記権限を付与します。
Warning
KHI は、Compute Engine インスタンス上で実行した際は必ずアタッチされたサービスアカウントを使用するなど、ADCが反映されません。 この仕様は今後修正される場合があります。
- 必須設定無し
- 推奨設定
- Kubernetes Engine API データ書き込み監査ログの有効化
Tip
Pod や Node リソースの.statusフィールドへのパッチリクエストが記録されており、
トラブルシューティングに詳細なコンテナの情報も必要な場合に推奨されます。
Kubernetes Engine API データ書き込み監査ログが未出力の場合も、KHI は Pod 削除時の監査ログから最終のコンテナの状態を表示できますが、Pod が削除されない間のコンテナの状態変化が記録されません。
- 設定手順
- Google Cloud コンソールで、監査ログページに移動します。
- 「データアクセス監査ログの構成」以下の、「サービス」列から「Kubernetes Engine API」を選択します。
- 「ログタイプ」タブで、「データ書き込み」を選択します。
- 「保存」をクリックします。
OSS Kubernetesクラスタのログの可視化(Loki)を参照してください。
ユーザーガイド をご確認ください。
プロジェクトへの貢献をご希望の場合は、コントリビューションガイド をお読みの上、KHI開発環境のセットアップを実施してください。
KHI は Google Cloud の公式製品ではございません。不具合のご報告や機能に関するご要望がございましたら、お手数ですが当リポジトリのGithub issuesにご登録ください。可能な範囲で対応させていただきます。

