유닉스/리눅스 시스템 로그 확인 방법 - 이해하기

유닉스/리눅스 시스템 로그 확인, 이것만 알면 끝

로그는 “무슨 일이, 언제, 누구에게서” 일어났는지 남긴 발자국입니다. 배포판·서비스마다 파일 경로와 확인 명령이 조금 다르지만, 점검 흐름은 크게 아래 5단계면 충분해요.

  1. 어느 시스템인가? (Debian/Ubuntu vs RHEL/CentOS/Alma)

  2. 무엇을 보려는가? (부팅·커널, 인증, 서비스, 네트워크, 계정활동)

  3. 어디에 저장되는가? (/var/log/*, journalctl, 바이너리 로그)

  4. 어떻게 열람/필터링? (less, tail -f, grep, journalctl -u/-p/-S)

  5. 보존/압축/순환은? (logrotate, *.gz, zgrep)


필수 명령 한눈 요약

# 최근 부팅부터의 시스템 로그( systemd 기반 )
journalctl -b

# 특정 서비스 유닛 로그
journalctl -u ssh --since "2025-10-01" --until "2025-10-31"

# 중요도(우선순위) 필터: err 이상만
journalctl -p err -r   # 최신부터 역순

# 커널 메시지(부팅·드라이버)
dmesg | less

# 텍스트 로그 빠르게 보기
tail -f /var/log/auth.log          # Debian/Ubuntu
tail -f /var/log/secure            # RHEL 계열

# 과거 압축 로그 검색
zgrep "Failed password" /var/log/auth.log.*.gz

# 로그인 이력(바이너리)
last         # /var/log/wtmp 사용
lastb        # /var/log/btmp 사용 (루트 권한 권장)

# 로그 로테이션 강제 실행(테스트)
sudo logrotate -f /etc/logrotate.conf

배포판별 주요 로그 위치

  • Debian/Ubuntu 계열

    • /var/log/syslog : 시스템 전반 메시지

    • /var/log/auth.log : 인증/권한 상승

    • /var/log/kern.log : 커널

  • RHEL/CentOS/AlmaLinux 계열

    • /var/log/messages : 시스템 전반

    • /var/log/secure : 인증/권한 상승

  • 공통

    • /var/log/dmesg : 부팅 시 커널 메시지 스냅샷

    • /var/log/wtmp / /var/log/btmp : 로그인 성공/실패(바이너리)

    • 서비스별 디렉터리: /var/log/nginx/, /var/log/httpd/, /var/log/audit/

참고: 최신 배포판은 대부분 systemd를 사용하며, 로그는 **저널(journald)**에 먼저 적재 → 필요 시 텍스트 파일로 포워딩(rsyslog, syslog-ng) 됩니다.


목적별 빠른 체크 레시피

  • 로그인/권한 상승 이상 탐지
    journalctl -u ssh -p warning -r 또는 grep 'Failed password' /var/log/auth.log

  • 서비스(예: nginx) 장애
    journalctl -u nginx -r --since "1 hour ago" → 재시작 흔적(systemd[1]: Started...)과 에러 확인

  • 부팅/하드웨어 문제
    journalctl -b -p err + dmesg | grep -i "error\|fail\|timeout"

  • 네트워크/방화벽
    journalctl -k | grep -i drop (커널에서 드롭된 패킷 메시지)

  • 감사(auditd) 이벤트
    ausearch -m AVC,USER_LOGIN -ts today → SELinux/로그인 감사


비교표: 무엇을, 어디서, 어떻게 볼까

목적/상황 대표 로그/경로 주요 명령 자주 보는 키워드 해석 포인트 보안 팁
부팅·커널 이슈 journalctl -b, /var/log/kern.log, dmesg journalctl -b -p err, `dmesg less` error, fail, timeout, oops 해당 시점 드라이버/디스크/메모리 오류 연계
인증 실패/계정 탈취 Debian:/var/log/auth.log RHEL:/var/log/secure grep 'Failed password', journalctl -u ssh -p warning Failed password, invalid user, sudo 원격 IP·계정·시각 패턴(무차별/사전대입) IP 차단, MFA, PermitRootLogin no, AllowUsers 제한
서비스 장애(nginx, httpd 등) 서비스별 로그 디렉터리 + 저널 journalctl -u <svc> -r, tail -f segfault, 502/504, restart 재시작 루프/리소스 고갈 징후 리소스 모니터링, health check, rate limit
시스템 전반 이벤트 Debian:/var/log/syslog RHEL:/var/log/messages tail -f, `grep 'panic oom'` OOM-killer, kernel panic 메모리 부족/프로세스 종료 추적
로그인 이력(성공/실패) /var/log/wtmp, /var/log/btmp last, lastb pts/tty, reboot, ssh 비정상 시간대/국가 로그인 GeoIP 차단, 근무시간 외 알림
압축·보존·순환 /etc/logrotate.conf, /etc/logrotate.d/* logrotate -d/-f, zgrep rotate, compress, dateext 용량 급증/보존기간 확인 장기보존(예: 1년)/중앙수집(SIEM)

마무리 체크리스트

  • 로그 접근 권한은 최소화(파일 권한 600~640, 그룹 adm/systemd-journal).

  • journalctl 필터링 숙달: -u(유닛), -p(우선순위), -S/-U(기간), -g(grep).

  • **압축 로그는 zgrep/zless**로 확인(과거 추적 필수).

  • 무결성/중앙집중 수집: rsyslog 원격 포워딩, SIEM/Elastic/CloudWatch 등.

  • 정기 점검 자동화: 실패 로그인 임계치 알림, 서비스 재시작 루프 감지.


댓글 쓰기

새 댓글을 작성할 수 없습니다.*

다음 이전