ECS環境からSumo Logicにログを送信する
ECS上で動いているアプリケーションのログをSumo Logicに送りたい時の送信パターンをまとめてみました。
ECS(Fargate)の場合を中心に、ECS(EC2)とのそれぞれで見ていきたいと思います。
ECS(Fargate)の場合
ECS (Fargate)の場合、firelensを使ったサイドカー方式でのログ送信になりますが、その中でもいくつかのアーキテクチャがありますが下記の2パターンが考えられます。
収集方法 | 実装方法 | Sumo Logic Source |
---|---|---|
Firelens(Fluent Bit) | サイドカーとしてFirelens(Fluent Bit)を設置 | HTTP Logs and Metrics Source |
Firelens(Fluent Bit) + S3 | サイドカーとしてFirelens(Fluent Bit)を設置 | S3 Source |
Firelens(Fluent Bit)
1つ目はFluent BitからSumo LogicのHTTPエンドポイントへ直接ログを送信していくパターンです。
この設定手順についてはSumo Logicのドキュメントに記載されているのでこちらを参照して設定していくとよいでしょう。
このドキュメントにも記載されている通り、アプリケーションのログの送信に加え、Fluent Bit自体の正常性を監視するため、CloudWatch Logsに一度入れた後、Kinesis Firehose経由でSumo Logicに取り込むログ送信設定を入れておくと安全です。
Firelens(Fluent Bit) + S3
2つ目はFluent BitからS3に一度保存して、Sumo Logicに取り込んでいくパターンです。AWS上でも長期保存用にS3に入れておきたい場合などに検討できそうです。
Fluent Bit自体のエラーログは先程と同じです。
Kinesis Firehose Source
Firelens(Fluent Bit)のログルーティングまわりの設定についてはこちらの記事にも紹介されているので参考にしてみてください。
ECS(EC2)の場合
ECS(EC2)の場合、主に下記の4パターンがあります。
Sumo LogicのSourceの設定方法については、リンク先の公式ドキュメントで確認できます。
収集方法 | 実装方法 | Sumo Logic Source |
---|---|---|
Sumo Logic Docker Logging Driver | Sumo Logic製のログドライバーを利用 | HTTP Logs and Metrics Source |
Firelens(Fluent Bit) | 同じホスト上にFirelens(Fluent Bit)を設置(詳細はFargateの場合) | HTTP Logs and Metrics Source |
Installed Collector on Host | EC2インスタンスにログエージェントをインストール | Local File Source など |
Installed Collector on sumologic Container | sumologicコンテナを同じホスト上にデプロイ | Docker Source / Syslog Source / Local File Source |
おわりに
ECSのログを外部環境にプッシュしたい時のパターンについてまとめてみました。今回はSumo Logicを対象としてご紹介しましたが、その他のサードパーティーへの連携にてついても大体は同じ方法でログを送っていくことになるかと思います。
わたし自身も網羅的に確認することで良い整理になりました。