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

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

2010年7月17日 2015年5月17日
loglotate

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

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

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

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

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

CentOS Scientific Linux

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

Debian Ubuntu

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

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

CentOS Scientific Linux

$ yum install logrotate
...

Debian Ubuntu

$ aptitude install logrotate
...

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

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

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

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

$ vi /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/httpd
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/httpd
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/httpd
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の生ログ情報をダウンロードさせてくれるところもあります。

これは、活用しない手はありません。ぜひ、活用しましょう。
ご利用のブラウザは、広告ブロック(AdBlockなど) が適用となっていませんか?
このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない検索ができないことがあります。


関連記事 :

Nginx のログをログローテーションに対応させるには

以前に、「ログローテーション(logrotate)を使ってみる ( httpd(apache)の設定例 )」で ログローテーション ( logr ...

Webalizerで URLエンコード文字列を扱うには?

Webalizerの日本語化(UTF8化)は、以下の記事でできるようになったと思います。 Webalizerの日本語化(UTF8化)す ...

FreeBSDでlogrotateをインストール

さて、今回は、最後のapacheのインストールの前のひと手間、ログの設定です。 FreeBSDでは、logrotate(ロギング)が提供されて ...

Nginx でログファイルの再オープンで失敗する場合の対応は

以前に、「Nginx のログをログローテーションに対応させるには」で ログローテーション ( logrotate ) のnginx 対応につ ...

FreeBSDでapacheをインストール

さて、今回は、apacheのインストール手順です。 これができれば、Wordpress,Joomla!などphp + mysqlの組み合わせの ...



コメントを投稿 :

お名前 *

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

サイトアドレス

コメント *

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




最近投稿の記事

[ 画像提供元 : Amazon ] 先日、1TBのディスクの入れ替え時にバックアップをとろうとディスクコピーを行いました。 その際 ...

Windows で Linux ファイルシステム Ext4 のディスクをマウントするには? Ext3Fsd が、おそらく、最も簡単なツール ...

今回は、Windows で Compass を使ってみました。 Compass とは、 Sass(サス、Syntactica ...

今回は、Anti Adblock を使ってみました。 Anti Adblock とは、 そもそも Adblock という ウェブ ...

デスクトップ環境でない サーバーで、Webページのキャプチャー画像をコマンドで撮る には、wkhtmltoimage, CutyCapt ...


さくらの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.2411 [s]