-
Rocky9: System Journal공부합시다!/LInux 2023. 1. 13. 00:15728x90
LInux system에서 문제를 해결하거나 System의 상태를 검토하기 위해서 System Journal의 Log 항목을 찾아서 검토합니다. System Journal Service는 Journal이라는 Indexing된 구조적 Binary파일에 Loggin Data를 저장합니다. Log Event에 대한 추가 정보 또한 포함됩니다.
/run/log 디렉토리는 메모리 기반으로 동작하며 System Journal이 저장됩니다. 따라서 System을 종료하면 /run/log 디렉토리의 내용은 손실됩니다. 설정을 변경하면 영구적으로 저장이 가능한 디렉토리에 저장이 됩니다. /etc/system/journal.conf
1. Journalctl
1.1. journalctl은 중요한 Log Message를 강조해서 출력
1.2. 우선순위가 notice or Warining Message는 굵게, error 이상인 경우 붉은색 Text로 출력
1.2.1. # journalctl -n 5: 5줄 출력
1.2.2. # journalctl -f: 마지막 10줄을 출력하면서 추가되는 새로운 Log를 계속해서 출력
다른 쉘에서 systemctl restart sshd
추가된 Message 확인
1.2.3. # journalctl -p err: 우선 순위가 err 이상인 항목만 출력
1.2.4. # journalctl -u sshd.service: 지정된 시스템 unit에 대한 Message 출력
1.2.5. 기간 설정
1.2.5.1. --since: 'today', '-1 hour'
1.2.5.2. --until : --since '2023-01-10 10:00:00' --until '2023-01-11 12:00:00'
1.3. 검색 Query 만들기
1.3.1. 특정 Process or Event와 관련된 줄을 검색하는데 사용하는 공통 필드
1.3.2. # journalctl -o verbose
1.3.2.1. _COMM: 명령 이름
1.3.2.2. _EXE: Process 실행 파일 경로
1.3.2.3. _PID: Process PID
1.3.2.4. -UDI: Process를 실행하는 User의 UID
1.3.2.5. -SYSTEM_UNIT: Process를 시작한 System Unit
1.3.3. # journalctl _SYSTEMD_UNIT=sshd.service _UID=0
1.3.3.1. system_unit은 sshd이고 UID 0이 실행한 Message 출력
2. System Journal 저장
2.1. /run/log/ 디렉토리에 저장하며 재부팅 후에는 삭제
2.2. /etc/systemd/journald.conf 파일의 storage 매개 변수 설정을 통해서 변경
2.2.1. persistent: /var/log/journal 디렉토리에 저널 저장
2.2.1.1. /var/log/journal 디렉토리가 없는 경우 systemd-journald 서비스가 생성
2.2.2. volatile: /run/log/jorunal 디렉토리에 일시적으로 저장
2.2.2.1. /run 파일시스템은 일시적이며 runtime memory에만 존재, 재부팅 후 유지되지 않음
2.2.3. auto: /var/log/journal 디렉토리가 있으면 영구저장, 없으면 일시적 스토리지 사용, 기본값
2.2.4. node: Storage를 사용하지 않음. Log는 삭제하지만 전달은 가능
2.3. storage를 사용한다 해도 영구 저장이 되지는 않음, logrotate기능 동작
2.3.1. 저널이 사용하는 공간은 해당 File System의 10% 이하
2.3.2. 저널에 사용 가능한 공간은 File System의 15% 이상
2.3.2.1. # journalctl | grep -E 'Runtime Journal|System Journal'
2.4. 구성
2.4.0. # ls /var/log
2.4.1. # vi /etc/systemd/journald.conf
2.4.2. # systemctl restart systemd-journald
2.4.3. # ls /var/log
2.5. 부팅 횟수에 따른 저장된 journal File
# journalctl -b 1
# journalctl -b 2
# jouenalctl -b
설정 후 오류가 났을 때 항상 사용하던 명령어가 journalctl -xe 였던 것을 기억한다면 그리 어렵지 않게 이해하실 수 있으실 겁니다.
항상 기본기가 가장 중요합니다.
Have a nice day!
728x90'공부합시다! > LInux' 카테고리의 다른 글
Rocky9: NTP (Network Time Protocol) (0) 2023.01.15 Rocky9: Log (0) 2023.01.14 Rocky9: sudo (0) 2023.01.12 CentOS7: at & cron (0) 2023.01.03 EXT4 & XFS 파일시스템 Quota - 명령어와 설정 파일 비교 (0) 2022.12.21