Fluent Bitで転送したEKSログを複数行に対応する。

目的

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

fluent-bitをデフォルトでEKSにデプロイした場合
java等のエラーをが行単位で区切られてしまうため
エラー単位で区切れるようにする。

以下のようなエラーを1行としてCloudWatchLogに転送する

前提

以下、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ファイルに複数行を対応させる

Docker_Mode_Parserに「cloudwatch_logs」を指定します。

変更ファイル:fluent-bit.yaml
変更箇所だけ抜粋

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

AWSコンソールでCloudWatchログで複数行取得出来ていることを確認

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

Smallitのサービス