← 전체 글로 돌아가기

서버 운영

서버 재부팅 후 접속이 안 될 때 점검 순서

서버가 재부팅되거나 서비스가 멈춘 후 접속이 안 되면, 네트워크 포트부터 확인해야 한다.

운영 서버가 재부팅되거나 문제가 있어서 재시작한 후 접속이 안 되는 경험을 할 수 있다. 이 경우 단순히 "서비스가 안 올라왔다"로 판단하기 쉽지만, 실제로는 여러 원인이 있을 수 있다. 체계적으로 확인해야 한다.

네트워크 포트와 서비스 상태 확인

가장 먼저 확인할 것은, 서비스가 올라와 있는지와 포트를 열어두었는지다.

sudo ss -lntp

이 명령어로 현재 서버에서 열려 있는 포트들과 그 포트를 사용하는 프로세스를 볼 수 있다. 예를 들어 80번(HTTP) 또는 443번(HTTPS) 포트가 열려 있는가? 예상한 서비스 프로세스가 그 포트를 사용하고 있는가?

포트가 열려 있지 않다면, 서비스 자체가 시작되지 않았거나 다른 포트로 바뀌었을 것이다.

디스크 용량 확인

서비스가 시작하지 못하는 경우가 많다. 그 이유 중 하나는 디스크가 가득 찼기 때문이다.

df -h

결과에서 루트 파티션(/)의 사용률을 보자. 100%에 가깝다면, 로그 파일이나 임시 파일들을 정리해야 한다. 보통 /var/log 디렉토리에 있는 오래된 로그 파일들을 압축하거나 삭제하면 공간을 확보할 수 있다.

서비스 로그 확인

서비스가 시작하지 못한 이유를 찾기 위해 시스템 로그와 서비스 로그를 확인해야 한다.

sudo journalctl -n 80

이 명령어로 시스템 저널의 최근 80줄을 볼 수 있다. 재부팅 후 어떤 에러가 기록되었는가?

특정 서비스의 로그를 보려면:

sudo journalctl -u service-name -n 50

이렇게 하면 그 서비스만의 로그를 볼 수 있다.

권한 확인

재부팅되면 파일 권한이 이상하게 되는 경우도 있다. 서비스가 실행될 디렉토리의 권한이 제대로 설정되었는가?

ls -la /path/to/service/

서비스를 실행하는 사용자가 그 디렉토리에 읽기 및 실행 권한을 가지고 있어야 한다.

검증: 단계별 확인

  1. sudo ss -lntp로 포트가 열려 있는지 확인
  2. 포트가 닫혀 있다면, sudo journalctl -n 80로 에러 메시지 확인
  3. 디스크가 가득 찼는지 df -h로 확인
  4. 권한이 제대로 설정되었는지 ls -la로 확인
  5. 서비스를 수동으로 시작해보고, 로그에 에러가 나오는지 확인

이 순서대로 확인하면, 대부분의 경우 문제를 찾을 수 있다.