Linux Log System
리눅스 로그 시스템
- 로그에는 에러 사항, 서버 접근 이력, 장애 사항 등을 포함하여 매우 중요한 정보들이 저장되어 있기에
리눅스 시스템 관리자에게 로그 관리는 매우 중요한 업무 중 하나이다.
Linux Logging Types (리눅스 로그 유형)
- 리눅스에는 아래와 같이 두 가지 로그 기록 메커니즘이 있다:
- Kernel Logging
- Error, Warning 및 Kernel이 기록한 로그
- User Logging
- Host Machine에서 수행된 Process들과 Service들이 기록한 로그
Linux Kernel Logging (리눅스 커널 영역 로그)
- Kernel Space에서의 로그 기록은 Kernel Ring Buffer를 통해 이루어진다.
- Kernel Ring Buffer는 Circular Buffer로, 시스템이 부팅할 때 발생하는 로그들이 저장된다.
- 즉, 리눅스 컴퓨터를 시작할 때 콘솔에 출력되는 로그들은 Kernel Ring Buffer에 저장되어 있던 로그들이다.
- Kernel Logging은 syslog
데몬 혹은 rsyslog
에 의해 관리되는 User Logging 보다 먼저 수행된다.
- Kernel-related Log들을 직접 열어보는 대신, dmesg
명령어를 통해 커널 로그를 확인할 수 있다.
- Kernel Ring Buffer는 /dev
디렉토리의 Character Device File(kmsg
)로 구성되는데,
kmsg
는 Kernel Ring Buffer를 읽고 쓰기 위한 추상적 구현체이다.
- kmsg
Virtual Device는 Kernel Ring Buffer로의 Entrypoint 역할을 수행하며,
이 과정에서 생기는 프로세스에 대한 로그는 /proc/kmsg
파일에 출력된다.
- /proc/kmsg
파일은 대부분 User Space의 Logging Utility를 수행하는 싱글 프로세스에 의해서만 Parsing되는데,
일반적으로 대부분의 리눅스 배포판에서는 rsyslog
가 이를 수행하며,
때때로 어떤 리눅스 배포판에서는 syslogd
가 수행하기도 한다.
- rsyslog
에는 파일 시스템을 통해 커널 로그에 리디렉션하는 Module이 내장되어 있다.
- 과거, 커널 로그는 klogd
Daemon을 통해 조회하였으나, 대부분의 리눅스 배포판에서는 rsyslog
로 대체되었다.
- systemd
와 같은 유틸리티를 통해 Kernel Ring Buffer에 데이터를 Write 하는 것 또한 가능하다.
Linux User Side Logging (리눅스 유저 영역 로그)
- 리눅스 유저 영역 로그 기록 메커니즘은 Syslog 프로토콜을 기반으로 한다.
- Syslog는 리눅스 인스턴스에서 발생되는 로그에 대한 표준이며,
Severity Level과 Facility Level이 정의되어 있고, 이에 따라 분류되어 로그의 내용과 구조를 이해하기 용이하다.
- Syslog Server에서 로그를 분석하고 시각화할 수 있다.
Linux Severity Level
Linux Facility Level
- 리눅스 시스템에서는 다양한 유틸리티와 프로그램들이 로그를 생성하는데,
어떤 프로세스가 로그를 전송했는지를 코드화하여 관리한다.
Linux Logging Configuration (리눅스 로그 환경설정)
Linux Logs Monitoring Utilities (리눅스 로그 모니터링 유틸리티)
Linux Logging Utilities (리눅스 로그 기록 유틸리티)
Reference: devconnected, Linux Logging Complete Guide, URL, 2023년 9월 21일 검색
Reference: Wikipedia, Syslog, URL, 2023년 9월 25일 검색