🌫️
nginx, supervisord のログを CloudWatch に送る
概要
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