ITblog

liuxでログファイル肥大化の対策

2015年09月09日

最近、個人で使っているVPS(仮想専用サーバ)が、頻繁にダウンするという現象が起きていたのですが、原因がサーバのディスク容量がいっぱいになっていたことでした。

どこがサーバの容量を圧迫している原因になっていたかというと、PlESKのログファイルでした。

PLESKのログファイルは、以下の場所に出力されます。

/var/www/vhosts/ドメイン名/statistics/logs

ここに出力される error_log と access_log が、サーバ標準の設定ではログローテーションの設定がされていなかったため肥大化し続け、気がつけばサーバ容量の大半を圧迫していました。

対策として、以下の2つを行いました。

1.PLESKログのローテーションの設定

PLESKのログのローテーションは、PLESKログイン後、以下から変更することができます。

ウェブサイトとドメイン → ログ → 該当ドメインの「表示する」 → ローテーション

2.ディスク容量が少なくなった時アラート設定

PLESKのログのローテーションが設定されたとしても、ログファイルは他のアプリケーションから知らないうちに生成されていることがあり、気がつけば同様のことが再度起こる可能性があります。

そのため、サーバのディスク容量が一定以下となった場合、管理者へメール通知をする設定を行いました。

これには、以下のブログ記事が参考になりました。

>Linux – ディスク使用量監視&メール通知! – mk-mode BLOG

パーティションの容量を確認して閾値以下だった場合管理者へメールを送信するシェルスクリプトを作成し、cronで実行します。

#!/bin/bash

# 閾値(%)
LIMIT=90
# メール件名
SUBJECT="[WARN] The capacity of the disk has decreased! - `hostname`"

# df コマンドの結果を1行ずつチェック
while read LINE
do
    # パーセンテージ取得
    PER=`echo $LINE | sed 's/^.* \([0-9]*\)%.*$/\1/'`
    # 閾値を超えたら df コマンドの内容をメール送信
    if [ $PER -gt $LIMIT ]; then
        df -h | mail -s "$SUBJECT" root
        break
    fi
done < <(df | grep '[0-9]\{1,\}%')

https://gist.github.com/komasaru/9580138

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です