Monitoring
Kubetail は各コンポーネントでヘルスチェック用エンドポイントと構造化ログ出力を公開します。このページでは、Kubetail がクラスタ内にデプロイされているときに、その健全性をどのように監視するかを説明します。
ヘルスチェック
「ヘルスチェック」セクションへのリンク各コンポーネントはヘルスエンドポイントを公開しており、クラスタの liveness probe と readiness probe はそれを使って Pod の健全性を判定します。
Dashboard と Cluster API
「Dashboard と Cluster API」セクションへのリンクDashboard と Cluster API はどちらも HTTP のヘルスエンドポイントを公開します。
GET /healthzHelm chart はこのエンドポイントに対する liveness probe と readiness probe を自動的に設定します。同じエンドポイントを使って、コンポーネントの状態を手動で確認することもできます。
kubectl exec -n kubetail deploy/kubetail-dashboard -- \ wget -qO- http://localhost:8080/healthzCluster Agent
「Cluster Agent」セクションへのリンクCluster Agent は gRPC ポート (:50051) で標準の gRPC health サービスを公開します。Helm chart はコンテナ内で grpc_health_probe を使い、readiness と liveness を確認します。
Logging
「Logging」セクションへのリンク3 つのコンポーネントはすべて、既定で JSON 形式の構造化ログを出力します。各ログエントリにはタイムスタンプ、ログレベル、さらに個々のリクエストをシステム全体で追跡するための request_id などのコンテキスト情報が含まれます。
ログレベル
「ログレベル」セクションへのリンク| Level | Description |
|---|---|
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: truePod の readiness を確認する
「Pod の readiness を確認する」セクションへのリンクKubetail デプロイ全体の健全性を確認するには、次を実行します。
kubectl get pods -n kubetailすべての Pod は Running 状態を示し、readiness probe に成功しているはずです。Pod が ready でない場合は、イベントとログを確認してください。
kubectl describe pod -n kubetail <pod-name>kubectl logs -n kubetail <pod-name>