Linux

[리눅스] journalctl 명령어 완벽 가이드 사용법(systemd 로그 확인)

인생아 2024. 10. 23. 11:44
반응형

journalctlsystemd 시스템에서 로그를 조회하고 관리하기 위한 도구입니다. 리눅스에서 발생하는 다양한 로그 메시지(시스템 메시지, 커널 메시지, 애플리케이션 로그 등)를 통합하여 시스템 로그를 관리할 수 있습니다. 이 명령어를 통해 로그 기록을 효율적으로 필터링, 검색, 모니터링할 수 있으며, rsyslog와 함께 사용되기도 합니다. systemd 기반 시스템에서는 journalctl이 기본적으로 로그 관리를 담당합니다.

journalctl의 기본 사용법

journalctl 명령어를 통해 시스템에서 발생한 로그를 조회할 수 있습니다. 기본적으로 journalctl을 실행하면 모든 로그가 출력됩니다.

sudo journalctl

이 명령어는 루트 권한이 필요하며, 전체 로그를 시간순으로 보여줍니다. 하지만 전체 로그를 확인하기보다 특정 기준으로 필터링하여 조회하는 경우가 많습니다.

특정 시간 범위의 로그 확인

특정 시간 범위로 로그를 확인하고 싶다면 --since와 --until 옵션을 사용할 수 있습니다.

sudo journalctl --since "2024-10-18 00:00:00" --until "2024-10-18 12:00:00"

위 명령어는 2024년 10월 18일 자정부터 12시까지의 로그만 출력합니다.

부팅 시점별 로그 확인

부팅 시점별 로그를 확인하려면 -b 옵션을 사용할 수 있습니다. 이는 시스템이 재부팅된 후 발생한 로그를 구분하여 보여줍니다.

sudo journalctl -b

이 명령어는 현재 부팅에서 발생한 모든 로그를 보여줍니다. 이전 부팅 로그를 확인하려면 -b -1처럼 부팅 인덱스를 지정할 수 있습니다.

sudo journalctl -b -1

위 명령어는 이전 부팅에서 발생한 로그를 출력합니다.

특정 서비스의 로그 확인

특정 서비스의 로그만 필터링해서 보고 싶다면 -u 옵션을 사용할 수 있습니다. 예를 들어, sshd 서비스의 로그를 확인하려면 다음과 같이 입력합니다:

sudo journalctl -u sshd

이 명령어는 sshd 서비스에 관련된 모든 로그 메시지를 출력합니다.

로그를 실시간으로 모니터링

실시간으로 로그를 확인하려면 -f 옵션을 사용할 수 있습니다. 이는 tail -f와 유사하게 로그가 실시간으로 출력됩니다.

sudo journalctl -f

로그를 특정 수준으로 필터링

journalctl로그 수준에 따라 로그를 필터링할 수 있습니다. 예를 들어, 오류 로그만 확인하려면 -p 옵션을 사용합니다.

sudo journalctl -p err

이 명령어는 오류(error) 수준 이상의 로그만 출력합니다. 로그 수준에는 emerg, alert, crit, err, warning, notice, info, debug 등이 있습니다.

리눅스 터미널에서의 journalctl 사용 예시

user@linux:~$ sudo journalctl -u sshd
-- Logs begin at Wed 2024-10-18 00:00:00 UTC, end at Wed 2024-10-18 12:30:00 UTC. --
Oct 18 09:15:00 linux sshd[1023]: Server listening on 0.0.0.0 port 22.
Oct 18 09:15:00 linux sshd[1023]: Server listening on :: port 22.
Oct 18 10:05:22 linux sshd[1045]: Accepted password for user from 192.168.1.100 port 52555 ssh2
Oct 18 10:05:22 linux sshd[1045]: pam_unix(sshd:session): session opened for user user by (uid=0)
Oct 18 10:25:41 linux sshd[1100]: Received disconnect from 192.168.1.100 port 52555:11: disconnected by user
Oct 18 10:25:41 linux sshd[1100]: pam_unix(sshd:session): session closed for user user

위 예시는 sshd 서비스와 관련된 로그를 출력한 결과입니다. 해당 로그는 sshd 서비스가 실행되고 클라이언트가 연결된 상황을 보여줍니다.

journalctl 로그 저장

만약 로그를 파일로 저장하고 싶다면 > 연산자를 사용하여 로그 출력을 파일로 리다이렉션할 수 있습니다.

sudo journalctl > /home/user/system_logs.txt

위 명령어는 전체 로그system_logs.txt 파일로 저장합니다.

참고사이트

반응형