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コンテナのログ出力調査によるトラブルシューティング。

試してみる — Log Format Parser

フルツールを開く