Docker/K8S実践コンテナ開発入門@28日目

昨日勉強した件で、
アプリケーションを実行したにも関わらず、何もログに出力されなかった件について調べました。

lawrence-twin.hateblo.jp

fluentdを書籍に従って構築してみたのですが、
正常に起動しておらずエラーをバンバン出していました。

■エラー抜粋
2020-05-28 10:46:11 +0000 [warn]: temporarily failed to flush the buffer. next_retry=2020-05-28 10:46:12 +0000 error_class="MultiJson::AdapterError" error="Did not recognize your adapter specification (cannot load such file -- bigdecimal)." plugin_id="out_es"

今回注目したのは「Did not recognize your adapter specification 」の方です。
こちらは同じような問題を抱えている方がいらっしゃいました。

github.com

■対応

書籍にあった「fluentd.yaml」を以下の通り修正しました。

修正前: image: fluent/fluentd-kubernetes-daemonset:elasticsearch
修正後: image: fluent/fluentd-kubernetes-daemonset:v1.4.2-debian-elasticsearch-1.1

elasticsearchのバージョンを指定していなかったので、
適切なバージョンが選ばれなかった???のでしょうか。

ともかく、上記設定を変更することでエラーは解消しKibanaの方でも
kubernetes.labels.app: echo」と入力することで、echoログが表示できるようになりました。

f:id:lawrence-twin:20200528201005p:plain

その他のログ収集ツール

Google Stackdriver
  • GCPAWSのロギングやモニタリングを行えるモニタリングサービス
  • StackdriverLoggingはKibanaやElasticsearchのように構造化されてインデックスされたログが検索できる
  • GKEではマネージドサービスとして提供されているので管理する必要がない
stern
  • コマンドラインツール
  • ラベル指定だけで簡単にログが確認できる※コンテナ再起動でIDが切り替わってもそのままのコマンドが利用可


続きは明日以降