본문 바로가기
IT/Linux

로그관리(rsyslog,journal)

by 혁클 2021. 4. 1.



로그 관리(Log)

 

로그(Log) - 시스템에서 발생한 이벤트에 대한 기록

감사(Audit) - 관리자가 설정한 특정 대상에 대한 기록

 

로그의 필요성

  • 보안적 측면: 침입 등에 대한 감시, 대응
  • 운영적 측면: 시스템 장애 대응

 

systemd 이전의 로그

  • syslog(rsyslog)

 

systemd 이후의 로그

  • syslog(rsyslog)
  • journal

 

systemd-journald

  • journal을 담당하는 데몬
  • 메모리에 저장
  • 바이너리 데이터 형태로 저장 : /run/log/journal

 

syslog(rsyslog)

  • 로그 데이터를 파일로 저장, 사용자에게 전달
  • 네트워크의 다른 시스템으로 로그 전달
  • systemd-journald에서 발생한 로그 중 선택적으로 분류하여 처리
  • 선택/분류 조건: 기능(Facility), 우선순위(Priority)

 

로그의 우선순위

숫자

우선순위

심각도

0

emerg

시스템 구동 여부에 영향을 줄 수 있는 레벨

1

alert

즉시 조치가 필요함

2

crit

심각한 오류

3

err

중요도가 낮은 오류

4

warning

경고

5

notice

정상상태에서 발생하는 메시지 중 중요도 높음

6

info

일상적인 내용

7

debug

디버깅 메시지(일상적인 내용보다 자세한 내용)

 

rsyslog 관련 파일

  • /var/log
    • messages : 일반적인 시스템 로그의 데이터 저장 (아래 항목 제외)
    • secure : 인증 관련 로그
    • maillog : 메일 관련 로그
    • cron : 예약 작업 관련 로그
    • boot.log : 부팅 관련 로그
  • /etc/rsyslog.conf : rsyslog 설정 파일

 

rsyslog.conf 내 RULE 설정

ex) cron.*       /var/log/cron

cron : 기능(Facility, 출처), 어디에서 나온 로그인가?

* : 우선순위. 지정된 우선순위에 해당하는 로그를 저장

  • *: 모든 우선순위의 로그를 모두 지정
  • 0~7, emerg~debug : 지정된 우선순위 해당 로그 및 그보다 높은 우선순위의 로그를 모두 지정
  • none: 해당 기능은 로그 저장하지 않음

/var/log/cron: 기록 대상

  • -<파일명> : 비동기화 저장 설정
  • /dev/… : 특정 장치로 로그 전송
  • :omusrmsg:* : 특정 사용자에게 로그 전송

 

journal

  • 명령어 : journalctl 
    • 옵션
      • -n [숫자]: 최근 [숫자] 개의 저널 출력
      • -p [우선순위] : priority. 저널 메시지의 우선순위 지정
      • -f : 발생하는 저널 메시지 실시간 확인
      • -r : 역순 출력 (최근 저널부터)
      • --since [시작 시점] : 특정 시점부터 출력
      • --until [종료지점] : 특정 시점까지 출력
      • _COMM : 명령 이름
      • _EXE : 실행파일 경로
      • _PID : 특정 PID 관련 로그 확인
  • 메모리에 저장 : 재부팅, 종료 후 시작 등 초기화됨
    • 저널 영구 저장 설정
  1. 기존 저널 저장 위치 정보를 확인
  • 기존 저널 저장 위치인 /run/log/journal 경로와 같은 정보를 가지는 디렉터리를 생성
  • # ls -ld /run/log/journal
    • 소유자 root
    • 소유 그룹 systemd-journal
    • 권한 2755
  1. /var/log/journal 디렉터리 생성
  • 소유자/소유 그룹/권한 설정 통일
  • # mkdir /var/log/journal
  • # chown root:systemd-journal /var/log/journal/
  • # chmod 2755 /var/log/journal/
  • # ls -ld /var/log/journal

 

logrotate

  • 로그를 순환시키는 명령어
  • 로그파일이 과도하게 커지거나, 과도하게 장기간의 데이터를 저장하거나 하는 상태를 방지
  • 백업 생성. 규칙에 따라 일정 개수만큼의 백업만 보관
  • cron(anacron)에 의해 주기적으로 실행

*이 포스팅은 엔코아 플레이 데이터 수업 내용을 참고로 합니다.

'IT > Linux' 카테고리의 다른 글

SELinux  (0) 2021.04.05
방화벽관리(firewalld)  (0) 2021.04.03
작업 스케줄러  (0) 2021.03.30
systemd  (0) 2021.03.29
저장소 관리(LVM,RAID)  (0) 2021.03.27

댓글