서버 운영
새 서버에 처음 SSH 접속하면 제일 먼저 확인하는 것들
새 서버를 받거나 오래 손 안 댔던 서버에 들어갈 때 내가 습관적으로 돌리는 명령어 순서를 정리했다.
새 서버를 받거나 오래 손 안 댔던 서버에 다시 들어갈 때, 뭐부터 봐야 할지 순서가 없으면 시간을 낭비한다. 내가 습관적으로 확인하는 순서를 정리해둔다.
시스템 기본 상태
uname -r # 커널 버전
lsb_release -a # OS 버전
uptime # 가동 시간과 로드 평균
who # 현재 접속 중인 사용자
uptime의 로드 평균이 CPU 코어 수를 넘고 있다면 뭔가 비정상으로 돌고 있다는 신호다. 바로 프로세스 확인으로 넘어간다.
디스크와 메모리
df -h # 파티션별 사용량
free -h # 메모리 / 스왑 상태
루트 파티션이 90% 이상이면 다른 작업보다 정리를 먼저 해야 한다. 꽉 차 있으면 로그도 안 쌓이고, 서비스가 예고 없이 죽는다.
실행 중인 프로세스와 열린 포트
ps aux --sort=-%cpu | head -20 # CPU 점유 상위 프로세스
sudo ss -lntp # 열린 포트와 담당 프로세스
포트 목록을 보면 어떤 서비스가 떠 있는지 한눈에 파악할 수 있다. 예상치 못한 포트가 열려 있으면 추가 확인이 필요하다.
최근 시스템 로그
sudo journalctl -n 100 --no-pager
sudo journalctl -p err -n 50 # 에러 레벨만 필터
접속 직후 로그를 보는 이유는 최근에 뭔가 문제가 있었는지 흔적을 먼저 파악하기 위해서다. 에러 레벨 필터를 쓰면 노이즈를 줄일 수 있다.
보안 관련 빠른 확인
sudo lastlog | grep -v 'Never logged' # 계정별 마지막 로그인
sudo journalctl _COMM=sshd | grep 'Failed' | tail -20 # SSH 실패 시도
sudo ufw status # 방화벽 상태
낯선 IP에서 로그인 성공 기록이 있거나, 실패 시도가 비정상적으로 많으면 즉시 조치가 필요하다.
이 명령어들을 순서대로 돌리면 서버 상태를 파악하는 데 5분이면 충분하다. 대부분의 이상 징후는 여기서 이미 단서가 보인다.