반응형
리눅스용 시스템 서비스 매니저인 systemd 는 로그 데이타를 journal 이라는 바이너리 형식으로 저장한다.
시스템이 부팅했을 때부터의 시스템 로그를 저장한다.
아래 내용은 journalctl 사용방법과 journald 관련 설정에 대한 내용이다.
1. systemd-journald 서비스 상태 확인
[root@16-1-repo ~]# systemctl status systemd-journald
● systemd-journald.service - Journal Service
Loaded: loaded (/usr/lib/systemd/system/systemd-journald.service; static; vendor preset: disabled)
Active: active (running) since Thu 2021-07-15 18:08:43 KST; 45s ago
Docs: man:systemd-journald.service(8)
man:journald.conf(5)
Main PID: 791 (systemd-journal)
Status: "Processing requests..."
Tasks: 1 (limit: 101359)
Memory: 2.5M
CGroup: /system.slice/systemd-journald.service
└─791 /usr/lib/systemd/systemd-journald
Jul 15 18:08:43 16-1-repo systemd-journald[791]: Journal started
Jul 15 18:08:43 16-1-repo systemd-journald[791]: Runtime journal (/run/log/journal/9fbdfba95f08495da0fb579afce8f359) is 8.0M, max 793.6M>
Jul 15 18:08:43 16-1-repo systemd-journald[791]: Runtime journal (/run/log/journal/9fbdfba95f08495da0fb579afce8f359) is 8.0M, max 793.6M>
2. 주로 사용하는 journalctl 예제
# 최근 메시지만 보기 (최근 7개만 보기)
[root@16-1-repo ~]# journalctl -n 7
-- Logs begin at Thu 2021-07-15 18:08:41 KST, end at Thu 2021-07-15 18:09:26 KST. --
Jul 15 18:09:26 16-1-repo systemd[1773]: Listening on D-Bus User Message Bus Socket.
Jul 15 18:09:26 16-1-repo systemd[1773]: Reached target Sockets.
Jul 15 18:09:26 16-1-repo systemd[1773]: Reached target Basic System.
Jul 15 18:09:26 16-1-repo systemd[1773]: Reached target Default.
Jul 15 18:09:26 16-1-repo systemd[1773]: Startup finished in 30ms.
Jul 15 18:09:26 16-1-repo systemd[1]: Started User Manager for UID 0.
Jul 15 18:09:26 16-1-repo sshd[1770]: pam_unix(sshd:session): session opened for user root by (uid=0)
# 실시간 로그 보는 방법
[root@16-1-repo ~]# journalctl -f
-- Logs begin at Thu 2021-07-15 18:08:41 KST. --
... < 중략 >
Jul 15 18:12:22 16-1-repo systemd[1]: Started Session 3 of user root.
Jul 15 18:12:22 16-1-repo sshd[1831]: pam_unix(sshd:session): session opened for user root by (uid=0)
# 날짜 및 시간으로 필터해서 보는 방법
예1) 특정 날짜 이후에 생성된 journal 로그 보는 방법
[root@16-1-repo ~]# journalctl --since 2021-07-14
예2) 특정 기간의 journal 로그 보는 방법 (아래처럼 지정시 14일까지 로그가 아니라 07-13일까지의 로그만 보여줌)
[root@16-1-repo ~]# journalctl --since 2021-07-12 --until 2021-07-14
3. journal log 보는 방법
journal 파일은 바이너리로 vi 로 볼 수 없다. 따라서 journalctl 명령어를 사용해서 봐야한다.
기본적으로 journal log는 /run/log/journal/xxxxx/에 존재한다. (xxxxx : 무슨 ID일 것 같은데 못 찾았다...)
# journal 로그 보는 방법
journalctl --file=<파일명>
[root@16-1-repo ~]# cd /run/log/journal/9fbdfba95f08495da0fb579afce8f359
[root@16-1-repo ~]# journalctl --file=system@1c28df56cb58476eb510aa8b91253844-000000000020a97e-0005c1f0ecbc1d0f.journal
4. /var/log/journal에 저장하는 방법 (옵션)
/run/log가 아닌 /var/log/에 journal을 저장하고 싶다면 아래와 같이 하면 /var/log 경로에서 journal 로그가 저장된다.
# 기본 journal log 저장 디렉토리 확인
[root@16-1-repo ~]# ls /run/log/journal/9fbdfba95f08495da0fb579afce8f359/
system.journal
# 디렉토리 생성 및 journal log 조회
[root@16-1-repo ~]# mkdir -p /var/log/journal
[root@16-1-repo ~]# ls /var/log/journal/
# systemd-journald 서비스 재기동
[root@16-1-repo ~]# systemctl restart systemd-journald
# journal log 확인
[root@16-1-repo ~]# ls /var/log/journal/
9fbdfba95f08495da0fb579afce8f359
[root@16-1-repo ~]# ls /var/log/journal/9fbdfba95f08495da0fb579afce8f359/
system.journal
# 기본 journal log 저장 디렉토리 확인 (/run/log/ 에 저장되었던 journal 로그가 사라짐을 확인)
[root@16-1-repo ~]# cd /run/log/
[root@16-1-repo log]# ls
[root@16-1-repo log]#
5. /var/log/journal에 저장 크기 및 보관주기 설정방법
journal log 파일의 최대 Size를 지정하여 사용자가 원하는 만큼의 크기만 저장되도록 할 수 있다.
journal log 파일의 최대 보관일수 역시 설정할 수 있다.
1. journal 디렉토리 사용량 확인
[root@16-1-repo ~]# cd /var/log
[root@16-1-repo log]# du -d 1 -h
...
< 중략 >
321M ./journal
[root@16-1-repo log]# systemctl status systemd-journald
...
< 중략 >
7월 15 17:52:42 16-1-repo systemd-journal[464835]: Permanent journal is using 408.0M (max allowed 350.0M, trying to lea…08.0M)
(MAX로 350M까지만 허용된다는 것을 확인 할 수 있음)
2. 250M까지만 허용하도록 config를 변경한다
[root@16-1-repo log]# vi /etc/systemd/journald.conf
# 변경 전 (주석처리 되어있으면 주석을 해제하고 설정한다.)
[Journal]
...
< 중략 >
SystemMaxUse=350M
...
# 변경 후
[Journal]
...
< 중략 >
SystemMaxUse=250M
...
#MaxFileSec=1month <- 보관주기 설정시 이 부분의 주석을 제거하면 된다
...
3. systemd-journal 재기동
[root@16-1-repo log]# systemctl restart systemd-journald
[root@16-1-repo log]# systemctl status systemd-journald
...
< 중략 >
systemd-journal[502894]: Permanent journal is using 320.0M (max allowed 250.0M, trying to lea…20.0M)
(MAX로 250M까지만 허용된다는 것으로 변경됨)
4. journal 디렉토리 사용량 확인
[root@16-1-repo log]# du -d 1 -h
...
241M ./journal
728x90
'Linux > RHEL7 & 8' 카테고리의 다른 글
[RHEL7] Rear를 통한 backup 및 restore (0) | 2021.07.20 |
---|---|
RHEL7에서 RHEL8로 업그레이드 방법 (leapp) (0) | 2021.07.16 |
[Linux] net-tools vs iproute CLI (0) | 2021.07.08 |
[Linux] Password 복잡성 무시하고 강제로 비번 설정방법 (0) | 2021.07.08 |
[RHEL7] XFS LVM 디스크 증설 (용량 늘리기) (0) | 2021.07.05 |