Kubernetes Podログの解析
コントロールプレーンコンポーネントのklogフォーマットを含むKubernetes Podログ出力を、重要度レベルプレフィックス、タイムスタンプ、ソースファイル識別で解析します。
Kubernetes
詳細な説明
Kubernetesログフォーマット
Kubernetesコンポーネントとpod内で実行されるアプリケーションは、さまざまなフォーマットでログを生成します。最も一般的な2つはklogフォーマット(Kubernetesシステムコンポーネントが使用)とアプリケーション固有フォーマット(多くの場合JSON)です。
klogフォーマット
Kubernetesシステムコンポーネント(kube-apiserver、kube-controller-manager、kubelet、kube-scheduler)はklogライブラリを使用し、以下のフォーマットでログを生成します:
Lmmdd hh:mm:ss.uuuuuu threadid file:line] message
Lは重要度レベル文字:
- I = INFO
- W = WARNING
- E = ERROR
- F = FATAL
klogログ行の例
I0115 10:30:00.000000 1 controller.go:123] Starting reconciliation loop
W0115 10:30:01.000000 1 reflector.go:456] Watch channel was closed, restarting
E0115 10:30:02.000000 1 leaderelection.go:78] Failed to acquire lease
抽出されるフィールド
| フィールド | 説明 |
|---|---|
| 重要度 | 単一文字プレフィックス: I、W、E、F |
| 日付 | MMDD(年なしの月と日) |
| 時刻 | HH:MM:SS.マイクロ秒 |
| スレッドID | プロセス/goroutine識別子 |
| ソースファイル | Goソースファイルと行番号 |
| メッセージ | ログメッセージ内容 |
ユースケース
Kubernetesコントロールプレーン問題のデバッグ、kubeletとcontroller-managerログの分析、Podスケジューリング失敗の調査、リーダー選出問題の監視、CrashLoopBackOffコンテナのログ出力調査によるトラブルシューティング。