웹마스터 팁

안녕하세요^^


저는 CMS를 가지고 프로젝트를 종종 합니다.


특히 XE를 오래전부터 다루어오다보니 XE가 어렵지만... 어느정도 다룰줄 알게 되었고 무엇보다 친근감이 생겨 더욱 애착이 갑니다.


여러분께서 알아두시면 좋을듯하여 얼마전에 제가 처리한 문제에 대하여 말씀드리고자 합니다.


문제의 요지는 DB LOCK으로 인해 CPU사용률이 증가하고 서버내의 같은 DBMS를 사용하는 사이트들이 모두 마비가 되는 증상이었습니다.


실제로 CPU 사용량이 97%이하로 떨어지지가 않더군요


서버에는 국내의 유명한 CMS들이 골고루 들어가있었구요...


CMS들을 여러개 다루다 보면 DB의 테이블명이라던지, 컬럼명에 대해서는 어느정도 눈에 익어있습니다.


DB의 I/O를 체크했더니 prefix가 xe_로 붙은 테이블에서 엄청난 요청이 들어오더군요...


둘중 하나였습니다.


1. 엄청나게 user수가 많아 동접자수의 증가로인해 서버에서 감당하지못할만큼의 요청이 오는 것


2. 봇/스팸에 엄청난 요청


우선은 DB로 요청되는 query들을 보았습니다.


몇가지가 섞여있긴 했지만 역시나 xe_member테이블과 xe_documets테이블로 요청이 들어오고 그다음부터는 Lock Lock Lock Lock .....


2번을 의심할수밖에 없는 상황이었던것이.. documents 테이블로 들어오는 부분이 모두 영어로 되어있더군요...


우선 xe_documents 테이블로 가서 쌓여있는 row들을 보았더니... 아니나 다를까더군요.


수십만개의 row들이 거의 영어로 쌓여있더군요.


우선은 판명된 원인에 대한 설명과 시행항 조치에 대해 말씀을 드리고


초치를 시작했습니다.


조치란 별것이 아니었습니다.


XE는 캡챠가 있으므로 캡챠에 대한 설치를 진행하십사 말씀드리고


우선 지금 들어오는 요청에 대한 부분을 막아야 하므로


1. 회원가입조건에 관리자의 승인이 있어야 가입할 수 있도록 조치하였고


2. 해당 사이트의 모든 게시판에 대해 접근권한을 로그인사용자 이상으로 처리해버렸습니다.


요청이 너무 많은 상태라 관리자페이지를 한페이지한페이지 띄우는데도 수분이 걸리더군요...


이 후 CPU 사용량이 50%이하까지 쭉쭉 떨어지더군요....


위와 같은 조치는 임시적인 조치 입니다.


서버의 OS단에서 특정IP에 대한 접속시도를 막는다던지, 캡챠(애드온? 모듈?)을 사용하셔서 무분별한 봇의 공격(?)에 꼭 대비하시기 바랍니다.


자체서버를 사용하시는 분들중에는 서버전문가가 아닌 분들도 계시므로 이러한 부분들에 대한 문제가 빈번히 일어날수 밖에 없다고 봅니다.


저런 상황에 마주치면 더욱더 당황스러워져서 놓치기 쉬워질수도 있지요.


여러분들께서 모두 알고계신 내용일 수도 있습니다만, 공유할만한 사례 및 조치방법이란 생각에 몇자 적어보았습니다.


긴글 읽어주셔서 감사합니다.

제목 글쓴이 날짜
Ubuntu 웹서버 구축 2. APM 환경 구축 [4] [1] earthian 2008.05.23
Ubuntu 웹서버 구축 1. 우분투 설치 하기 [4] file earthian 2008.05.23
한방에 제로보드 설치를 위한 서버 환경 준비하기-RWAPC Server 1.0 [6] 야라바 2007.11.28
SVN Commit 정보 출력 설정 (CIA Script) DroArc 2007.11.25
phpCubAdmin으로 큐브리드 DBMS관리하기 [2] 야라바 2007.10.22
MySQL 5.0 이상 버전에서 Myadmin 접근시 문제 해결 [6] 니케 2007.03.16
Message 탭 (servu4.0) 이성헌 2005.12.15
Activity -> user - 접속차단 위주로 설명 (servu4.0) 이성헌 2005.12.15
FTP 서버셋팅 (servu4.0) 이성헌 2005.12.15
Setup Wizard 를 이용한 FTP 서버 설정 (servu4.0) [1] 이성헌 2005.12.15
mysql 사용법 요약 정리 이성헌 2005.12.15
iis+php+mysql+zeroboard 설치 [3] 이성헌 2005.12.15
원격접속데스크톱 XP이전버젼에서도 된다~! [5] 류진곤 2005.01.23
IIS에서 아웃로그인,최근게시물이 htm,html 에선 안돼고 php에서만 될때 해결방법 [4] kyjzz 2004.07.01
왕초보를 위한 APM설치기...^^; [2] 웰치스 2004.06.29
IIS6.0+PHP4.3.3+MySql4.0.18+제로보드4.1 pl4 [10] 류진곤 2004.06.08
iis에서 로그인창 뜨는 문제 해결방법 제시 [3] 함재식 2003.12.12
리눅스 커널(kernel)에 심각한 보안 결함 발견 [1] 아치 2003.12.04
apache_2.0.47 + php-4.3.3 + mysql-4.0.16 + zb41pl4 의 windows xp 설치 [3] 기산 2003.10.28
NOP_0x90 Document No.2(APM연동 Mysql-DB설정편) NOP_0x90 2003.07.06