Linux Process Service Log 관찰
3줄 요약
- Linux 운영 환경에서 Java 서버는 process, service, user, log, permission의 조합으로 실행된다.
ps, top, systemctl, journalctl은 장애 중 가장 먼저 재현 가능한 사실을 확보하는 기본 도구다.
- 안전한 명령 사용은 운영 장애 대응의 일부이며, 관찰 명령도 부하와 권한 영향을 고려해야 한다.
핵심 정리
ps와 top은 process와 thread의 CPU, memory, 상태, 실행 시간을 보여 준다.
- systemd는 service의 시작, 종료, restart policy, environment, user, working directory를 관리한다.
- journalctl과 로그 파일은 애플리케이션 증상과 OS/service 이벤트를 시간축으로 연결한다.
- Permission, user, group 문제는 파일 접근, port binding, log write, dump 생성 실패로 나타난다.
- 운영 중 명령은 읽기 전용, 범위 제한, 시간 제한을 우선하고 kill이나 설정 변경은 근거를 남긴다.
헷갈리는 지점
- 로그만 보면 원인을 알 수 있다고 생각하기 쉽다.
- 로그는 애플리케이션이 기록한 일부 사실일 뿐 OS 자원 상태를 대신하지 않는다.
- Process 상태와 service 이벤트를 함께 봐야 한다.
- root 권한으로 실행하면 문제가 해결된다고 보기 쉽다.
- 권한 문제를 숨길 수 있지만 보안과 운영 리스크가 커진다.
- 필요 권한을 최소화하고 user/group을 명확히 해야 한다.
- systemctl restart가 장애 대응의 기본이라고 오해하기 쉽다.
- 재시작은 증거를 날릴 수 있고 재발 원인을 숨길 수 있다.
- dump와 지표를 먼저 확보한 뒤 완화 여부를 판단한다.
확인 질문
- ps와 top을 함께 보는 이유는 무엇인가?
- ps는 특정 시점의 process 정보를 정리해 보고 top은 실시간 CPU/thread 변화를 보기 좋기 때문이다.
- systemd service 파일에서 확인할 것은 무엇인가?
- 실행 user, environment, restart policy, working directory, limit, exec command다.
- 운영 중 안전한 명령 사용의 원칙은 무엇인가?
- 읽기 전용과 범위 제한을 우선하고, 부하가 큰 dump나 변경 명령은 근거와 시간을 남기는 것이다.