[TIL 14. 리눅스 관리1 (8): Systemd와 로그관리]

Juhee Fred Lee·2023년 10월 26일
0

TIL

목록 보기
17/24
  1. 용어정리

    1. Service: 시스템에서 제공해주는 서비스 = 서비스 유닛
    2. Target: 서비스 유닛을 모아놓은 것 = 서비스 유닛의 집합
  2. 로그

    1. 개념: 이벤트에 대한 기록

    2. systemd ↔ rsyslogd

      systemdrsyslogd
      기록 형태가공되지 않은 형태로 기록됨. (binary file) ⇒ journalctl 활용 시 읽을 수 있음.사용자가 읽을 수 있는 형태로 가공해주는 역할을 한다.(ASCII code로 기록)
      휘발성런타임시에만 기록됨.(재부팅 시 사라짐.)반영구적인 기록이다.
      읽을 때 쓰는 툴journalctlcat, head, tail, vi
      저장위치/var.log/(서비스명)
    3. 로그파일의 크기가 너무 커지지 않도록 관리하는 것이 로그 파일 관리의 핵심이다.

      1. 로그가 특정 크기보다 커질 경우 로그 파일을 비우고 새 로그 파일을 만든다. (logrotate) ⇒ crontab 활용하여 하루에 한번 정도 작업이 진행된다.
    4. rsyslog.conf 파일 구성

      1. 룰 (Rule): 로그의 규칙들을 정의
      2. 필터 (Filter): 로그 메시지를 분류하기 위한 기준
        • 기능 및 우선순위 기반필터: 로그의 위험성을 표시하는 것. (0에 가까울수록 시스템에 영향이 높은 메세지라 판단한다.)
        • 속성 기반 필터
        • 표현 기반 필터
      3. 행동 (Action): 로그가 저장되는 파일의 위치
    5. systemd 로그 읽는 방법: journalctl -r (-r은 역순정렬 옵션) ⇒ 바이너리로 입력되어있던 systemlog를 ascii인코딩해준다.

      1. 옵션: S, --since=, -U, --until=, r = reverse
      2. 옵션을 설정하여 반영구적으로 저장이 가능하지만 전체 파일 용량의 10%를 초과해서는 안된다는 규칙이 있다.
  3. 에러 발생 시 트러블 슈팅을 위한 로그 확인

    1. 에러 상황 예시 (nginx)

    2. 에러로그 확인 방법

      1. /var/log/(서비스 경로)/error.log 에서 확인

      2. journalctl -r 로 전체 로그 조회 후 확인

profile
공릉동에 살며 백엔드를 공부하는 감자입니다.

0개의 댓글