• ベストアンサー

ログをもっと少なくしたい。

redhat7.3をつかっています。 現在apacheは1.3.33ですが/usr/local/apache/log 内にあるaccess_logやerror_logなどが膨大に増え、300Mとかになっています。 これをもう少し少なくできないでしょうか? またこのあたりのログはローテーションはされないのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • haru44
  • ベストアンサー率60% (12/20)
回答No.4

/etc/logrotate.d というディレクトリの中に、httpd というファイルはないでしょうか? もしあれば、その中に /usr/local/apache/log/access_log や、/usr/local/apache/log/error_log の記述を追加すれば良いと思います。 /var/log/httpd/*log { … } となっていたら、 /usr/local/apache/log/*log { … } とすれば良いでしょう。

その他の回答 (3)

  • entree
  • ベストアンサー率55% (405/735)
回答No.3

エラーログについては LogLevel warn くらいにするとそれなりに出なくなると思います。 それでも出るようであれば、定期的にスイッチする必要があるでしょう。 アクセスログについても定期的にスイッチし、1週間経過したら削除するかアーカイブするなどの対処をします。 ログスイッチはファイルを強引に移動してApacheを再起動(apachectl graceful)するだけなので、簡単なスクリプトで作成できるでしょう。gracefulオプションで再起動した場合、接続中のユーザが強制的に切断されたりすることもないようになっています。

  • kuny2005
  • ベストアンサー率67% (21/31)
回答No.2

>またこのあたりのログはローテーションはされないのでしょうか? 意図的に設定しないとログのローテーションはされません。 一番簡単にapacheログをローテーションさせるのはhttpd.confで設定する方法かと思います。 ErrorLog "|<rotatelogのパス> <apacheのログディレクトリ>/error%Y%m%d.log 1D" CustomLog "|<rotatelogのパス> <apacheのログディレクトリ>/access%Y%m%d.log 1D"combined 例> ErrorLog "|/usr/local/apache/bin/rotatelogs /home/user/log/error%Y%m%d.log 1D" CustomLog "|/usr/local/apache/bin/rotatelogs /home/user/log/access%Y%m%d.log 1D"combined 1日づつログを分けてくれます。 ただ、この方法は簡単でいいのですが、どんどんログファイル溜まっていくので以下の様なシェルスクリプトを作成してcronで実行するのが一番いいと思います。 <毎月1日の0時0分> 1・ログファイルを別ファイル名(年月)で圧縮 2・ログファイルを削除 <毎年1月1日0時0分> 1・去年のログの圧縮ファイルを削除 如何でしょうか?

  • asuca
  • ベストアンサー率47% (11786/24626)
回答No.1

エラーレベルの設定を行えばいけるのではないかと思います。

参考URL:
http://www.atmarkit.co.jp/flinux/rensai/apache13/apache13a.html
titikun00
質問者

お礼

このアクセスログはいつまで保持するのでしょうか? 何件かになったらログは削除されていくのですか?

関連するQ&A

  • apacheのログファイルがいつの間にか消える

    Redhat Linux7.0J apache_1.3.19 openssl_0.9.6b apache_1.3.19+ssl_1.44の環境で 下記のログファイルの中身が、いつの間にか 全て消えてなくなるのです。  マシンを再起動すれば、たちまちログ出力は 開始されるのですが、また気付いたら消えています。  消えるまでにどれだけの日数がかかるのかは 分かりません。サーバの再起動は3ヶ月に1回ぐらいは 実施していますが、毎回logのことを調べてはいないので どのタイミングで消えたかは全く不明です。 定期的に消えるような処理が自動的に動いているのでしょうか?(それはcronという機能のことですか?cronの設定とかよく分からないのですが現状どのようなcronが動いているか確認する手段(コマンド)はありますか?) [ログファイルは、下記のように1ファイル/1Wずつ保存されていて気付いたら中身が消えている] /usr/local/apache/logs/httpsd_access_log ・・・ /usr/local/apache/logs/httpsd_access_log.4 /usr/local/apache/logs/httpsd_error_log ・・・ /usr/local/apache/logs/httpsd_error_log.4 ログのrotationについては /etc/logrotate.d/syslogファイルに 下記を記述しています。  この記述方法が悪いのでしょうか? インストールの初期状態で自動的に記述されていた maiilogファイルなどを真似して記述したのですが 間違いがありますか? [/etc/logrotate.d/syslogファイルの記述] /usr/local/apache/logs/httpsd_access_log { postrotate /bin/kill -HUP `cat /var/run/xinetd.pid 2>/dev/null` 2>/dev/null || true endscript } /usr/local/apache/logs/httpsd_error_log { postrotate /bin/kill -HUP `cat /var/run/xinetd.pid 2>/dev/null` 2>/dev/null || true endscript }

  • apacheのアクセスログのファイル名について

    【環境】 centos4.5 apache2.2.6 現在、テストの為、アクセスログを5分ごとにローテーションさせて、 ファイル名には「年月日時分秒」が入るように設定してますが、 出力されるアクセスログファイル名の時刻がおかしくて困ってます。 【httpd.confの設定値】 CustomLog "|/usr/local/apache2/bin/rotatelogs /usr/local/apache2/logs/access_log.%Y%m%d%H%M%S 300" combined 15時55分に出力されたファイル名 access_log.20071104065500 16時5分に出力されたファイル名 access_log.20071104070500 上記のように 15時だと06 16時だと07 になってしまいます。 年・月・日・分・秒は正確にファイル名に入るのですが、 時だけおかしいです。 dateコマンドだと正常に表示されます 2007年 11月 4日 日曜日 16:44:02 JST 原因が分からず困っています。 どなたか教えて下さい。宜しくお願いします。

  • SSLのログファイルを【1ファイル/Day】に設定したい

    SSLのログファイル形式はデフォルトで、全てのログは1つのファイルに書く込む設定になっています これを、毎日1個のログファイルを吐き出す設定に変えたいのですが、方法を教えていただければ幸いです ■環境 ―――――――――――― RedHat Linux6J Apache 1.3.27 openssl-0.9.7 mod_ssl-2.8.12-1.3.27 ―――――――――――― Apacheのログファイルを、下記の指定で、毎日ワンファイル吐き出すようになっています(1行): CustomLog "|/usr/local/apache/bin/rotatelogs /usr/local/apache/logs/access%Y%m%d_log 86400 540" combined SSLのログファイル設定の部分は、下記のようになっています(2行): CustomLog /usr/local/apache/logs/CustomLog_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" この部分の修正になるのでしょうか。もし、そうであれば、具体的に修正方法を教えていただければ、幸いです どうぞよろしくお願いいたします

  • apacheのログについて

    Solaris10において、Apache2.2.8を使用しています。 httpd.confのListenを80から変更したところ、アクセスログ(/usr/local/apache2/logs/access_log)が出力されなくなりました。 再起動してもダメです。 Listenポート番号の変更でログの出力に影響が出るのでしょうか? ご教授お願いします。

  • Apacheでのaccess_logの設定

    Apacheでaccess_logを自動で記録するようにデフォルトの設定になっているのですが、これを1週間ごとに保存できるように設定することはできますでしょうか? 12月の半ばにサイトをオープンしたばかりですが、それ以来、1つのaccess_logファイルに追加されている状態です。 現在のlog指定行は下記のみです。 CustomLog /usr/local/apache/logs/xxx-access_log combined 当方初心者なので、参考サイトも教えていただけると大変助かります。 よろしくお願いいたします。

  • httpd.conf

    Apacheのhttpd.confで CustomLog /usr/local/apache/logs/access_log combined ErrorLog /usr/local/apache/logs/error_log などをコメントアウトして、ログの記録を止めるのはApacheの動作自体に問題はあるのでしょうか? どうしてもログの記録を一時的に止めたいのですが、方法として上記のようなやり方は間違ってないでしょうか。

  • accessログとrefererログを一緒に結合させて生成する方法を教えてください

    RedHat 7.3を使用しております。 現在、ログファイルが、 access_log referer_log error_log と、毎日3ファイル作成されております。 これを、 「access_log」の中に「referer_log」の 情報を含める形にして、 access_log error_log と2つファイルが作成されるように 設定を変更したいのですが どのようにしたらよいでしょうか?

  • apache について

    Linux RedHat7.1 を使っています。 apache をインストールして、 初期設定のままで、 /usr/local/apache/bin/apachectl start を実行してから、 /usr/local/apache/bin/apachectl stop  を実行した後、 再度、 /usr/local/apache/bin/apachectl start を実行すると、 ログファイルがどうとかで、エラーが出て実行できなくなってしまいました。 apache を実行する時と、ストップする時には、どの方法を使うのが一番よい方法なのかを教えてください。 なんか、いまいち何を言ってるのかわからないかも知れないけど、どうか、よろしくお願いします。

  • アクセスログを削除してもいいでしょうか

    LinuxでWebサーバ(Apache)を動かしていますが、アクセスログとエラーログのファイルサイズが大きくなりvarパーティションを圧迫しています。このログはログローテーションにより毎週日曜日に更新されるのですが、古いログを削除しようと思っています。たとえばaccess_log(更新中のファイル)、access_log.1、access_log.2、access_log.3、access_log.4とある内access_log.3とaccess_log.4を削除しても問題ないのでしょうか? OSはRedHatLinux7.0jです。

  • Apacheのログについて

    apacheのログの設定について苦戦しています ログローテートをしたいのですが出来ません。 ログの書式を設定したいのですが 解決方法を教えていただけないでしょうか。 httpd.confで次の設定をしています。 ・ログローテートについて CustomLog "|/opt/apache/bin/rotatelogs /opt/apache/logs/access_log.%Y%m%d 86400" hoge CustomLog "|/opt/apache/bin/rotatelogs /opt/apache/logs/error_log.%Y%m%d 86400" hoge ・ログの書式について [日時] [ホスト名] [情報レベル] [詳細] という風に設定したいです。 次の設定にしています。 LogFormat "%t %h %l %u %t \"%r\" %>s %b" hoge その他の設定はほとんどデフォルトから変更しておりません。 OS : centos 4.6 Apache version: 2.2.11 以上です。よろしくお願いします。m(_ _)m