Home | Data Center | Contact US | Login

Á¦¸ñ apache logrotated ¼³Á¤
÷ºÎÆÄÀÏ apache logrotated ¼³Á¤.pdf ÀÛ¼ºÀÏ 2007-02-22 14:16:11
ÀÛ¼ºÀÚ : ±â¼úÁö¿øºÎ ±è »ï ¼ö <kiss@nextline.net>

apache logrotated ¼³Á¤

logrotated ¼³Á¤À̶õ?

¾ÆÆÄÄ¡ À¥·Î±×ÆÄÀÏ(access_log)À» °ü¸®Çϱâ À§ÇÑ ¼³Á¤À̸ç, access_log, error_logµç ¸ðµç ·Î±×ÆÄÀÏÀ» »ý¼ºÇϵµ·Ï ¼³Á¤ ÇÏ¿´À» °æ¿ì¿¡´Â "·Î±×ÆÄÀÏOPEN – ÆÄÀÏ ³¡À¸·Î À̵¿ – ·Î±×³»¿ëÃß°¡ – ÆÄÀÏ CLOSE" ¶ó´Â ÇÁ·Î¼¼½º¸¦ °ÅÄ¡°Ô µÇ¹Ç·Î ·Î±×ÆÄÀÏÀÇ »çÀÌÁî°¡ Ŭ °æ¿ì º¸¾È°ú´Â º°°³·Î ¼Óµµ¿Í ¼º´É¿¡ ÀûÁö ¾ÊÀº ¿µÇâÀ» ÁÝ´Ï´Ù. Áï, ·Î±×ÆÄÀÏ ¿ë·®ÀÌ Áö¼ÓÀûÀ¸·Î ½×¿© ¿ë·®ÀÌ Å¬ °æ¿ì ÆÄÀϽýºÅÛÇ®ÀÌ ³ª¼­ ½Ã½ºÅÛÀÌ ´Ù¿îµÇ°Å³ª ¶Ç´Â ´Ù¿îµÇÁö´Â ¾Ê´õ¶óµµ À¥¼­ºñ½ºÀÇ ¼Óµµ°¡ ÇöÀúÇÏ°Ô ¶³¾îÁö°Ô µË´Ï´Ù. ÀÌ·± ¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇØ cron¿¡ ÀÇÇØ ÁÖ±âÀûÀ¸·Î ·Î±×ÆÄÀÏÀ» ¼øȯ½ÃÄÑÁÖ´Â ¼³Á¤ÀÔ´Ï´Ù.

¨ç httpd.conf ÆÄÀÏÆíÁý

vi ¿¡µðÅÍ »ç¿ë¹ý

»ç¿ëÇü½Ä : vi [¿É¼Ç] [»ý¼ºÇÒ ÆÄÀϸí/ÆíÁýÇÒ ÆÄÀϸí]

vi ¿¡µðÅÍ´Â ÀԷ¸ðµå, ¸í·É¸ðµå, ½ÇÇà¸ðµå·Î ±¸ºÐµË´Ï´Ù.

ÀԷ¸ðµå : vi ÆíÁýÈ­¸é¿¡¼­ ¹®ÀÚ¸¦ ÀÔ·ÂÇÒ ¼ö ÀÖ´Â ¸ðµå·Î¼­ ÀԷ¸ðµå·Î ÁøÀÔÇϱâ À§Çؼ­´Â i, a, o, I, A, O, RµîÀÌ ÀÖ½À´Ï´Ù. Áï Ãʱâ vi ÆíÁý±â ¸ðµå´Â ¸í·É¾î ¸ðµå·Î ÁøÀÔÀ» Çϱ⶧¹®¿¡ ¹®ÀÚ¸¦ ÀÔ·ÂÇϱâ Àü¿¡ ¾ÕÀÇ ´ÜÃàÅ°Áß Çϳª¸¦ ¸ÕÀú ÀÔ·ÂÇØ¾ß ¿øÇÏ´Â ¹®ÀÚ¸¦ ÀÔ·ÂÇÒ ¼ö ÀÖ½À´Ï´Ù.

¸í·É¸ðµå : Ä¿¼­À̵¿/¹®ÀÚ»èÁ¦/¹®ÀÚ(¿­)±³Ã¼/¹®ÀÚ¿­°Ë»ö µîÀ» ÇÒ¼ö ÀÖ´Â ¸ðµå·Î¼­ ÀԷ¸ðµå¿¡¼­ ÆíÁýÀÌ ¿Ï·áµÇ¸é EscÅ°¸¦ ´­·¯ ¸í·É¸ðµå·Î ÁøÀÔÇÏ¸é µË´Ï´Ù.

x : vi ¸í·É¸ðµå¿¡¼­ Ä¿¼­À§Ä¡ÀÇ ÇÑ ¹®ÀÚ »èÁ¦
dw : vi ¸í·É¸ðµå¿¡¼­ Ä¿¼­À§Ä¡ÀÇ ÇÑ´Ü¾î »èÁ¦
dd : vi ¸í·É¸ðµå¿¡¼­ Ä¿¼­À§Ä¡ÀÇ Çà »èÁ¦
Ndd : vi ¸í·É¸ðµå¿¡¼­ Ä¿¼­À§Ä¡ÀÇ ¿©·¯Çà µ¿½Ã »èÁ¦

½ÇÇà¸ðµå : Ưº°ÇÑ ¸í·É¾î¸¦ ½ÇÇàÇÏ´Â ¸ðµå·Î¼­ ¸í·É¾î¸ðµå¿¡¼­ ":"(ÄÝ·Ð)¸¦ ´©¸£¸é vi È­¸é ÇÏ´Ü ÁÂÃø¿¡ vi Ư¼ö¸í·É¾î¸¦ ÀÔ·ÂÇÒ ¼ö ÀÖ½À´Ï´Ù.

½ÇÇà¸ðµåÀÇ ÀϹÝÀûÀ¸·Î ¾²À̴ Ư¼ö ¸í·É¾î
q : ¼öÁ¤ ÀÛ¾÷ÀÌ ÀÌ·ç¾îÁöÁö ¾ÊÀº »óÅ¿¡¼­ vi ÆíÁý±â¿¡¼­ ºüÁ®³ª¿É´Ï´Ù.
q! : ¼öÁ¤ ÀÛ¾÷ÀÌ ÀÌ·ç¾îÁø ºÎºÐÀ» Àû¿ë½ÃÅ°Áö ¾Ê°í vi ÆíÁý±â¸¦ °­Á¦·Î ºüÁ®³ª¿É´Ï´Ù.
w : ¼öÁ¤µÈ ÀÛ¾÷À» ÀúÀåÇÕ´Ï´Ù.
wq : ¼öÁ¤µÈ ÀÛ¾÷À» ÀúÀåÇÏ°í vi ÆíÁý±â¿¡¼­ ºüÁ®³ª¿É´Ï´Ù.

Ãʱ⠸í·É¾î¸ðµå -> ÀԷ¸ðµåÁøÀÔ -> ÆíÁý -> ¸í·É¾î¸ðµå -> ½ÇÇà¸ðµå -> Á¾·á

vi ¿¡µðÅ͸¦ ÀÌ¿ëÇÏ¿© ¾ÆÆÄÄ¡ ȯ°æ¼³Á¤ ÆÄÀÏ(httpd.conf)À» ¿±´Ï´Ù.
[root@nextline ~]# vi /usr/local/apache/conf/httpd.conf


¨è LogFormat Á¦°Å

±âº»À¸·Î ¼³Á¤µÇ¾î ÀÖ´Â LogFormat ºÎºÐÀ» Á¦°ÅÇÕ´Ï´Ù.

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




¨é Áö½ÃÀÚ ¹× ȯ°æº¯¼ö ¼³Á¤

¾Æ·¡¿Í °°ÀÌ LogFormat °ú ·ÎÅ×ÀÌÆ® ½ºÅ©¸³Æ® ºÎºÐÀ» Ãß°¡ÇÕ´Ï´Ù.

LogFormat "%v -> %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
CustomLog "|/usr/local/apache/bin/rotatelogs /usr/local/apache/logs/access_log.%m-%d 86400" combined env=!not_log
CustomLog "|/usr/local/apache/bin/rotatelogs /usr/local/apache/logs/error_log.%m-%d 86400" combined env=!not_log

SetEnvIfNoCase Request_URI "\.(bmp|gif|jpg|jpeg|png|css|swf)$" not_log
SetEnvIf Request_URI "/default.ida$" not_log
SetEnvIf Request_URI "(cmd.exe|root.exe)$" not_log

LogFormat Áö½ÃÀÚ
Áö½ÃÀÚ¿¡ ¼³Á¤µÈ ³»¿ë¿¡ µû¶ó ·Î±×ÆÄÀÏ(access_log)¿¡ ±â·ÏÀ» Çϸç |(pipe)¿¡ ¼³Á¤ÇÑ ¿Ü
ºÎ ÇÁ·Î±×·¥À» ÀÎÀÚ·Î »ç¿ëÇÏ¿© ´ÙÁß ·Î±×¸¦ ±â·ÏÇÕ´Ï´Ù.

%a : ¿ø°ÝÀÇ IP ÁÖ¼Ò
%b : Çì´õ¸¦ Æ÷ÇÔÇÑ Àü¼Û·®(bytes)
%{var}e : ȯ°æ º¯¼ö "var"
%f : ÆÄÀÏÀ̸§
%h : ¿ø°ÝÀÇ È£½ºÆ®
%{hdr}i : ¼­¹ö¿¡ µé¾î¿À´Â(¿äû) Çì´õ °ª "hdr"
%l : ¿ø°ÝÀÇ ·Î±×ÀÎ ID(Áö¿øÇÑ´Ù¸é)
%{label}n : ´Ù¸¥ ¸ðµâ¿¡¼­ "label" ±¸¼º
%{hdr}o : ÀÀ´ä Çì´õ °ª "hdr"
%p : ¼­¹öÀÇ Canonical Æ÷Æ® ¹øÈ£
%P : ÀÚ½Ä ÇÁ·Î¼¼½º ID(PID)
%r : ù¹ø° ¿äû ¶óÀÎ
%s : »óÅÂÄÚµå
%t : ½Ã°£ Æ÷¸Ë(CLF Æ÷¸Ë)
%{format}t : "format"À¸·Î ±¸¼ºµÈ ½Ã°£ Æ÷¸Ë
%T : ¼­¹ö¿¡ ¿äûÇÏ´Â ½Ã°£(ÃÊ)
%u : ¿ø°ÝÀÇ À¯ÀúÀ̸§(ÀÎÁõ½Ã)
%U : ¿äûÇÑ URL
%v : Ŭ¶óÀ̾ðÆ® ¿äû¿¡ µû¸¥ Canonical ¼­¹ö³×ÀÓ
%V : UseCanonicalName ¼³Á¤¿¡ µû¸¥ ¼­¹ö³×ÀÓ

CustomLog Áö½ÃÀÚ
LogFormat Áö½ÃÀÚ¿Í ºñ½ÁÇÑ ±â´ÉÀ» Çϸç LogFormat Áö½ÃÀÚ¿¡ ¼³Á¤ÇÑ nicknameÀ̳ª
LogformatÀ» ÀÎÀÚ·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. CustomLog Áö½ÃÀڴ ȯ°æº¯¼ö¸¦ ÀÎÀÚ·Î °¡
Áú¼ö ÀÖ½À´Ï´Ù.

ȯ°æº¯¼ö ¼³Á¤

SetEnvIfNoCase
Áö½ÃÀÚ´Â ´ë¼Ò¹®ÀÚ¸¦ ±¸ºÐÇÏÁö ¾Ê°Ú´Ù´Â ÀǹÌÀÔ´Ï´Ù.

SetEnvIfNoCase Request_URI "\.(bmp|gif|jpg|jpeg|png|css|swf)$" not_log
ƯÁ¤ ŸÀÔÀÇ ÆÄÀϸ¸ ȯ°æº¯¼ö·Î ¼³Á¤ÇÒ ¶§ »ç¿ëÇÏ¸ç ¿äû URL(Requset_URI) ÆÄÀÏÀÌ*.bmp, *.gif, *.jpg, *.jpeg, *.png, *.css, *.swf ·Î ³¡³­ ÆÄÀÏÀÎ °æ¿ì(´ë¼Ò¹®ÀÚ¸¦ ±¸º° ÇÏÁö ¾ÊÀ½) do_not_log ȯ°æº¯¼ö¿¡ ÁöÁ¤ÇÕ´Ï´Ù. not_log´Â do_not_logÀÇ ¹Ý´ëÀÔ´Ï´Ù.
CustomLog "|/usr/local/apache/bin/rotatelogs /usr/local/apache/logs/access_log.%m-%d 86400" combined env=!not_log
CustomLog "|/usr/local/apache/bin/rotatelogs /usr/local/apache/logs/error_log.%m-%d 86400" combined env=!not_log

À§ ¼³Á¤Àº /usr/local/apache/bin/rotatelogs¶ó´Â À¯Æ¿¸®Æ¼¸¦ ½ÇÇà½ÃÄѼ­ access_log ÆÄÀÏ
°ú error_log ÆÄÀÏÀ» 24½Ã°£(86400ÃÊ)¸¸¿¡ Çѹø¾¿ ·ÎÅ×ÀÌÆ®½ÃÅ°¶ó´Â ÀǹÌÀÔ´Ï´Ù.


¨ê apache Àç ½ÃÀÛ
¾ÆÆÄÄ¡¸¦ Àç ½ÃÀÛÇÏ¿© º¯°æµÈ ¼³Á¤À» Àû¿ë½ÃÄÑÁÝ´Ï´Ù.

[root@nextline ~]# /usr/local/apache/bin/apachectl restart

¨ë rotate_http ½ºÅ©¸³Æ® »ý¼º
cron¿¡ ÀÇÇØ ÁÖ±âÀûÀ¸·Î ½ÇÇà½ÃÄÑÁÖ±â À§ÇÑ ½ºÅ©¸³Æ®¸¦ »ý¼ºÇÕ´Ï´Ù.
[root@nextline ~]# vi /root/bin/rotate_http


¨ì ½ºÅ©¸³Æ® Ãß°¡
#!/bin/sh
DIR=/usr/local/apache/logs
COUNT=`ls -1 $DIR/access_log.*|wc -l|awk '{print $1}'`
[ $COUNT -ge 4 ] && ls -tr $DIR/access_log.*|head -1|xargs rm -f


¨í crontab µî·Ï
vi ¿¡µðÅ͸¦ ÀÌ¿ëÇÏ¿© /etc/crontabÀ» ¿±´Ï´Ù.
[root@nextline ~]# vi /etc/crontab


¾Æ·¡¿Í °°ÀÌ crontab¿¡ Ãß°¡ÇÕ´Ï´Ù.

# À¥·Î±× °ü¸® ½ºÅ©¸³Æ®
00 5 * * * root /root/bin/rotate_http


¨î logrotated ¼³Á¤È®ÀÎ
·Î±×ÆÄÀÏ(access_log, error_log) ·ÎÅ×ÀÌÆ®°¡ Á¤»óÀûÀ¸·Î ÀÌ·ç¾îÁö´ÂÁö È®ÀÎÇÕ´Ï´Ù.
[root@nextline ~]# ls -ll /usr/local/apache/logs/
  APM(apache + php + mysql) utf-8 ±¸Çö
  apache ¿¡·¯ÄÚµå





ȸ»ç¼Ò°³ °³ÀÎÁ¤º¸Ãë±Þ¹æħ ÀÌ¿ë¾à°ü À̸ÞÀÏÁÖ¼Ò ¹«´Ü¼öÁý°ÅºÎ CONTACT US IDC ¾àµµ
ȸ»ç¼Ò°³ °³ÀÎÁ¤º¸Ãë±Þ¹æħ ÀÌ¿ë¾à°ü À̸ÞÀÏÁÖ¼Ò ¹«´Ü¼öÁý°ÅºÎ CONTACT US IDC ¾àµµ ȸ»ç¼Ò°³ °³ÀÎÁ¤º¸Ãë±Þ¹æħ ÀÌ¿ë¾à°ü À̸ÞÀÏÁÖ¼Ò ¹«´Ü¼öÁý°ÅºÎ CONTACT US IDC ¾àµµ