Linux

[Linux/PHP/CI] 서버의 용량이 가득차서 접속이 안될 경우 로그파일을 확인하세요!

Tom Noh 2020. 6. 28. 01:27

오후 12시 갑자기 서버에 접속이 안되는 이슈가 발생했습니다.

아직 서버에 대한 지식이 부족한 탓에 원인조차 파악을 못하고 있었는데

 

의심스러운 부분이 한 곳 있었습니다.

현재 Azure VM을 사용해서 서버를 운영하고 있는데,

시스템 용량을 99.9% 사용 중인 것이 확인되었습니다.

 

따로 스토리지를 사용하고 있어, 서버의 용량이 크게 차지하지 않는 상황이라

어디에서 용량을 많이 차지하고 있는지 원인을 찾을 필요가 있었습니다.

 

$ df -h

디스크에서 사용 중인 용량을 보여주는 명령어를 입력하면

요런 상태를 볼 수 있는데, 지금은 /dev/sdal1이 57% 사용 중 이지만,

서버에 접속되지 않았을 때는 100% 사용 중으로 나왔습니다.

 

현재 PHP Codeigniter를 통해 개발을 하고 있었기 때문에,

해당 폴더의 용량을 확인 하는 명령어로 확인해보니 원인이 로그파일이었음을 확인했습니다.

$du -h

application/logs 폴더를 비운 후에, 로그 세팅을 변경했습니다.

 

$config['log_threshold'] = 1;

application/config/config.php 파일에서

log_threshold 값을 1로 변경하게 되면, PHP ERROR_LOG만 쌓이게 됩니다.

 

현재 개발서버 / 운영서버를 따로 운영 중이기 때문에,

운영서버에는 Error Message만 쌓이도록 하고,

개발서버에는 Error Message와 Debug Message 두가지만 쌓이도록 설정했습니다.

if (isset($_SERVER['CI_ENV']) && $_SERVER['CI_ENV'] == 'development') {
    $config['log_threshold'] = 2;
}
else {
    $config['log_threshold'] = 1;
}

0 = Disables logging, Error logging TURNED OFF
1 = Error Messages (including PHP errors)
2 = Debug Messages
3 = Informational Messages
4 = All Messages

 

본인이 필요한 값으로 세팅하시면 될 것 같습니다.

 

당장 급한 불은 껐지만, 앞으로 또 비슷한 이슈가 발생할 수 있으니 서버에 대해 더욱 깊게 공부할 필요를 느낍니다.