Linuxで効率的にログのローテーション設定を行う方法

この記事では、Linuxにおけるログのローテーション設定に焦点を当てます。ログのローテーションは、長期間にわたるシステム運用で非常に重要なプロセスの一つです。この記事では具体的なコード例を交え、`logrotate`コマンドを用いた基本的な設定から高度な設定、さらには応用例まで解説します。

目次

ログローテーションとは?

ログローテーションとは、ログファイルが一定のサイズに達したときや一定期間が過ぎたときに、古いログを削除または圧縮して新しいログを作成するプロセスです。これにより、ディスクスペースの有効活用とログ管理が行えます。

logrotateコマンドの基本

Linuxにはログローテーションを行うための`logrotate`コマンドが用意されています。`logrotate`は非常に柔軟な設定が可能です。

# logrotateの設定ファイルを編集
sudo nano /etc/logrotate.conf

logrotateの基本的な設定例

ここでは基本的な`logrotate`の設定例を見てみましょう。

/var/log/wtmp {
    monthly
    minsize 1M
    create 0664 root utmp
    rotate 1
}

各オプションの解説

– `monthly`: ログのローテーションを月に1回行います。
– `minsize 1M`: ログファイルが1MB以上の時にローテーションを行います。
– `create 0664 root utmp`: ローテーション後に新しいログファイルを`root:utmp`の所有者として、`0664`のパーミッションで作成します。
– `rotate 1`: 古いログは1世代残してそれ以外は削除します。

応用例

1. ログファイルをメールで送信

/var/log/wtmp {
    monthly
    minsize 1M
    create 0664 root utmp
    rotate 1
    mail example@example.com
}

2. ローテーション前後にスクリプトを実行

/var/log/wtmp {
    monthly
    prerotate
        /usr/local/bin/some_script.sh
    endscript
    postrotate
        /usr/local/bin/another_script.sh
    endscript
}

3. 特定のディレクトリ内のログを一括でローテーション

/var/log/nginx/*.log {
    daily
    rotate 5
}

4. 圧縮オプションを使用

/var/log/wtmp {
    compress
    delaycompress
}

5. サイズが0のファイルをローテーションから除外

/var/log/*.log {
    size +0
    daily
}

まとめ

ログのローテーションはLinuxシステムの健全な運用において欠かせないプロセスです。この記事では`logrotate`コマンドを使用した様々な応用例を通じて、その設定方法を詳細に説明しました。これを機に、より効率的なログローテーション設定を行ってください。

created by Rinker
オライリージャパン
¥3,080 (2024/05/03 20:33:07時点 Amazon調べ-詳細)

コメント

コメントする

目次