Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

ECSからcloudwatchにながしたログをtailでみたい

More than 3 years have passed since last update.

1.png初学者向け
ECSことはじめ中に出会って、調べて活用したことを書いています。

今回のお悩み

AWS Solutions Architect ブログ: Amaozn ECSがawslogs Logging Driver(Amazon CloudWatch Logs)に対応しました

awslogsというLogging DriverをECSでタスク定義をした際に使えば、Dockerコンテナでログとして残しておきたい内容をstdout/stderrに吐き出す様にしておくだけで、自動的にCloudWatch Logsに保存されていきます。

便利!
と思ったんですが、cloudwatchログのロググループに蓄積されたストリームを見て、絶望します。

あれ?これファイル一つづつクリックするんですか?
これ、tailで見たいのですが、と言うお悩みです。

cloudwatch-log

無理です

> awslogsで解決

自分のマシンにawslogsをインストールしましょう!pipで簡単に導入可能です。

pip install awslogs

tailしたい場合はオプションつけてこんな感じで、みたいロググループのログを見ることができます。

awslogs get {ロググループ名} --watch
20:42:19 ~/  $ awslogs get api-logs -w -G --timestamp
6bdd60a3ac787a11fc07db4d8f549c3590f997ebba3aa52b458a1e9acb81c109 2016-12-17T11:41:14.662Z npm info it worked if it ends with ok
6bdd60a3ac787a11fc07db4d8f549c3590f997ebba3aa52b458a1e9acb81c109 2016-12-17T11:41:14.663Z npm info using npm@2.14.12
6bdd60a3ac787a11fc07db4d8f549c3590f997ebba3aa52b458a1e9acb81c109 2016-12-17T11:41:14.663Z npm info using node@v4.3.1
6bdd60a3ac787a11fc07db4d8f549c3590f997ebba3aa52b458a1e9acb81c109 2016-12-17T11:41:15.045Z npm info prestart api@0.0.0
6bdd60a3ac787a11fc07db4d8f549c3590f997ebba3aa52b458a1e9acb81c109 2016-12-17T11:41:15.051Z npm info start api@0.0.0
  • -w/--watch オプション
    • いわゆるtailです
  • -G/--no-group オプション
    • グループ名を非表示に
  • --timestampオプション
    • イベントが発生した時間を表示します

私は上記のような形で使っていますが、次に紹介するリンクではもっと詳しい使い方が載っているので、参考にしてください!

>> インストールや使い方

こちらに詳しく載っています。

>> 事前にcredentialやプロファイルの設定はしておこう

さて、あなたが実行したい環境はどの環境に対してですか?
自分の実験環境なのか、お客さんAなのかBなのか、ターミナルを開いたら、以下で確認しておきましょう。

$ aws configure list
      Name                    Value             Type    Location
      ----                    -----             ----    --------
   profile                 bohelabo           manual    --profile
access_key     ****************TTVQ shared-credentials-file
secret_key     ****************TTfQ shared-credentials-file
    region                us-east-1      config-file    ~/.aws/config

私は、.bashrcで主に使う環境はセットしています。ただし、コマンド実行前には必ず確認が必要!

export AWS_DEFAULT_PROFILE=bohelabo

ECSからcloudwatchにログを流す設定方法

そもそもECSからcloudwatchにログを流す設定方法についてってどうするんですか?という追加解説。

> ECS->タスク定義作成->ログ設定

タスク定義の作成のログ設定のところで、そのタスクと紐付けるログをどこに流すかを設定します。

awslogs

  • awslogs-group

    • cloudwatchログのログググループ名。これは事前に、cloudwatch側で作成しておきましょう。タスク実行時にないとエラーになってしまいます
  • awslogs-region

    • 使っているリージョンを指定します
  • awslogs-stream-prefix

    • ストリームにプリフィックスをつけることができます。これを設定すると、ストリームの名称は以下のようになります。スクリーコンテナの名前とプリフィックスにつける名前を工夫すると、フィルタリング等にお役立ちになりそうです
prefix-name/container-name/ecs-task-id

> cloudwatchログ

上記のような設定で、ECSのサービスを実行すると、以下のようなログストリームが作成されます。

cloudwatch-logs

>>> 参考サイト

bohebohechan
developer & founder of First Four Notes, LLC. I write 4 panel comic on Toyo-Keizai Online. http://toyokeizai.net/category/diary
https://firstfournotes.com/
firstfournotes
「音楽を演奏する人」、「音楽を聴く人」をソフトウエアとIoTの力で、より幸せにすることを目指してます。
https://firstfournotes.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away