LAMP搭建9:Apache日誌切割

來源:互聯網
上載者:User

標籤:lamp   apache   搭建   日誌切割   

網站的訪問日誌增長很快,如果儲存在一個檔案中,不進行切割,那麼很快就會撐爆伺服器的磁碟,我們需要對其進行切割,並且定期刪除無用的日誌,以保證磁碟的合理使用。

1.編輯虛擬機器主機設定檔

[[email protected] important]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

2.去掉訪問日誌配置行前面的注釋符#

<VirtualHost *:80>

DocumentRoot "/tmp/123"

ServerName invalid.com

</VirtualHost>

<VirtualHost *:80>

DocumentRoot "/data/www"

ServerName www.test.com

ServerAlias www.mydiscuz.com

ServerAlias www.others.com

ErrorLog "logs/dummy-host.example.com-error_log"

   CustomLog "logs/dummy-host.example.com-access_log" combined

<IfModule mod_rewrite.c>

RewriteEngine on

RewriteCond %{HTTP_HOST} ^www.mydiscuz.com$ [OR]

RewriteCond %{HTTP_HOST} ^www.others.com$

RewriteRule ^/(.*)$ http://www.test.com/$1 [R=301,L]

</IfModule>

<Directory /data/www/important/>

AllowOverride AuthConfig

AuthName "username"

AuthType Basic

AuthUserFile /data/.htpasswd

require valid-user

</Directory>

</VirtualHost>

其中combined是日誌格式名字,主設定檔裡定義了三種日誌格式combined、common、combinedio。我們這裡使用combined格式。

3.檢查無誤後重新載入設定檔:

[[email protected] important]# apachectl -t

Syntax OK

[[email protected] important]# apachectl graceful

4.在瀏覽器中多訪問幾次,就可以產生訪問日誌和錯誤記錄檔(沒有錯誤時為空白)

[[email protected] important]# cd /usr/local/apache2/logs/

[[email protected] logs]# ls

access_log                         error_log

dummy-host.example.com-access_log  httpd.pid

dummy-host.example.com-error_log

查看主設定檔中日誌格式定義:

[[email protected] important]# vim /usr/local/apache2/conf/httpd.conf

……

<IfModule log_config_module>

#

# The following directives define some format nicknames for use with

# a CustomLog directive (see below).

#

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

LogFormat "%h %l %u %t \"%r\" %>s %b" common

<IfModule logio_module>

# You need to enable mod_logio.c to use %I and %O

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio

</IfModule>

……

格式說明:

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

%h來源IP

%l不存在時用‘—‘表示

%u使用者名稱,不存在時用‘—‘表示

%t時間

%r動作,GET或POST

5.編輯虛擬機器主機設定檔,定義日誌切割的方式:

<VirtualHost *:80>

DocumentRoot "/tmp/123"

ServerName invalid.com

</VirtualHost>

<VirtualHost *:80>

DocumentRoot "/data/www"

ServerName www.test.com

ServerAlias www.mydiscuz.com

ServerAlias www.others.com

ErrorLog "logs/test.com-error_log"

   CustomLog "| /usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/test.com-access_%Y%m%d_log 86400" combined

<IfModule mod_rewrite.c>

RewriteEngine on

RewriteCond %{HTTP_HOST} ^www.mydiscuz.com$ [OR]

RewriteCond %{HTTP_HOST} ^www.others.com$

RewriteRule ^/(.*)$ http://www.test.com/$1 [R=301,L]

</IfModule>

<Directory /data/www/important/>

AllowOverride AuthConfig

AuthName "username"

AuthType Basic

AuthUserFile /data/.htpasswd

require valid-user

</Directory>

</VirtualHost>

說明:

使用Apache內建的rotatelogs工具,-l 指定存放的絕對路徑,%Y%m%d(YYYYMMDD),86400秒是一天,表示按一天為單位切割

6.檢查無誤後重新載入設定檔:

[[email protected] logs]# apachectl -t

Syntax OK

[[email protected] logs]# apachectl graceful

7.訪問我們的網站就可產生指定切割格式的記錄檔:

[[email protected] logs]# ls

access_log                         httpd.pid

dummy-host.example.com-access_log  test.com-access_20170111_log

dummy-host.example.com-error_log   test.com-error_log

error_log


LAMP搭建9:Apache日誌切割

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.