AWS EC2 logrotate 利用方法
前提条件
logrotateとは?
以下のようなことができます。
- ログファイルを自動でローテーション
- 古いログを自動削除
- 圧縮保存
注意事項
今回は、ログファイルを /var/log/test.log に出力いたします。
Linuxの慣習として、ログファイルは /var/log 配下に保存するのが適切です。
cronやsystemd-timerの記事では /tmp/test.log を使用しておりましたが、実運用では /var/log 配下をご利用ください。
事前にEC2サーバー作成は下記の内容をご参考にしてください。
logrotate 利用方法
今回は、AmazonLinux2023を利用いたします。
1. 対象サーバーにログインいたします。
下記のコマンドを実施してください。
| コマンド | 説明 |
|---|---|
| $ sudo -i | rootユーザーに昇格いたします。 |
| # timedatectl set-timezone Asia/Tokyo # date | 日本時間に変更いたします。 dateコマンドで時間を確認いたします。 |
| # rpm -q logrotate | rpmでインストールの確認いたします。 (AmazonLinux2023はデフォルトで入っています) |
| # cat /etc/logrotate.conf | メインの設定確認をいたします。 |
| # ls /etc/logrotate.d/ | 個別設定ファイルの一覧を確認いたします。 |
# vi /etc/logrotate.d/mytest
| viで独自のローテーション設定を作成いたします。 |
| # touch /var/log/test.log | テスト用ログファイルを作成いたします。 |
| # logrotate -d /etc/logrotate.d/mytest | 設定をテスト実行いたします(実際には実行されません)。 |
| # logrotate -f /etc/logrotate.d/mytest | 強制実行して動作確認いたします。 |
| # ls -la /var/log/ | grep test | 実際、ローテートできているか確認いたします。 |
ローテーションオプションの説明
| オプション | 説明 |
|---|---|
| daily | 毎日ローテーションいたします。 |
| rotate 7 | 7世代分保存いたします。8世代目以降は自動削除いたします。 |
| compress | ローテーション後のファイルをgzip圧縮いたします。 |
| missingok | ログファイルが存在しない場合もエラーにしません。 |
| dateext | ローテーション後のファイル名に日付を付与いたします。 (例:test.log-20260420.gz) |
| create 644 root root | ローテーション後に新しいログファイルを自動作成いたします。 パーミッションは644、オーナーはrootに設定いたします。 |

以上で「AWS EC2 logrotate 利用方法」を完了いたします。

