コンテンツにスキップ

Monitoring

Kubetail は各コンポーネントでヘルスチェック用エンドポイントと構造化ログ出力を公開します。このページでは、Kubetail がクラスタ内にデプロイされているときに、その健全性をどのように監視するかを説明します。


各コンポーネントはヘルスエンドポイントを公開しており、クラスタの liveness probe と readiness probe はそれを使って Pod の健全性を判定します。

Dashboard と Cluster API はどちらも HTTP のヘルスエンドポイントを公開します。

GET /healthz

Helm chart はこのエンドポイントに対する liveness probe と readiness probe を自動的に設定します。同じエンドポイントを使って、コンポーネントの状態を手動で確認することもできます。

Terminal window
kubectl exec -n kubetail-system deploy/kubetail-dashboard -- \
wget -qO- http://localhost:8080/healthz

Cluster Agent は gRPC ポート (:50051) で標準の gRPC health サービスを公開します。Helm chart はコンテナ内で grpc_health_probe を使い、readiness と liveness を確認します。


3 つのコンポーネントはすべて、既定で JSON 形式の構造化ログを出力します。各ログエントリにはタイムスタンプ、ログレベル、さらに個々のリクエストをシステム全体で追跡するための request_id などのコンテキスト情報が含まれます。

LevelDescription
debug内部のリクエストルーティング詳細を含む詳細な出力
info通常の運用メッセージ(既定)
warn注意が必要な可能性がある回復可能な問題
errorリクエスト処理に影響する障害
disabledログ出力なし

ログレベルとフォーマットは、Helm values 内の runtimeConfig を通じてコンポーネントごとに設定します。

kubetail:
dashboard:
runtimeConfig:
logging:
level: info
format: json # json or pretty
access-log:
enabled: true
hide-health-checks: true # suppress /healthz from access logs
clusterAPI:
runtimeConfig:
logging:
level: info
format: json
access-log:
enabled: true
hide-health-checks: true
clusterAgent:
runtimeConfig:
logging:
level: info
format: json

Dashboard と Cluster API には、各受信リクエストを記録する HTTP アクセスログが含まれます。アクセスログには HTTP メソッド、パス、ステータスコード、処理時間、リモートアドレス、リクエスト ID が含まれます。ノイズを減らすために、ヘルスチェックのリクエストをアクセスログから除外できます。

logging:
access-log:
enabled: true
hide-health-checks: true

Kubetail デプロイ全体の健全性を確認するには、次を実行します。

Terminal window
kubectl get pods -n kubetail-system

すべての Pod は Running 状態を示し、readiness probe に成功しているはずです。Pod が ready でない場合は、イベントとログを確認してください。

Terminal window
kubectl describe pod -n kubetail-system <pod-name>
kubectl logs -n kubetail-system <pod-name>