Fluent Bitを使用したEKSのログ転送方法について

目的

【エンジニア募集中】フルリモート可◎、売上/従業員数9年連続UP、平均残業8時間、有給取得率90%、年休124日以上 etc.  詳細はこちらから>

EKSにデプロイしたアプリケーションでエラーが発生してPodが落ちた場合に
ログ確認できなくなってしまうので、fluent-bitを使用しログをCloudWatchに
転送してPod消滅後もログを確認できるようにする。

前提

・EKSが作成済みであること
・kubectlコマンドが実行可能であること

以下、kubectlコマンドが実行可能な端末で作業する。

fluent-bitのname spaceを作成する。

fluent-bitのconfigファイルを作成する。

作成ファイル:fluent-bit-config.yaml

※クラスター名、作成するリージョンは自分の環境に合わせて変更する

fluent-bitのconfigファイルをkubectlコマンドでデプロイする。

fluent-bitのファイルを取得する。

https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/daemonset/container-insights-monitoring/fluent-bit/fluent-bit.yaml
※2021/11時点では上記ですが、URLが変更になっている可能性があります。

取得したfluent-bitファイルを編集する。

今回はアプリのログだけ取得できればいいので、nodeの情報等不要なログ転送部分は削除する

作成ファイル:fluent-bit.yaml

不要な部分削除は以下のようになる。

※resourcesのlimits、requestsの値も修正これは自分の環境に合わせて修正する必要あり。

fluent-bitファイルをkubectlコマンドでデプロイする。

AWSコンソールでCloudWatchロググループが作成される。

作成されるロググループは「/aws/containerinsights/クラスター名/application」となる

今回の場合は以下
/aws/containerinsights/kubernetes/application

【エンジニア募集中】フルリモートも◎(リモート率85.7%)、平均残業8時間、年休124日以上、有給取得率90% etc. 詳細はこちらから>

Smallitのサービス