journald란
journald는 systemd의 로그 관리 서비스로 시스템 및 서비스 로그를 중앙에서 관리합니다. 기본적으로 바이너리 형태로 저장되며 다양한 필터링 및 검색 기능을 제공합니다.
1. 기본 로그 조회
로그를 조회하는 기본 명령어는 journalctl입니다.
전체 로그 출력
journalctl
2. 부팅 후 로그 확인
현재 부팅된 후의 로그만 출력합니다.
journalctl -b
이전 부팅 로그를 출력합니다.
- -1은 이전 부팅, -2는 두 번째 이전 부팅
journalctl -b -1
3. 특정 서비스 로그 확인
nginx 서비스의 로그를 확인합니다.
journalctl -u nginx
여러 개의 서비스를 함께 조회합니다.
journalctl -u nginx -u php-fpm
4. 실시간 로그 확인
tail -f처럼 실시간 로그를 출력합니다.
journalctl -f
특정 서비스의 실시간 로그를 출력합니다.
journalctl -u nginx -f
5. 특정 시간대의 로그 확인
정 날짜 및 시간의 로그를 출력합니다.
journalctl --since "2024-02-16 12:00:00" --until "2024-02-16 14:00:00"
최근 1시간 동안의 로그를 출력합니다.
journalctl --since "1 hour ago"
6. 특정 프로세스(PID) 로그 확인
PID가 1234인 프로세스의 로그를 조회합니다.
journalctl _PID=1234
7. 특정 사용자 로그 확인
UID가 1001인 사용자의 로그를 조회합니다.
journalctl _UID=1001
8. 로그를 파일로 저장
로그를 파일로 저장합니다.
journalctl -u nginx > nginx.log
압축하여 저장합니다.
journalctl -u nginx | gzip > nginx.log.gz
9. 특정 로그 우선순위(레벨) 필터링
journald는 로그를 중요도별로 저장합니다.
- 긴급 (emergency) : 0 (시스템 사용 불가)
- 경고 (warning) : 4
- 정보 (info) : 6
- 오류 및 경고 메시지만 확인합니다.
journalctl -p 0..4
(또는)
journalctl -p warning
10. 특정 단어가 포함된 로그 필터링
error가 포함된 로그만 확인합니다.
journalctl | grep "error"
로그를 실시간으로 모니터링하면서 특정 단어를 필터링합니다.
journalctl -f | grep "timeout"
11. 특정 네트워크 인터페이스 관련 로그 확인
eth0 인터페이스의 네트워크 로그를 확인합니다.
journalctl _KERNEL_SUBSYSTEM=net --grep "eth0"
12. 로그 정리 및 삭제
journald의 로그를 수동으로 정리합니다.
- 전체 로그 삭제(로그를 500MB로 유지)
sudo journalctl --vacuum-size=500M
- 보관 기간 기준 삭제(7일 이상 된 로그 삭제)
sudo journalctl --vacuum-time=7d
13. 로그 저장 위치 확인
로그가 저장되는 위치를 확인합니다.
journalctl --disk-usage
로그 파일을 확인합니다.
ls -lh /var/log/journal/
journald 설정 변경
journald의 설정을 변경하면 로그 저장 방식, 보관 기간, 크기 제한 등을 조정할 수 있습니다.
journald 설정 변경
journald 설정 파일은 /etc/systemd/journald.conf에 있습니다.
sudo vim /etc/systemd/journald.conf
설정을 수정한 후 적용하려면 journald를 재시작해야 합니다.
sudo systemctl restart systemd-journald
로그 저장 방식 변경
로그 저장 위치를 영구적으로 /var/log/journal/에 저정합니다.
Storage=persistent
- auto(기본값) : /var/log/journal/가 있으면 영구 저장, 없으면 휘발성 저장
- volatile : RAM에만 저장 (재부팅 시 삭제)
- persistent : 영구 저장
- none : 로깅 비활성화
로그 크기 제한
로그가 너무 많이 쌓이는 것을 방지하려면 크기 제한을 설정합니다.
SystemMaxUse=2G
SystemKeepFree=500M
SystemMaxFileSize=500M
SystemMaxFiles=10
- SystemMaxUse=2G → 최대 2GB까지만 로그 저장
- SystemKeepFree=500M → 최소 500MB는 항상 남겨둠
- SystemMaxFileSize=500M → 단일 로그 파일 최대 크기
- SystemMaxFiles=10 → 최대 10개의 로그 파일 유지
로그 보관 기간 설정
오래된 로그를 자동 삭제하려면 journald.conf에 추가합니다.
- 14일이 지난 로그는 자동 삭제됩니다.
MaxRetentionSec=14day
로그 압축 설정
로그 파일을 자동으로 압축하여 저장합니다.
Compress=yes
참고URL
- ubuntu manuals : journalctl
'리눅스' 카테고리의 다른 글
hdparm을 사용한 디스크 성능 테스트 방법 (0) | 2025.02.18 |
---|---|
우분투에서 minikube 업그레이드 방법 (0) | 2025.02.17 |
Google IP 주소 (0) | 2025.02.11 |
Ansible Pull 모드를 사용하여 NGINX를 설치하는 방법 (0) | 2025.02.07 |
Zabbix에서 UserParameter를 사용하여 사용자 정의 메트릭을 수집하는 방법 (0) | 2025.02.07 |