レンタルサーバー・自宅サーバー設定・構築のヒント
レンタルサーバー・自宅サーバー設定・構築のヒント - レンタルサーバー・自宅サーバーの設定・構築情報を公開しています。

ログローテーション(logrotate)を使ってみる ( httpd(apache)の設定例 )

2010年7月17日 2017年8月11日
loglotate

httpd(apache)のログは、サイト管理を行う上で、非常に大事なものです。

ここでは、そのログファイルの管理を行うログローテーションの設定を行ってみましょう。

ログローテーションのインストールを行う

まずは、ログローテーションのインストールを行います。

インストール済みか否かは、それぞれ以下のように確認することができます。

CentOS Scientific Linux

$ rpm -qa|grep logrotatereturn
logrotate-3.7.8-12.el6.i686
上記のようにパッケージ名が表示されればインストールされています。

Debian Ubuntu

$ dpkg --list|grep logrotatereturn
ii  logrotate                           3.7.8-6                      Log rotation utility
先頭に ii が表示されるとインストールされています。

既にインストール済みの場合は、次の設定の項へどうぞ。

CentOS Scientific Linux

$ yum install logrotatereturn
...

Debian Ubuntu

$ aptitude install logrotatereturn
...

ログローテーションの設定を行う

ログローテーションの管理ファイルは、/etc/logrotate.conf です。
これを編集して、ログローテーションの初期設定を行います。 しかし、変更するようなところがありません。

httpd(apache)のロギングファイルの管理を変更したい場合は、そのサービス名で、そのサービス毎のログローテーションを設定できるようになっています。

httpd(apache)の場合は、/etc/logrotate.d/httpd です。

以下は、/etc/logrotate.d/httpd の編集イメージです。

/var/log/httpd/*.log {
    daily
    missingok
    rotate 90
    compress
    ifempty
    sharedscripts
    postrotate
        /sbin/service httpd graceful
    endscript
}

筆者の場合は、このように変更してみました。
この設定では、毎日、ログローテーションを行い、90日分を保存します。

以下は、ここで設定できるパラメータとその意味です。

compress
ローテーションされたログをgzipで圧縮する。
create [パーミッション] [ユーザ名] [グループ名>]
ローテーション後に新たな空のログファイルを作成します。ファイルのパーミッション、ユーザ名、グループ名を指定できます。
daily
毎日ログローテーションする。
/etc/crontabの内容です。
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
(デフォルトでは、4時2分にローテーションが実施される。)
weekly
毎週ログローテーションする。
(デフォルトでは、毎週日曜日4時22分にローテーションが実施される。)
monthly
毎月ログローテーションする。
(デフォルトでは、毎月1日4時42分にローテーションが実施される。)
ifempty
ログファイルが空でもローテーションする。
missingok
ログファイルが存在しなくてもエラーを出さない。
nocompress
ローテーションされたログを圧縮しない。
nocreate
新たな空のログファイルを作成しない。
nomissingok
ログファイルが存在しない場合エラーを出す。
noolddir
ローテーション対象のログと同じディレクトリにローテーションされたログを格納する。
notifempty
ログファイルが空ならローテーションしない。
olddir ディレクトリ名
指定したディレクトリ内にローテーションされたログを格納する。
postrotate – endscript
postrotateとendscriptの間に記述されたコマンドをログローテーション後に実行する。
prerotate – endscript
postrotateとendscriptの間に記述されたコマンドをログローテーション前に実行する。
rotate 回数
指定した回数だけローテーションする。
size ファイルサイズ
ログファイルが指定したファイルサイズ以上であればローテーションする。
sharedscripts
複数指定したログファイルに対してpostrotateまたはprerotateで記述されたコマンドを1回だけ実行する。
nosharedscripts
sharedscriptsの逆。複数指定したログファイルに対してpostrotateまたはprerotateで記述されたコマンドをファイルの数だけ実行する。

この設定で終わりです。 ここの設定をすれば、後は、自動的に読み込んでくれます。

ログローテーションの確認を行う

ログローテーションの確認を行うのは、logrotate -d で実行すれば、確認することができます。

ここで利用しているlogrotateのパラメータは以下のとおりです。
-d : デバッグ実行します。
-v : 詳細表示します。

他にも以下のようなものがあります。
-f : 強制的に実行します。
このオプションは、1度も実行されたことがないログローテーションの場合に指定することがあります。
-m : メール送信のためのコマンドを指定します。 ex) -m=/bin/mail
-s : 状態ファイルのパスを続けて指定します。 ex) -s=/var/lib/logrotate.status
一般的に、-s は違うユーザがlogrotate を実行したい場合に、状態ファイルを分けることで混乱を防ぐことができます。

正常な場合は、以下のような詳細情報を出力するだけです。

$ logrotate -dv /etc/logrotate.d/httpdreturn
reading config file /etc/logrotate.d/httpd
reading config info for /var/log/httpd/*.log

Handling 1 logs

rotating pattern: /var/log/httpd/*.log  after 1 days (90 rotations)
empty log files are rotated, old logs are removed
considering log /var/log/httpd/access.log
  log does not need rotating
not running postrotate script, since no logs were rotated
以下のように出力された場合、ログローテーションの必要なしと判断されています。
  log does not need rotating
以降のエラーやログファイルが空、あるいは存在しない場合を除けば、
ほとんどの場合は、ログローテーションを最後に行ってまだ1日以上の経過していない場合がほとんどでしょう。

その場合、以下のファイルで最終ログローテーション日付を変更してあげるとうまくいくことがあります。
CentOS Scientific Linux → /var/lib/logrotate.status
Debian Ubuntu → /var/lib/logrotate/status
...
"/var/log/httpd/access.log" 2013-4-72013-4-6
...
また、まだ1度の実行されたことがないローテーションの場合も同じように log does not need rotating と出力される場合があります。 この場合は、1度だけ -f オプションを付けて実行すると、以降、うまくいく場合があります。
$ logrotate -fv /etc/logrotate.d/httpdreturn
reading config file /etc/logrotate.d/httpd
reading config info for /var/log/httpd/*.log

Handling 1 logs

rotating pattern: /var/log/httpd/*.log  after 1 days (90 rotations)
empty log files are rotated, old logs are removed
considering log /var/log/httpd/access.log
  log needs rotating
rotating log /var/log/httpd/access.log, log->rotateCount is 90
...
この後、先の最終ログローテーション日付を設定してあげて、再度、実行してみてください。

もしも設定情報に誤りがあった場合は、以下のようにerror情報を出力されます。

$ logrotate -dv /etc/logrotate.d/httpdreturn
reading config file /etc/logrotate.d/httpd
reading config info for /var/log/httpd/*.log
error: /etc/logrotate.d/httpd:3 unknown option 'aaaa' -- ignoring line

Handling 1 logs

rotating pattern: /var/log/httpd/*.log  after 1 days (90 rotations)
empty log files are rotated, old logs are removed
considering log /var/log/httpd/access.log
  log does not need rotating
not running postrotate script, since no logs were rotated
httpd(apache)のログは、非常に大事です。
参考記事:アクセスログの活用

ログ情報から、サイトの運営の見直し(フィードバック)を行うことがサイト管理者の仕事でもあります。

格安レンタルサーバーでも、ほとんどが、アクセスログとして解析結果を提供しています。
そのまま、apacheの生ログ情報をダウンロードさせてくれるところもあります。

これは、活用しない手はありません。ぜひ、活用しましょう。


関連記事 :


コメントを投稿 :

お名前 *

メールアドレス *
( メールアドレスが公開されることはありません。)

サイトアドレス

コメント *

* 印の項目は、入力が必要な項目です。




最近投稿の記事

Genymotionとは、 公式サイト(http://www.genymotion.com/)には、以下のように記述があります。 G ...

以下のように Android x86 を仮想マシンへインストールし、色々と試してきました。 仮想マシンを使って Android ...

Android x86とは、 いわゆる Android のPC版OSです。 Android は、Googleによって開発されたスマー ...

Android x86とは、 いわゆる Android のPC版OSです。 Android は、Googleによって開発されたスマー ...

今回は、Mondo Rescue を使って バックアップとリストア(復元)をやってみたいと思います。 いまだに、さくらのVPSは、バッ ...


さくらのVPS 全プラン リニューアルです。(石狩(北海道)も選択可)


root権限ありで ¥685 / 月 ~ と非常にリーズナブルな CPU 1(core)の 512 プランから、 最高 CPU 10(core), メモリ 32(GB), SSD容量 800(GB) までとプランが充実。
ディスクは、SSDとHDDの選択が可能になった他、データセンターは人気の東京、石狩(北海道)となりました。

また、どのプランでも好きなOSが選べます
( CentOS, Fedora, Scientific Linux, FreeBSD, Ubutu, Debian )

管理人もおすすめのVPSです。
試用期間がありますから、一度、お試しを!!

詳しくは、http://vps.sakura.ad.jp/さくらのVPSのサイトへ へどうぞ!!

カテゴリ


Serverman@VPS 完全1ヶ月無料 キャンペーン実施中です。


Serverman@VPS 完全1ヶ月無料 キャンペーン実施中です。
最近、スワップにも対応した Serverman@VPS は、かなりリーズナブルかもです。

  • メモリ1GB~2GBのEntryプラン :月額:490円
  • メモリ2MB~4GBのStandardプラン :月額:980円
  • メモリ4GB~8GBのProプラン :月額:1,980円

新規申し込みで1ヶ月間完全無料となるキャンペーンを実施中です。
Serverman@VPSの特徴は、安さとIPv6対応です。また、初期設定費0円もポイントです。

IPv6でちょっと遊んでみたい方には、おすすめかもしれませんね。最低利用期間もありませんから、気に入らないときは即解約もできます。

Serverman@VPSの詳細については、 http://dream.jp/vps/ Serverman@VPSのサイトへへどうぞ。



KVM採用 ConoHa VPSは、時間単位で借りれる便利なVPSです。


ConoHa VPS は、初期設定費0円最低利用期間無し時間単位で清算可能、 さらに、Web APIを使って自動化を図ることもできる便利なVPSです。

海外サーバー設置も可能で、ローカル接続にも対応と、かなり、機能豊富なサーバーです。

新規ユーザ登録で、クーポンもらえますから、まずは、お試しですね。

ConoHa VPSの詳細については、
http://www.conoha.jp/ へどうぞ。

KVM採用 お名前.com VPS(KVM) 2G プラン 初期設定費無料 キャンペーン 実施です。


メモリ2GBプラン CPU:3core、Disk:200GB
月額:1,153円から (初期設定:1,680円0円)

さくらのVPSがリニューアルされてもなんのその。
1GBメモリ / 2Core を ¥834 – の格安価格で提供中です!
間違いなくスペックからすると割安感ありです。
年間割引時の途中解約で返金がないのは、 ちょっと残念ですが、それでもこの割安感は魅力です。

まずは、お試しですね。

お名前.com VPS(KVM)の詳細については、
http://www.onamae-server.com/vps/ へどうぞ。(お試し期間が15日あります。)



ページトップへ
Time : 0.2159 [s]