🌫️

nginx, supervisord のログを CloudWatch に送る

2019/12/13に公開

概要

nginx, supervisord のログを CloudWatch に送る手順と logrotate についてまとめる

CloudWatch に送る

インストール

sudo yum install awslogs

/etc/awslogs/awscli.conf を書き換える

修正
[plugins]
cwlogs = cwlogs
[default]
region = ap-northeast-1
追記
[/var/log/hoge/hoge.log]
log_group_name = /var/log/hoge/hoge.log
log_stream_name = {instance_id}
file = /var/log/hoge/hoge.log
datetime_format = %Y-%m-%d %H:%M:%S,%3N
initial_position = start_of_file
buffer_duration = 5000
nginx も送るならこれも追記
[/var/log/nginx/access.log]
log_group_name = /var/log/nginx/access.log
log_stream_name = {instance_id}
file = /var/log/nginx/access.log
datetime_format = %Y-%m-%d %H:%M:%S,%3N
initial_position = start_of_file
buffer_duration = 5000

[/var/log/nginx/error.log]
log_group_name = /var/log/nginx/error.log
log_stream_name = {instance_id}
file = /var/log/nginx/error.log
datetime_format = %Y-%m-%d %H:%M:%S,%3N
initial_position = start_of_file
buffer_duration = 5000

restart

sudo systemctl restart awslogsd

インスタンス起動時に自動実行する

sudo systemctl start awslogsd
sudo systemctl enable awslogsd
sudo systemctl status awslogsd

ログファイルを rotate する

nginx, supervisord などのログがディスクを圧迫しないように削除など行う。

設定ファイル

  • logrotate: /etc/logrotate.conf
  • 各種サービス: /etc/logrotate.d/*
    これらのファイルは以下のように設定する必要がある
    $ ls -l /etc/logrotate.d/
    -rw-r--r-- 1 root ec2-user 154  9月 21 16:46 hoge
    -rw-r--r-- 1 root root     243 12月 17  2018 nginx
    

logrotate の設定ファイルの再読み込み

sudo logrotate /etc/logrotate.conf

logrotate のテスト (dry run)

sudo logrotate -d /etc/logrotate.d/hoge

logrotate の強制実行

sudo logrotate -f /etc/logrotate.d/hoge

現在の rotate 状況

cat /var/lib/logrotate/logrotate.status

Discussion