journalctl은 systemd 시스템에서 로그를 조회하고 관리하기 위한 도구입니다. 리눅스에서 발생하는 다양한 로그 메시지(시스템 메시지, 커널 메시지, 애플리케이션 로그 등)를 통합하여 시스템 로그를 관리할 수 있습니다. 이 명령어를 통해 로그 기록을 효율적으로 필터링, 검색, 모니터링할 수 있으며, 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 파일로 저장합니다.
참고사이트
'Linux' 카테고리의 다른 글
[리눅스] ip rule 명령어 완벽 가이드 사용법(고급 라우팅 규칙 설정) (0) | 2024.10.23 |
---|---|
[리눅스] fail2ban 명령어 완벽 가이드 사용법(보안 침해 방지 도구) (1) | 2024.10.23 |
[리눅스] ufw 명령어 완벽 가이드 사용법(간단한 방화벽 설정) (0) | 2024.10.23 |
[리눅스] ss 명령어 완벽 가이드 사용법(네트워크 연결 및 소켓 상태 확인) (0) | 2024.10.23 |
[리눅스] rsyslog 명령어 완벽 가이드 사용법(시스템 로그 관리) (0) | 2024.10.23 |
[리눅스] tee 명령어 완벽 가이드 사용법(파일저장 & 화면출력) (0) | 2024.10.22 |
[리눅스] xargs 명령어 완벽 가이드 사용법(명령어 인수 전달) (0) | 2024.10.22 |
[리눅스] systemd timers 명령어 완벽 가이드 사용법(systemd 스케줄링) (0) | 2024.10.22 |