ºìÁªLinuxÃÅ»§
Linux°ïÖú

¶àÖÖ·Ö¸îWebServerÈÕÖ¾µÄ·½·¨

·¢²¼Ê±¼ä:2006-05-10 00:55:58À´Ô´:ºìÁª×÷Õß:Mrlinux
±¾ÎÄÍêÕûÎĵµµÄµØַΪ: http://dev.weamax.com/docs/books/log_process/log_process.html

±¾ÎÄ×÷Õß: Kenny Zhao

ΪʲôҪ·Ö¸îÈÕÖ¾
Ëæ×ÅÍøÕ¾µÄ·ÃÎÊÔ½À´Ô½´ó£¬WebServer²úÉúµÄÈÕÖ¾ÎļþÒ²»áÔ½À´Ô½´ó£¬Èç¹û²»¶ÔÈÕÖ¾½øÐзָÄÇôֻÄÜÒ»´Î½«´óµÄÈÕÖ¾(ÈçApacheµÄÈÕÖ¾)Õû¸öɾ³ý£¬ÕâÑùÒ²¶ªÊ§Á˺ܶà¶ÔÍøÕ¾±È½Ï±¦¹óµÄÐÅÏ¢£¬ÒòΪÕâЩÈÕÖ¾¿ÉÒÔÓÃÀ´½øÐзÃÎÊ·ÖÎö¡¢ÍøÂ簲ȫ¼à²ì¡¢ÍøÂçÔËÐÐ×´¿ö¼à¿ØµÈ£¬Òò´Ë¹ÜÀíºÃÕâЩº£Á¿µÄÈÕÖ¾¶ÔÍøÕ¾µÄÒâÒåÊǺܴóµÄ¡£

±¾ÎĽ«×ܽáһЩʵÓõÄÈÕÖ¾·Ö¸î·½·¨£¬Ï£ÍûÄܹ»·½±ãLinux/Unix¹ÜÀíÔ±¶ÔÈÕÖ¾Îļþ½øÐÐÓÐЧµÄ¹ÜÀí£¬Èç¹ûÎļþ¹ý¶à¹ý´ó£¬¿ÉÒÔɾ³ýһЩÀúÊ·µÄÎļþ¡£



¼¸ÖÖÈÕÖ¾·Ö¸î·½·¨
2.1.1. ÓõÚÈý·½³ÌÐòcronolog½øÐÐÈÕÖ¾·Ö¸î
2.1.2. ÓÃ×ÔдµÄ½Å±¾½øÐÐÈÕÖ¾·Ö¸î
2.1.3. ÓõÚÈý·½³ÌÐònewsyslog½øÐÐÈÕÖ¾·Ö¸î

2.1.1. ÓõÚÈý·½³ÌÐòcronolog½øÐÐÈÕÖ¾·Ö¸î
ÕâÖÖ·½·¨×î±ã½Ý¿ìËÙ£¬È±µãÊÇÖ»Ö§³ÖApache¡£


Àý 2.1. ÓÃcronolog·Ö¸îÈÕÖ¾

1. ÏÂÔØcronolog

¹Ù·½ÏÂÔصØÖ·: http://cronolog.org/download/cronolog-1.6.2.tar.gz

tar xzvf cronolog-1.6.2.tar.gz
cd cronolog-1.6.2
2. ±àÒë


./configure
make
make install
3. ÐÞ¸ÄApacheµÄÅäÖÃÎļþhttpd.conf£¬¼ÓÈëÒÔÏ´úÂë


CustomLog "|/usr/local/sbin/cronolog /var/log/httpd/www/access%Y%m%d.log" combined
×¢Òâ
Èç¹ûApacheÖÐÓжà¸öÐéÄâÖ÷»ú£¬×îºÃÿ¸öÐéÄâÖ÷»úÖзÅÖÃÒ»¸öÕâÑùµÄ´úÂ룬²¢½«ÈÕÖ¾ÎļþÃû¸Ä³É²»Í¬µÄÃû×Ö



Ìáʾ
/var/log/httpd/www/ ¿ÉÒÔ¸ü¸ÄΪÈκÎÈÕÖ¾Êä³ö·¾¶


4. ±£´æÅäÖúóÖØÐÂÆô¶¯Apache·þÎñ


/etc/rc.d/init.d/httpd stop
/etc/rc.d/init.d/httpd start
×îºóÉú³ÉµÄÎļþÃûÈçÒÔϸñʽ£º

/var/log/httpd/www/access20050918.log


2.1.2. ÓÃ×ÔдµÄ½Å±¾½øÐÐÈÕÖ¾·Ö¸î
Èç¹ûÒòΪÌõ¼þ²»ÔÊÐí£¬²»ÄÜʹÓÃcronolog·Ö¸î£¬ÕâÀïÌṩһÖÖ¸ü¼Ó¼ò½àµÄ·½·¨£¬¿ÉÊʺÏÒÔÏÂϵͳ

Linux
Unix
*BSD

Àý 2.2. ¼Æ»®ÈÎÎñµÄ·½Ê½Ã¿ÌìÉú³ÉÒ»¸öÎļþ²¢Ñ¹Ëõ´æ·Å

×¢Òâ
¼ÙÉ裺/var/log/httpd/ ΪÈÕÖ¾´æ·ÅµÄ·¾¶£¬access_log ΪÒÔÇ°µÄÈÕÖ¾ÎļþÃû

1. ´´½¨ÐÂÎļþ: /var/log/httpd/log-task.cron

ÎļþÄÚÈÝÈçÏÂ


#!/bin/bash

YESTERDAY=`date -d yesterday +%Y%m%d`
/usr/bin/gzip -c /var/log/httpd/access_log>/var/log/httpd/access${YESTERDAY}.log.gz
>/var/log/httpd/access_log
±£´æÍ˳ö


2. ÐÞ¸ÄÎļþµÄÖ´ÐÐȨÏÞ²¢²âÊԽű¾

CODE:
[Copy to clipboard]
chmod u+x /var/log/httpd/log-task.cron
Á¢¼´Ö´ÐÐÒ»´Î£¬²âÊԽű¾ÊÇ·ñÕý³£¹¤×÷


×¢Òâ
²âÊÔ֮ǰ½¨ÒéÏȱ¸·ÝÒ»ÏÂÈÕÖ¾Îļþ(/var/log/httpd/access_log)


²âÊÔ:

/var/log/httpd/log-task.cron
¼ì²é/var/log/httpd Ŀ¼ÏÂÊÇ·ñÒѾ­Éú³ÉÁËÈÕÆÚÃüÃûµÄÎļþ¡£

3. ½«¸Ã½Å±¾¼ÓÈëµ½×Ô¶¯ÔËÐÐÈÎÎñÖÐ

crontab -e

È»ºó½«ÒÔϵĵĴúÂ뿽±´¼ÓÈëµ½cronµÄÆô¶¯½Å±¾Ä©Î²:

1 0 * * * /var/log/httpd/log-task.cron
±£´æÍ˳ö¡£

Ìáʾ
(ÿÌìÁ賿0µã1·Öϵͳ½«×Ô¶¯½øÐÐÈÕÖ¾»Ø¹öÈÎÎñ£¬×îÖÕ»áÔÚ/var/log/httpdĿ¼ÏÂÿÌìÉú³ÉÒ»¸öѹËõµÄÈÕÖ¾Îļþ£¬ÎļþÃûÈç access20051216.log.gz)


2.1.3. ÓõÚÈý·½³ÌÐònewsyslog½øÐÐÈÕÖ¾·Ö¸î
ÕâÖÖ·½·¨ÊÊÓÃÓÚSQUIDµÈÎÞ·¨Ê¹ÓÃcronologµÄWebServer£¬È±µãÊÇ°²×°±È½Ï¸´ÔÓ¡£

Àý 2.3. ÓÃnewsyslog·Ö¸îÈÕÖ¾

×¢Òâ
¼ÙÉ裺/usr/local/squid/var/logs/ ΪÈÕÖ¾´æ·ÅµÄ·¾¶£¬access.log ΪÒÔÇ°µÄÈÕÖ¾ÎļþÃû

1. ÏÂÔØnewsyslog

¹Ù·½ÏÂÔصØÖ·: http://archives.eyrie.org/software/system/newsyslog-1.8.tar.gz


tar xzvf newsyslog-1.8.tar.gz
cd newsyslog-1.8
2. ±àÒë

./configure
make
make install
3. ´´½¨Ò»¸öеÄÎļþ /usr/local/etc/newsyslog.conf

set squid_logpath = /usr/local/squid/var/logs
set squid_log = /usr/local/squid/var/logs/access.log
set date_squid_log = /usr/local/squid/var/logs/access%Y%M%D.log

SQUID{
restart: run /usr/local/squid/sbin/squid -k rotate
log: SQUID squid_log squid squid 644
archive: SQUID date_squid_log 0

}
±£´æÍ˳ö


Ìáʾ
/usr/local/squid/var/logs ¿ÉÒÔ¸ü¸ÄΪÈκÎÈÕÖ¾Êä³ö·¾¶


4. ½«¸Ã½Å±¾¼ÓÈëµ½×Ô¶¯ÔËÐÐÈÎÎñÖÐ

crontab -e

È»ºó½«ÒÔϵĵĴúÂ뿽±´¼ÓÈëµ½cronµÄÆô¶¯½Å±¾Ä©Î²:

CODE:
[Copy to clipboard]
58 23 * * * /usr/local/sbin/newsyslog
×îºóÉú³ÉµÄÎļþÃûÈçÒÔϸñʽ£º

/usr/local/squid/var/logs/access20050918.log
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 0 ÌõÆÀÂÛ