Linux 로그 경로 정리 · 29/50 · Part 3. Ubuntu / Debian 로그 경로
선행 학습 → 28. RHEL과 Ubuntu 로그 경로 차이 · 10. Linux 로그를 읽을 때 주의할 점
이번 글 → 배포판별 로그 분석 전략
이어서 → 30. Linux 로그 경로 자동 탐색 스크립트
실무에서 만나는 서버는 교재와 다릅니다. 하드닝 템플릿, 오래된 OS, 컨테이너, 클라우드 이미지, 관리자가 바꿔 놓은 설정… 경로 암기는 금방 한계에 부딪힙니다. 필요한 것은 "처음 보는 서버에서도 5분 안에 로그를 찾아내는 절차"입니다.
핵심 요약
- 순서: OS 확인 → Logging System 확인 → Service 확인 → Journal / File 확인 → Event 검색
- 파일 경로의 정답은 설정 파일 안에 있다(
rsyslog.conf,journald.conf,auditd.conf, 서비스 설정).- 파일이 없으면 저널, 저널이 없으면 중앙 수집본으로 내려간다.
| 단계 | 질문 | 확인 수단 |
|---|---|---|
| OS | 어떤 계열·버전인가? | /etc/os-release |
| Logging System | journald만? rsyslog도? auditd는? | systemctl is-active, 패키지 조회 |
| Service | 조사 대상 이벤트를 만드는 서비스는? | systemctl list-units --type=service |
| Journal / File | 어디에 저장되나? | rsyslog.conf 규칙, journald.conf Storage, 서비스 설정 |
| Event | 무엇을 검색하나? | 키워드·필드·시간 범위 |

OS 확인 (/etc/os-release)
↓
Logging System 확인 ──┬─ rsyslog 있음 → 규칙 파일에서 경로 추출
├─ journald 만 → journalctl (Storage=persistent?)
└─ auditd 있음 → auditd.conf log_file, 규칙 목록
↓
Service 확인 (sshd? ssh? nginx? mariadb?) → 서비스 설정에서 로그 경로
↓
Journal / File 확인 (존재·크기·mtime·순환 파일)
↓
Event 검색 (시간 범위 → 키워드 → 교차검증)
"정답이 적힌 곳" 목록:
| 알고 싶은 것 | 확인할 설정 |
|---|---|
| rsyslog 파일 경로 | /etc/rsyslog.conf, /etc/rsyslog.d/*.conf |
| 저널 저장 위치 | /etc/systemd/journald.conf (Storage=), /var/log/journal 존재 |
| 감사 로그 경로 | /etc/audit/auditd.conf (log_file) |
| Apache | /etc/httpd/conf/httpd.conf / /etc/apache2/ (ErrorLog, CustomLog) |
| Nginx | /etc/nginx/nginx.conf (access_log, error_log) |
| MariaDB/MySQL | /etc/my.cnf, /etc/my.cnf.d/ / /etc/mysql/ (log_error, general_log_file) |
| 원격 전송 | rsyslog @@host / omfwd, Wazuh /var/ossec/etc/ossec.conf |
# [1] OS
. /etc/os-release; echo "$ID $VERSION_ID ($ID_LIKE)"
# [2] Logging system
systemctl is-active systemd-journald rsyslog syslog-ng auditd 2>/dev/null
grep -E '^\s*Storage' /etc/systemd/journald.conf /etc/systemd/journald.conf.d/*.conf 2>/dev/null
# [3] 경로를 설정에서 추출 (rsyslog 파일 액션)
grep -hvE '^\s*#' /etc/rsyslog.conf /etc/rsyslog.d/*.conf 2>/dev/null | grep -oE '(file="|\s-?)/var/log/[^" ]+' | tr -d ' "-' | sed 's/^file=//' | sort -u
grep -E '^log_file' /etc/audit/auditd.conf 2>/dev/null
# [4] 서비스별 로그 경로
systemctl list-units --type=service --state=running --no-legend | awk '{print $1}' | head -30
grep -rhE '^\s*(ErrorLog|CustomLog|access_log|error_log|log_error|general_log_file)' /etc/httpd /etc/apache2 /etc/nginx /etc/my.cnf* /etc/mysql 2>/dev/null
# [5] 원격 전송 여부 (중앙 수집본 존재 가능성)
grep -rhE '@@?[0-9a-zA-Z]|omfwd' /etc/rsyslog.conf /etc/rsyslog.d/ 2>/dev/null
grep -A2 '<server>' /var/ossec/etc/ossec.conf 2>/dev/null

위 이미지는 Ubuntu 24.04 실습 환경에서 로깅 시스템을 실제로 판별한 결과입니다.
판별 결과에 따른 분석 경로:
| 판별 결과 | 1차 소스 | 2차 소스 |
|---|---|---|
| rsyslog + journald(persistent) + auditd | 파일 | 저널·audit 교차 |
| rsyslog 없음, journald persistent | journalctl | 중앙 수집본 |
| journald volatile, rsyslog 없음 | 현재 부팅 저널만 | 중앙 수집본 필수 |
| auditd 없음 | 인증·서비스 로그 | 실행 흔적은 셸 히스토리·파일 시각(약한 증거) |
authpriv 규칙 삭제, Storage=none).[ ] 5단계 순서 설명
[ ] rsyslog 규칙에서 파일 경로 추출
[ ] journald Storage 설정 확인
[ ] 서비스 설정에서 로그 경로 추출
[ ] 원격 전송 설정 확인
[ ] 판별 결과별 1차/2차 소스 선택
| 구분 | 글 |
|---|---|
| ◀ 이전 글 | 28. RHEL과 Ubuntu 로그 경로 차이 |
| ▶ 다음 글 | 30. Linux 로그 경로 자동 탐색 스크립트 |
| 시리즈 | Linux 로그 경로 정리 전체 보기 |
| 선행 시리즈 | 리눅스 시스템 기초 · 파일 · 권한 · 사용자 관리 · 서비스 · 프로세스 관리 · Linux 시스템 보안 기초 |