6
4

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.

ElasticBeanstalk+Docker環境のログ周りについてまとめてみた

Last updated at Posted at 2018-07-30

##はじめに
AWSのElasticBeanstalk+Docker環境でログ周りをみた時に、logrotateとかcronとか設定ファイルの関係性や吐き出すログについてメモ取っていたので、頑張ってツリー構造にしてみました。
その時に見ていたものを中心に書いているので、足りないものがありますのであしからず。

##環境

  • ElasticBeanstalk
  • Docker running on 64bit Amazon Linux/2.7.4
  • 単一EC2インスタンス

##インスタンス内のファイルツリー

###ログファイル群

/var
.
├── lib
│    ├─ awslogs
│    │     └── agent-state
│    ├─ logrotate.status
│    └─ docker
│          └── containers
│                  └── [コンテナID]
│                             └── [コンテナID]-json.log
└── log
     ├─ awslogs.log
     ├─ cron
     ├─ eb-docker
     │      └── containers
     │             └── eb-current-app
     │                    ├── rotated
     │                    └── [コンテナID]-stdouterr.log
     ├─ rotated
     ├─ docker-events.log
     ├─ docker.log
     ├─ eb-activity.log
     ├─ nginx
     │      ├── error.log
     │      ├── access.log
     │      └── rotated
     └─ healthd
            ├── daemon.log
            └── rotated
  • etc/lib/docker/[コンテナID]/[コンテナID]-json.log

    • Dockerコンテナが出力する標準のログファイル
    • インスタンスで動作しているアプリが吐くログが出力される
  • etc/cron

    • cronの実行ログ
  • etc/log/eb-docker/containers/[コンテナID]-stdouterr.log

    • Beanstalk 環境内で実行されている docker logs コマンドが出力しているログファイル
    • インスタンスで動作しているアプリが吐くログが出力される
    • etc/lib/docker/[コンテナID]/[コンテナID]-json.logと同じものが出力される
    • cloudwatchで監視している場合はこちらのログが転送される
  • etc/log/docker-events.log

    • コンテナ関連のログ
  • etc/log/docker.log

    • Docker関連のログ。docker-events.logの内容も含む
  • etc/log/rotated

    • docker-events.logとdocker.logがログローテートされたものが入る
  • etc/log/eb-activity.log

    • デプロイが実行された等のEB関連のログ
  • etc/log/nginx/

    • nginx関連のログ
  • etc/log/healthd/

    • daemon関連のログ

###ログローテート設定ファイル群

/etc
.
├── awslogs
│       └─ config
│             └── beanstalk-log.conf
├── cron.d
│       ├─ 0hourly
│       ├─ awslogs
│       └─ publishlogs
│ 
├── cron.hourly
│       ├─ 0anacron
│       ├─ cron.logrotate.elasticbeanstalk.awslogs.conf
│       ├─ cron.logrotate.elasticbeanstalk.healthd.conf
│       ├─ cron.logrotate.elasticbeanstalk.docker.conf
│       ├─ cron.logrotate.elasticbeanstalk.applogs.conf
│       ├─ cron.logrotate.elasticbeanstalk.dockerdaemon.conf
│       ├─ cron.logrotate.elasticbeanstalk.nginx.conf
│       └─ cron.logcleanup.elasticbeanstalk.healthd.nginx.conf
│ 
├── logrotate.d
│       └─ awslogs 
│ 
└── logrotate.elasticbeanstalk.hourly
        ├─ logrotate.elasticbeanstalk.awslogs.conf
        ├─ logrotate.elasticbeanstalk.healthd.conf
        ├─ logrotate.elasticbeanstalk.docker.conf
        ├─ logrotate.elasticbeanstalk.applogs.conf
        ├─ logrotate.elasticbeanstalk.dockerdaemon.conf
        └─ logrotate.elasticbeanstalk.nginx.conf
  • /etc/cron.d/

    • ここに格納された設定ファイルに従ってcronが実行される
    • 0hourlyだと01 * * * * root run-parts /etc/cron.hourlyなどが書かれている
      • 毎時01分に/etc/cron.hourly以下のファイルを実行するという意味
  • /etc/cron.hourly/

    • cron.d/0hourlyでこのディレクトリのファイルが実行される
    • それぞれのconfファイルがlogrotate.elasticbeanstalk.hourly以下にある対応する設定ファイルでログローテートを実行する
  • /etc/logrotate.elasticbeanstalk.hourly/

    • 対応するログファイルのログローテートの設定が書かれている
  • /etc/logrotate.elasticbeanstalk.hourly/logrotate.elasticbeanstalk.healthd.conf

    • etc/log/healthd/daemon.logのログローテート設定
  • /etc/logrotate.elasticbeanstalk.hourly/logrotate.elasticbeanstalk.docker.conf

    • etc/log/docker-events.logのログローテート設定
  • /etc/logrotate.elasticbeanstalk.hourly/logrotate.elasticbeanstalk.dockerdaemon.conf

    • etc/log/docker.logのログローテート設定
  • /etc/logrotate.elasticbeanstalk.hourly/logrotate.elasticbeanstalk.nginx.conf

    • etc/log/nginx/のログローテート設定

##ログローテートのまとめ
ログローテートの設定ファイル【logrotate.elasticbeanstalk.hourly/】
⬆️ 
対応する設定ファイルでログローテートを実行【cron.hourly/】
⬆︎
指定した時間にファイルを実行【cron.d/】

##おわりに
EBのログローテートをカスタムしたくて色々調べてまとめて見たが、結構わかりづらかった。
そこのところを別で書くかもしれません。
このファイルは記載すべき!やここ間違ってる!などありましたらお願いいたします。

6
4
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
6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?