かまたま日記3

プログラミングメイン、たまに日常

ECSで利用しているfluent-bitのコンテナのヘルスチェックを簡易的に行う

ECS FargateのtaskからDatadogなどにログを送る場合fluent-bitのサイドカーコンテナを立てて、awsfirelensのlogDriverでログを送る事が多いと思います。

その場合、タスクの依存関係を指定しないとログが一部取りこぼしてしまう場合があるため、fluent-bitコンテナのヘルスチェックをする必要があります。 その時にfluent-bitのconfigを変更する必要があり

  • S3などに設定ファイルを置き、起動時に読み込む (参考)
  • カスタムfluent-bitコンテナをビルドし、それを利用する

などの方法が取られる事が多いですが、少し構成的にtoo muchに感じたのでそれらの設定無しで素のfluent-bitに対して簡易的にヘルスチェックをしたい場合のコマンドをご紹介します。

ss -tlnH | grep -c ':24224\>

fluent-bitがログを受け取るポートは 24224 のため、そのポートがリッスンをしているかどうかを確認できればOK、という考えです。 タスク定義ではこのような感じで指定します。

"healthCheck": {
  "command": [
    "CMD-SHELL",
    "ss -tlnH | grep -c ':24224\\>'"
  ]
}