2019.01.29 20:01

갑작스런 서버 에러 Connect Error: Too many connections

운영하던 홈페이지에 갑자기 에러가 발생했다.

"Connect Error: Too many connections"
처음보는 에러라 당황했는데 검색해 보니 mysql의 max_conntions 설정을 수정하라는 것이다. 그래서 mysql 들어가려고 하니 속도가 너무 늦다. 직감적으로 mysql 설정 문제는 아닌 거 같았다.


#] service httpd restart

서버를 재실행 하려는데 에러가 생긴다.

Job for httpd.service failed because a configured resorce limit was exceeeded. see "systemctl status httpd.service" and "journalctl -xe" for details.


에러 메시지를 보니 내 직감이 거의 맞는 거 같았다. 어쨌든 시스템에 리소스 부족이다. 이럴 땐 마운트 된 저장장치(hdd, ssd)가 꽉 찬 경우 흔하게 발견된다. log 파일이 주로 이런 문제를 일으킨다. 가끔 악성코드에 의해 악의적으로 특정 파일을 감염시켜 파일을 무한대로 키워 서버를 다운 시키기도 한다.


]# du -sh /*

디렉토리별로 사용량을 검사해 보니 짐작 되는 곳에서 과도한 사용량을 보이고 있다.

df -h / 명령으로 해도 상관은 없는데 마운트 된 저장소의 디렉토리까지 보려면 du가 편하다.



/var에서 용량을 과도하게 사용하고 있는 걸 확인 했으니 cd /var로 문제를 위치나 파일을 찾아야 한다.


]# cd /var

]# du -sh *

]# du -sh *

VPS에서 할당받은 총 용량이 30GB인데 25GB면 log 디렉토리에서 거의 독차지하고 있다.


]# cd log

]# du -sh *

log/httpd 디렉토리 사용량이 늘어난 거 보니 아파치 로그 파일에서 뭔가 문제가 생겼던 거 같다.


]# cd httpd

]# du -sh *

크기가 과도한 log 파일을 들을 보니 며칠 전부터 조심이 있어왔다.


]# rm -rf 파일(혹은 디렉토리)


]# service httpd start

문제가 있는 log 파일을 삭제하고 아파치를 실행하니 다시 정상으로 돌아왔다.






[Sun Jan 06 00:59:48.558386 2019] [php7:error] [pid 9779] [client 66.249.65.217:59509] PHP Fatal error:  Uncaught Error: Call to undefined function mysql_real_escape_string() in /home/**ac/www/bbs/visit_insert.inc.php:12\nStack trace:\n#0 /home/**ac/www/common.php(562): include_once()\n#1 /home/**ac/www/bbs/_common.php(3): include_once('/home/**ac/www/...')\n#2 

Log 파일을 열어보니 이런 내용들이 계속 쌓여있었다. 접속한 아이피를 조회하니 검색 로봇 같다. 아마도 특정 페이지 오류에 접근했다 계속 log 기록이 쌓인 거 같다. 일단 오류난 페이지를 찾아 수정해 log가 발생하지 않도록 추가 조치를 하였다.

        

Trackback 0 Comment 0