0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

GKEのログ収集ツール(Fluent Bit)はlevelをseverityに置き換えてCloud Loggingへ連携してくれる!!

Posted at

GCP(Google Cloud Platform)のGKE(Google Kubernetes Engine)上で動くアプリにて、標準出力へ「{"message":"test!","level":"warn"}」というJSON形式のログを出力すると・・・Cloud Loggingのログエントリーのseverityには、levelで指定した値がコピーされます。つまり「{"message":"test!","severity":"warn"}」と出力した時と同じ動作になってくれるのです!!!

誰が値をコピーしてくれてるの?

GEK上で出力したログは、fluentbit-gkeというDaemonSet経由でCloud Loggingへ連携されており、Fluent BitがCloud Loggingへ連携する前に値をコピーしてくれています。

具体的にはどんな設定が入っているの?

Fluent Bitの設定は、fluentbit-gke-config-v{バージョン番号} というConfigMapに定義されており、severityが指定されていない場合は、levelの値をコピーするという定義がされていました。

fluent-bit.confの該当箇所の抜粋
# ...
# level is a common synonym for severity,
# the default field name in libraries such as GoLang's zap.
# populate severity with level, if severity does not exist.
[FILTER]
    Name        modify
    Match       kube_*
    Copy        level severity
# ...

なぜこんなことを調べたのか?

現在参画しているプロジェクトでは、オンプレ環境で動いているアプリのログもCloud Loggingへ連携しているのですが、オンプレから連携されたログについては、Cloud Loggingのseverityが未指定(=デフォルト扱い)になっていて・・・なぜだ〜となって調べてみました。

オンプレ環境のログどうしよ〜

オンプレのログ収集基盤がどうなっているのか全くわかっていないのですが・・・

  • オンプレのログ収集基盤側でGKEと同じように値をコピーしてから連携してもらう
  • アプリで出力するログのログレベルの項目をseverityに変える

の2択だと思いますが、アプリ屋としてはログ収集基盤側で対応してくれると嬉しいな〜と思ってますw

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?