22
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2016-12-18

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

>>> 参考サイト

22
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?