본문 바로가기
서버인프라/리눅스

📘 systemctl과 journalctl로 서비스 로그 완벽 추적하기

by techwold ted 2025. 5. 19.

리눅스 시스템에서는 데몬(서비스)의 실행과 로그 관리를 효율적으로 하기 위해 systemd 기반의 systemctl과 journalctl을 사용합니다. 오늘은 시스템 서비스를 실행한 뒤, 해당 서비스의 로그를 실시간 또는 기간별로 추적하고 파일로 저장하는 방법까지 전체 과정을 정리해보겠습니다.

 

✅ 1. 서비스 실행

서비스를 수동으로 실행하려면 다음 명령어를 사용합니다.

sudo systemctl start myapp.service

 

서비스가 정상적으로 실행되는지 확인하려면 아래와 같이 상태를 조회합니다.

sudo systemctl status myapp.service

 

Active: active (running)이 보인다면 서비스가 정상적으로 구동 중이라는 의미입니다.

 

✅ 2. 실시간 로그 확인 (tail처럼 보기)

서비스가 실행되고 있는 동안 실시간 로그를 보고 싶을 때는 다음 명령어를 사용합니다.

journalctl -u myapp.service -f

옵션 설명:

  • -u: 서비스 유닛 단위로 로그 필터링
  • -f: tail -f처럼 실시간 로그 스트리밍

✅ 3. 특정 시간 이후의 로그만 보기

예를 들어 15분 전부터 현재까지 로그를 보고 싶다면 다음과 같이 명령어를 입력합니다.

journalctl -u myapp.service --since "15 minutes ago"

또는 정확한 시간대별로 로그를 조회할 수도 있습니다:

journalctl -u myapp.service --since "2025-05-18 14:00" --until "2025-05-18 15:00"

이런 방식은 장애 발생 시간대를 기준으로 로그를 추적할 때 매우 유용합니다.

 

✅ 4. 로그를 파일로 저장

로그를 분석하거나 보관을 위해 파일로 저장하고 싶다면 > 리디렉션을 사용하면 됩니다.

journalctl -u myapp.service --since "15 minutes ago" > myapp.log

 

생성된 myapp.log 파일은 일반 텍스트이므로 grep, less, vim 등으로 자유롭게 분석이 가능합니다.

 

📝 정리

목적명령어
서비스 실행 sudo systemctl start myapp.service
서비스 상태 확인 sudo systemctl status myapp.service
실시간 로그 확인 journalctl -u myapp.service -f
15분 전부터 로그 확인 journalctl -u myapp.service --since "15 minutes ago"
로그를 파일로 저장 journalctl -u myapp.service > output.log

댓글