Logstashを利用し、Docker logsをコンポーネント名.logファイルに出力したい

0

Greengrass Coreデバイスにおいて、docker-composeでオーケストレーションする複数のコンテナを持ったユーザー定義コンポーネントを配信しました。その際、各コンテナのlogsをコンポーネントのlogファイルに書き込みたいですが、Logstashをコンポーネントに追加し、Dockerコンテナのログをコンポーネントのログファイルに出力する具体的な方法が分かりません。 以下の内容でlogstash.confファイルを作成しましたが、解決できませんでした。 input { file { path => "/var/lib/docker/containers//-json.log" # すべてのコンテナのログを監視 type => docker codec => json sincedb_path => "/tmp/logstash_sincedb" # sincedb を一時ディレクトリに設定 } } output { stdout { } }

質問済み 2ヶ月前19ビュー
1回答
0

AWS IoT Greengrass環境でDockerコンテナのログをコンポーネントのログファイルに出力する方法について、以下のアプローチを提案します:

  1. Logstashの代わりに、AWS IoT Greengrassの組み込みログ機能を活用することをお勧めします。Greengrassは既にコンポーネントのログを管理する機能を持っています。

  2. Greengrassコンポーネントの設定で、Lifecycleのrunを例えば以下のように指定します。

    "Lifecycle": {
        "run": "docker-compose -f {artifacts:path}/docker-compose.yaml up"
    },
  3. Greengrassのlogsコマンドを使用して、ログを確認できます:

    greengrass-cli logs get --log-file path/to/a/log/file
    

このアプローチにより、DockerコンテナのログをGreengrassのログシステムと統合し、コンポーネント名.logファイルに出力することができます。Logstashを使用する複雑さを避け、Greengrassの既存の機能を最大限に活用できます。

参考資料
Amazon ECRまたは Docker Hub のパブリックイメージから Docker コンテナを実行する
ログ - AWS IoT Greengrass
Community | Deploying Docker Compose with Greengrass!
AWS IoT Greengrass の特徴 - Amazon Web Services

profile picture
回答済み 2ヶ月前
AWS
サポートエンジニア
修正済み 2ヶ月前

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン

関連するコンテンツ