Kubernetes 応用コース 解説

ログとメトリクスで、変わり続けるクラスタを観測する

PodやNodeが増減するKubernetesでは、観測対象も固定ではありません。ログは出来事、メトリクスは数値の傾向として扱い、収集と可視化の経路を分けて考えます。

TL;DR

  1. Fluent Bitは各Nodeのログを集め、転送・加工する役割を担う。
  2. PrometheusはKubernetesの変化を発見して時系列メトリクスを収集する。
  3. Grafanaはメトリクスを人が判断できるダッシュボードへ変える。

01ログは出来事を残す

各NodeにFluent Bit DaemonSetが置かれ、Podログを集めて転送する図

各NodeにFluent Bit DaemonSetが置かれ、Podログを集めて転送する図
ログは出来事を残すを図解

ログは「何が起きたか」を詳細に残す情報です。Fluent Bitはログを入力し、必要なら加工・フィルタしてCloudWatch Logsなどへ転送します。Node上のコンテナログを集める用途ではDaemonSetが自然です。

押さえること:Fluent Bitは各Nodeのログを集め、転送・加工する役割を担う。

02メトリクスは傾向を見る

PrometheusがPodのmetrics endpointを定期収集し時系列DBへ保存

PrometheusがPodのmetrics endpointを定期収集し時系列DBへ保存
メトリクスは傾向を見るを図解

メトリクスはCPU、メモリ、リクエスト数、エラー率のような時系列の数値です。PrometheusはKubernetesのAPIと連携して対象を発見し、ラベルで絞り込みや集計を行えます。

押さえること:PrometheusはKubernetesの変化を発見して時系列メトリクスを収集する。

03可視化は判断のためにある

Prometheus→Grafanaダッシュボードと、ログ調査の補完関係

Prometheus→Grafanaダッシュボードと、ログ調査の補完関係
可視化は判断のためにあるを図解

GrafanaはPrometheusなどのデータソースをクエリし、グラフやダッシュボードを表示します。ログで個別の原因を追い、メトリクスで異常の範囲と傾向を掴む、という役割分担が有効です。

押さえること:Grafanaはメトリクスを人が判断できるダッシュボードへ変える。

結論

  1. Fluent Bitは各Nodeのログを集め、転送・加工する役割を担う。
  2. PrometheusはKubernetesの変化を発見して時系列メトリクスを収集する。
  3. Grafanaはメトリクスを人が判断できるダッシュボードへ変える。