Skip to content
TUWLAB.com
모든 게시물에 대하여 '링크'
방식의 퍼가기만 허용합니다.
한양대학교 전자통신컴퓨터공학부
바라미
  • 128
  • 2590066
DNS Powered by DNSEver.com
Apache

Apache 일별 로그파일 생성하기, 필터링 로깅하기

Posted 2012. 12. 28 Updated 2014. 04. 23 Views 19978 Replies 0

서버를 설치하고 오늘 처음으로 로그파일을 열어보았습니다.
(른..것도 만, .. 가..)

서버를 재설치한게 지난 7월이니, 약 6달 동안 로그는 차곡차곡 쌓여 16MB를 향해 가고 있었습니다.
(면, 이 16MB 알 수 입니다.)

로그를 뒤져보니 그동안 켜져 있던 서버에 들어온 요청들을 볼 수 있었습니다. 대부분 구글 로봇이나 여타 검색엔진에서 크롤링하러 들어왔다는 사실을 알고 살짝 실망하기도 했습니다.

처음으로 로그파일을 뒤져 본 기념(?)으로 몇 개의 스팸봇 IP를 찾아내서 차단 목록에 등록할 수 있었습니다.
(나, 는 IP면 99.99% 봇입니다.)

또 서론이 이렇게 길어지려고 하는데, 이제부터 심심할 때마다 로그파일도 뒤져볼 계획이니, 우선 이걸 날짜별로 쪼개서 저장하는 방법을 찾아보았습니다.


일자별로 로그파일 생성하기

로그 파일에 관한 설정도 httpd.conf에서 <VitrualHost> 구문을 이용해서 할 수 있습니다.

httpd.conf(혹은 가상 호스트 설정 파일)에서 다음 구문을 찾습니다.

CustomLog "${APACHE_LOG_DIR}/access.log" combined

이것은 Apache에서 제공하는 기본 로거를 이용해서 로그 기록을 할 때 사용하는 옵션입니다. 이를 다음과 같이 바꿔 줍니다.

CustomLog "|(rotatelogs의 경로) ${APACHE_LOG_DIR}/access.log.%Y_%m_%d 86400" combined

가운데 옵션의 맨 앞에 써져 있는 Pipe(|)는 해당 경로에 있는 프로그램으로 로그 정보를 넘기겠다는 의미입니다. 즉, 기본 로거를 사용하지 않고 다른 로깅 프로그램을 써서 로그 기록을 하겠다는 뜻입니다.

' ${APACHE_LOG_DIR}/access.log.%Y_%m_%d'로 시작하는 구문은 로그 파일 이름을 지정하는 곳입니다. %Y,%m 등의 치환자를 사용할 수 있습니다.

rotatelogs의 경로는 서버 및 Apache 버전에 따라 다르니, which 명령을 이용하여 경로를 찾으면 됩니다.

which rotatelogs

뒤에 붙어 있는 'combined'는 기록할 로그 형식으로, combined라는 이름으로 형식이 미리 정의되어 있는 것입니다. 이를 수정하면 로그에 기록 형식을 지정할 수 있습니다. 자세한 내용은 구글신이나 Apache 기술문서에 자세히 설명되어 있습니다.

[Apache 기술문서] http://httpd.apache.org/docs/2.2/ko/mod/mod_log_config.html


필요없는 요청 기록하지 않기

로깅을 할 때, 예를들어 jpg나 png 등 그림파일을 요청하는 내용은 구지 기록을 하지 않아도 됩니다. 이런것들까지 기록을 하면 한 사람이 홈페이지에 와서 클릭 몇번으로 수백줄의 로그를 단번에 생성시키게 될 것입니다.

SetEnvIfNoCase Request_URI "\.(jpg|png|gif|css|ico|js|swf)$" exceptlist
CustomLog "|(rotatelogs 경로) ${APACHE_LOG_DIR}/access.log.%Y-%m-%d 86400" combined env=!exceptlist

이렇게 하고 Apache를 재시작 해주면 앞으로 기록되는 로그 파일은 홀~죽해질 것입니다.^^


서비스 선택
이용중인 SNS 버튼을 클릭하여 로그인 해주세요.
SNS 계정을 통해 로그인하면 회원가입 없이 댓글을 남길 수 있습니다.
댓글
?
Powered by SocialXE

List of Articles
번호 분류 제목 글쓴이 최근 수정일 조회 수
97 AVR [온도조절 인두기] 1. 모든 사건(?)의 발단 file TUW 2017.06.02 14332
96 AVR ATmega의 ADC에서 결과를 읽을 때 주의할 점 TUW 2015.05.31 14400
95 Apache Apache에서 디렉토리별 php.ini 다르게 적용하기 (php_value, php_flag) TUW 2014.04.23 14487
94 AVR [온도조절 인두기] 6. 마지막 디버깅 - LM2575 오버슈트(Overshoot) 현상 file TUW 2021.12.28 14809
93 XE [XE] XE 1.7.4.x 적용 후 SocialXE에서 '잘못된 요청입니다.' 오류 해결하기 21 file TUW 2017.06.02 14931
92 Linux [Ubuntu] 서버 복구 : 설치부터 세팅까지 Quick Guide TUW 2013.07.08 15083
91 Linux [Ubuntu] 데이터 및 DB(MySQL)를 백업 및 복원하는 명령어 TUW 2014.04.20 15549
90 일반 MediaWiki 기본 문법 TUW 2014.04.23 15630
89 Nginx Nginx에서 자동 Redirection(301 Permanently moved) 설정하기 TUW 2016.06.25 15635
88 AVR [온도조절 인두기] 4. 문제점 발견 - ADC 입력에 저항분압 회로를 사용할 경우 문제점 file TUW 2017.06.02 15645
87 AVR [AVR 강의] 실습보드 회로도 file TUW 2017.06.02 15966
86 일반 Power Hold 회로 구현하기 4 file TUW 2021.12.28 16044
85 Linux [사설 클라우드 구축] 네트워크 드라이브 연결 (NetDrive) file TUW 2017.06.02 16471
84 일반 [WSL] Windows Subsystem for Linux - 초기 설치와 Ubuntu 배포판 설치 file TUW 2021.12.28 16513
83 Linux Ubuntu에서 분산 컴파일러 (ICECC) 설치 및 사용하기 file TUW 2017.06.02 17327
82 PSpice PSpice Model Editor Parameters TUW 2014.04.21 17344
목록
Board Pagination Prev 1 ... 4 5 6 7 8 9 10 ... 13 Next
/ 13

Powered by Xpress Engine / Designed by Sketchbook

sketchbook5, 스케치북5

sketchbook5, 스케치북5