Linux で自宅サーバ [ Home Server Techncial ]

>>トップページに戻る

BBS 過去ログ No.0007に戻る

タイトル: httpdのログファイル
記事No: 1953
投稿日: 2004/05/03(Mon) 20:55
投稿者: DHTR
レンタルサーバーから早速自宅サーバーに移転してみたのですが、
スペック不足でCGIの処理が遅く、混雑時には数秒間かかってしまいます。
アクセス数はTOPページが5000PV/日程度なのですが、CGIって負荷がかかるんだなぁ、と実感しました。

ところで、httpdのログファイルについてなんですが、画像などのログを記録しない状態にしても、1日約7MBずつ消費してしまいます。
HDDが2GBしかないのでちょっと困っています。

まだ、規則性はつかめていないのですが、「access_log」「access_log.1」「access_log.2」…、という風に増えていくんですよね?
無限に増えると困るので自動的に削除する方法は無いのでしょうか?

サーバーを立ててからまだ2日程度なのですが、結構ログが容量を食っています。

よろしくお願いします。


/var/log/httpd
access_log          16MB
accecc_log.1       15KB
error_log         103KB
errer_log.1         7KB
ssl_request_log     1KB
ssl_request_log.   14KB
warm_log            1KB

タイトル: access_log を取らない方法
記事No: 1954
投稿日: 2004/05/03(Mon) 21:00
投稿者: DHTR
分かりにくい質問で申し訳ありません。

良く考えればログの自動削除ではなくて最初から取らなくても良いかもしれません。
不正アクセスがあったときのために、他のログは取ったほうが良いかもしれませんが、「access_log」は、ファイルのリクエストのみの記録なのでいらないと思いまして…。
スペック不足な際、極限までサーバーを軽くしたくて悩んでいます。
このログファイルを作成しない方法を教えていただけないでしょうか?
よろしくお願いします。

タイトル: Re: access_log を取らない方法
記事No: 1961
投稿日: 2004/05/05(Wed) 14:26
投稿者: どしろうと
> このログファイルを作成しない方法を教えていただけないでしょうか?
> よろしくお願いします。

あまりに簡単なので無視されてる?
httpd.confのちょうど真ん中あたりにある
CustomLog /var/log/httpd/access_log combined
CustomLog /var/log/httpd/worm_log combined

などのCustomLog /var/log/httpd/・・・ をすべて#つけて
コメントアウトすれば良いのでは・・

アクセスログを有効にして個別に
nologを書いていくとかもできるそうです。どういう種類があるのか
知らないのでどこぞの本を参照ください。
例えば
SetEnvIf Request_URI "\.(gif)|(jpg)|(png)$" nolog
SetEnvIf Request_URI ^/_mem_bin/ nolog
SetEnvIf Request_URI ^/_vti_bin/ nolog
SetEnvIf Request_URI ^/c/ nolog
SetEnvIf Request_URI ^/d/ nolog
SetEnvIf Request_URI "^/msadc/" nolog
SetEnvIf Request_URI "^/MSADC/" nolog
SetEnvIf Request_URI ^/scripts/ nolog
SetEnvIf Request_URI ^/default\.ida nolog
SetEnvIf Remote_Addr ^192\.168\. nolog

これが必要でしたん。
CustomLog /var/log/httpd/access_log combined
           ↓
CustomLog /var/log/httpd/access_log combined env=!nolog

ど、どしろうとでした。**ちょこっと修正**

タイトル: Re^2: access_log を取らない方法
記事No: 1962
投稿日: 2004/05/05(Wed) 14:38
投稿者: DHTR
> あまりに簡単なので無視されてる?
> httpd.confのちょうど真ん中あたりにある
> CustomLog /var/log/httpd/access_log combined
> CustomLog /var/log/httpd/worm_log combined
>
> などのCustomLog /var/log/httpd/・・・ をすべて#つけて
> コメントアウトすれば良いのでは・・
>
> CustomLog /var/log/httpd/access_log combinedを有効にして個別にnologを書いていくとかもできるそうです。どういう種類があるのか
> 知らないのでどこぞの本を参照ください。
> 例えば
> SetEnvIf Request_URI ^/_mem_bin/ worm nolog
> SetEnvIf Request_URI ^/_vti_bin/ worm nolog
> SetEnvIf Request_URI ^/c/ worm nolog
> SetEnvIf Request_URI ^/d/ worm nolog
> SetEnvIf Request_URI ^/scripts/ worm nolog
> SetEnvIf Request_URI ^/default\.ida worm nolog
> SetEnvIf Remote_Addr ^192\.168\. nolog

親切な回答ありがとうございました。
初歩的すぎる質問で大変申し訳ありませんでした。

全てのログを取らないようにするのも危険なので不必要な部分のみコメントアウトしときました。
本当にありがとうございました。

タイトル: searchアクセスログを取らない方法
記事No: 1968
投稿日: 2004/05/05(Wed) 19:18
投稿者: どしろうと
> SetEnvIf Request_URI "\.(gif)|(jpg)|(png)$" nolog
> SetEnvIf Request_URI ^/_mem_bin/ nolog
> SetEnvIf Request_URI ^/_vti_bin/ nolog
> SetEnvIf Request_URI ^/c/ nolog
> SetEnvIf Request_URI ^/d/ nolog
> SetEnvIf Request_URI "^/msadc/" nolog
> SetEnvIf Request_URI "^/MSADC/" nolog
> SetEnvIf Request_URI ^/scripts/ nolog
> SetEnvIf Request_URI ^/default\.ida nolog
> SetEnvIf Remote_Addr ^192\.168\. nolog
>
> CustomLog /var/log/httpd/access_log combined
>            ↓
> CustomLog /var/log/httpd/access_log combined env=!nolog
>

今、アクセスログを確認してみました、SEARCH /\x90\x02\xb1\x02\xb1〜略〜\x90\x90\x90\〜略〜x02\x02\x02・・って一杯あります、
どうすれば排除できるのでしょうか?↑のnologはやってます。
便乗ですがよろしくお願いします。

タイトル: Re: searchアクセスログを取らない方法
記事No: 1969
投稿日: 2004/05/05(Wed) 20:08
投稿者: どしろうと
さっきから検索してるのですが。。2chでも同じ話題が一杯です。
解決はできてないみたいです。
あるページに
SetEnvIf Request_URI "\\x90\\x02\\xb1\\x02\\xb1\\x02\\xb1\\x02" nolog
とあったのでこれでやって見ます。

タイトル: Re^2: serchアクセスログを取らない方法
記事No: 1972
投稿日: 2004/05/06(Thu) 16:30
投稿者: ken URL: http://www.kentan.jp/kentan
> さっきから検索してるのですが。。2chでも同じ話題が一杯です。
> 解決はできてないみたいです。
> あるページに
> SetEnvIf Request_URI "\\x90\\x02\\xb1\\x02\\xb1\\x02\\xb1\\x02" nolog
> とあったのでこれでやって見ます。

はじめまして。kenと申します。

上記の方法だとaccess_logに残ると思います。
リクエストURLが長すぎてerror_logに
URI too long がでるとSetEnvIfのルールは効かないみたいです。
#素人判断なので間違えてたらすみません。

私は以下の方法で対応しています。

httpd.confに以下を変更
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
 ↓
LogFormat "%h %l %u %t \"%!414r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
[HTTPのステータスコードが414ではない時に記録する]という設定です。

詳しくは
http://httpd.apache.org/docs-2.1/ja/mod/mod_log_config.html

error_logには。。。
[Mon Apr 26 02:39:40 2004] [error] [client **.***.**.**] request failed: URI too long
[Mon Apr 26 08:49:06 2004] [error] [client **.***.**.**] request failed: URI too long
[Mon Apr 26 11:33:22 2004] [error] [client **.**.***.***] request failed: URI too long
と相変わらエラーが出てますが。。。

access_logには。。。
**.***.**.** - - [26/Apr/2004:02:39:40 +0900] "-" 414 341 "-" "-"
**.***.**.** - - [26/Apr/2004:08:49:06 +0900] "-" 414 341 "-" "-"
**.**.***.*** - - [26/Apr/2004:11:33:22 +0900] "-" 414 341 "-" "-"

ってなってるので一応対策は出来たみたいです。

ご参考になれば幸いです。

タイトル: searchログを取らない方法
記事No: 1973
投稿日: 2004/05/06(Thu) 22:44
投稿者: どしろうと
> httpd.confに以下を変更
> LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
>  ↓
> LogFormat "%h %l %u %t \"%!414r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
> [HTTPのステータスコードが414ではない時に記録する]という設定です。
>

ありがとうございます。あの長い行がそれだけのことで1行で済むなら
とても素晴らしいです。

バーチャルホストで釣るとかの方法はいくつかのページで見つかりました
が、どうも気にくわなくて、さらに検索を進めると「逆の発想」と言う
のを見つけました。
http://www.sofarts.com/oldnew/diary/2004/dry2004-04.htm#20

ご返事頂くまでは目的にかなってるので、これがいいなと思ってたわけ
ですが、両方試させて頂こうと思います。いろいろ勉強になります。
ありがとうございました。 

▲ページの最上部に戻る

Copyright© Home Server Technical. All Right Reserved.
webmaster@miloweb.net