리눅스 시스템 로그 정의 및 분류

리눅스 시스템 로그는 시스템에서 발생하는 다양한 이벤트를 기록하며, 시스템의 상태를 모니터링하고 문제를 진단하는 데 중요한 역할을 합니다.

로그 파일은 시스템의 동작, 오류, 보안 관련 이벤트 등을 기록하고, 관리자는 이를 통해 시스템의 상태를 점검하며 성능을 모니터링할 수 있습니다. 이를 통해 시스템의 원활한 운영을 보장하고, 트러블슈팅 시 중요한 정보를 제공합니다.

Ⅰ. 리눅스 시스템 로그의 정의

리눅스 로그 파일은 텍스트 형식으로 각각의 파일명으로 저장됩니다. 각 로그 항목은 특정한 형식을 따릅니다. ‘Log’는 영단어에서 첫 번째 뜻으로 ‘통나무’가 나오고 두 번째로 ‘(항해일지를) 기록하다’의 뜻을 가지고 있습니다. 항해일지(Logbook)와 같이, 과거에는 항해 중 발생한 사건들을 기록한 일지의 의미로 사용되었습니다.

이 의미가 확장되어 오늘날에는 시스템이나 프로그램에서 발생한 사건, 상태, 오류 등을 기록하는 로그라는 개념으로 발전하였습니다.

Ⅱ. 사용 목적에 따른 단순 분류

사용 목적에 따라 분류할 경우 다음과 같습니다.

시스템 기준 분류

설명

대표 경로

syslog 기반

시스템, 보안, 인증 등 전반적인 메시지 관리

/var/log/syslog(데비안) /var/log/messages(레드헷) /var/log/secure, /var/log/auth.log

커널 로그

커널, 드라이버, 하드웨어 관련 메시지

/var/log/kern.log
(실시간 커널 메시지 확인 명령어: dmesg)

서비스 로그

웹서버, 데이터베이스 등 서비스 별 독립 로그

/var/log/nginx/, /var/log/mysql/

패키지/업데이트 로그

소프트웨어 설치 및 업데이트 기록

/var/log/yum.log, /var/log/apt/

사용자 활동 로그

로그인, 명령어 사용 기록(계정 로그)

/var/log/wtmp, /var/log/lastlog

사용자가 시스템에서 수행한 활동을 추적하는 관점에서 사용자 활동 로그로 볼 수 있으며, 로그인, 로그아웃, 시스템 셧다운과 같은 사용자 계정 관련 활동 기록 관점에서 ‘계정 로그’로도 볼 수 있으며, kernel 데몬을 사용하기 때문에 커널로 분류할 수 있습니다.

리눅스Linux(회색 배경의 나무 큐브)

Ⅲ. 시스템 로그 분류표(종류)

리눅스 시스템 로그의 분류표입니다.

분류

로그 파일 경로

관련 데몬

설명

부팅

/var/log/messages

rsyslogd

부팅 시 메시지를 포함한 시스템 전반의 로그 기록

보안

var/log/secure

rsyslogd

인증 및 보안 관련 로그 기록

크론

/var/log/cron

rsyslogd, crond

crond 작업 스케줄 로그 기록

메일

/var/log/maillog

rsyslogd, Sendmail, Dovecot 등

메일 송수신 관련 로그 기록

커널 로그

/var/log/dmesg

kernel

부팅 시 출력된 커널 메시지 기록, CentOS 6까지 제공하며, CentOS 7부터는 명령어로 확인, 실시간 출력 명령어이며 실제 로그는 아님.

커널 로그

/var/log/kern.log

kernel

Debian/Ubuntu 계열

계정 로그

/var/log/btmp

kernel

5회 이상 실패한 로그인 시도 기록

계정 로그

/var/log/wtmp

kernel

전체 사용자 로그인/로그아웃, 부팅/셧다운 기록 (바이너리)

계정 로그

/var/run/utmp

kernel

현재 로그인한 사용자들의 상태 기록 (바이너리)

계정 로그

/var/log/lastlog

kernel

모든 사용자의 마지막 로그인 기록

FTP 로그

/var/log/xferlog

ftpd

FTP 파일 전송 기록 저장

서비스 로그

/var/log/ftp.log

vsftpd

FTP 서버의 요청 및 에러 로그

서비스 로그

/var/log/httpd/access_log

httpd

웹 서버(Apache)의 접속 로그

서비스 로그

/var/log/xferlog

httpd

웹 서버(Apache)의 에러 로그

서비스 로그

/var/log/mysql/mysql.log

ftpd

MySQL 서버의 쿼리 및 에러 로그

서비스 로그

/var/log/nginx/error.log

ftpd

웹 서버(Nginx)의 접속 로그

서비스 로그

/var/log/nginx/error.log

ftpd

웹 서버(Nginx)의 에러 로그

🔲 리눅스 시스템 로그 트리맵

/var/log/
├── apache2/
├── access.log
├── error.log
├── other_vhosts_access.log
├── mysql/
├── error.log
├── slow-query.log
├── mysqld.log
├── nginx/
├── access.log
├── error.log
├── syslog
├── auth.log
├── dmesg
├── cron
├── dpkg.log
├── boot.log
├── messages
├── user.log
└── wtmp

/var/lib/mysql/
├── aria_log.00000001
├── aria_log_control
├── ddl_recovery.log
├── ddl_recovery-backup.log
├── ib_logfile0
├── undo001
├── undo002
├── undo003
├── tc.log

🔲 로그 파일 위치는 설정에 따라 다름

대부분의 리눅스 시스템 로그, 웹 서버 로그, 데이터베이스 로그 등이 /var/log/ 디렉터리에 저장됩니다. 이 경로는 표준 위치로 사용되지만, 실제 운영 환경에서는 서버 설정이나 보안 정책, 저장 공간 관리 등의 이유로 로그 파일의 위치가 변경될 수 있습니다.

예를 들어, MySQL 데이터베이스의 에러 로그나 슬로우 쿼리 로그는 기본적으로 /var/log/mysql/ 디렉터리에 생성되지만, my.cnf 설정 파일을 통해 다른 디렉터리로 경로를 변경할 수 있습니다.

마찬가지로 Apache, Nginx 등의 웹 서버 역시 설정 파일(httpd.conf, nginx.conf)에서 로그 저장 경로를 별도로 지정할 수 있습니다. 이 외에도 일부 시스템 로그는 /var/log 하위가 아닌 별도의 전용 디렉터리나 외부 스토리지로 저장되기도 합니다.

따라서 로그 파일을 확인하거나 문제를 점검할 때는, 단순히 기본 경로만 보는 것이 아니라 해당 서비스나 애플리케이션의 설정 파일을 함께 확인하는 것이 중요합니다. 또한, 환경에 따라 로그가 실시간으로 다른 경로로 이동 되거나 아카이빙(압축 보관)되는 경우도 있으니, 전체적인 로그 관리 정책까지 고려해야 정확한 로그 분석과 모니터링이 가능합니다.

find /var/ -maxdepth 4 -name "*_log"
/var/log/httpd/access_log
/var/log/httpd/error_log
/var/log/httpd/ssl_access_log
/var/log/httpd/ssl_error_log
/var/log/httpd/ssl_request_log

find /var -name "*.log"
/var/lib/mysql/ddl_recovery.log
/var/lib/mysql/tc.log
/var/lib/mysql/ddl_recovery-backup.log
/var/log/audit/audit.log
/var/log/cloud-init.log
/var/log/cloud-init-output.log
/var/log/tuned/tuned.log
/var/log/amazon/ssm/amazon-ssm-agent.log
/var/log/amazon/ssm/errors.log
/var/log/dnf.rpm.log
/var/log/php-fpm/error.log
/var/log/php-fpm/www-error.log
/var/log/letsencrypt/letsencrypt.log
/var/log/dnf.librepo.log
/var/log/redis/redis.log
/var/log/hawkey.log
/var/log/dnf.log
/var/log/log_cleanup.log
리눅스 시스템 로그(모든 로그의 TOP 페이지)

Similar Posts

  • Apache&Nginx에 Varnish Cache 설치 및 설정

    기존 Apache와 Nginx 조합의 서버에 Varnish Cache를 추가로 설치하고 적용 해 보도록 하겠습니다. Nginx에 Varnish Cache를 추가로 설정하는 작업이기 때문에 기존의 서버에 적용된 사항을 체크 해 보겠습니다. AlmaLinux release 9.4 버전에 Apache/2.4.57, nginx/1.28.0 , PHP 8.3.22를 사용하기 때문에, 설치는 varnish, collectd-varnish, varnish-modules 총 3개의 모듈 설치를 진행합니다. 목차Ⅰ. 리눅스 시스템 로그의 정의Ⅱ. 사용…

  • [Linux] CentOS 7 yum repo 변경(EOS)

    CentOS 7의 공식 EOS 날짜는 2024년 6월 30일로 종료되면서 기본 저장소가 비활성화되었기 때문에, yum 명령어 실행 시 저장소를 찾지 못해 오류가 발생합니다. CentOS 7 yum repo 변경을 한 후에 문제 해결이 가능합니다. CentOS 7에서 EOS(End of Support)에 따라 CentOS 7을 처음 설치 시 설정 된 yum 명령어 실행 시 One of the configured…

  • 서블릿(Servlet)이란?

    목차Ⅰ. 리눅스 시스템 로그의 정의Ⅱ. 사용 목적에 따른 단순 분류Ⅲ. 시스템 로그 분류표(종류)🔲 리눅스 시스템 로그 트리맵🔲 로그 파일 위치는 설정에 따라 다름 1. 서블릿이란 무엇인가? 서블릿은 동적 웹 페이지를 만들 때 사용되는 자바 기반의 웹 애플리케이션 프로그래밍 기술입니다. 클라이언트의 요청을 처리하고 응답을 생성하는 자바 클래스입니다. Servlet은 일반적으로 HTTP 프로토콜을 기반으로 작동하며, 클라이언트의…

  • 리눅스 리다이렉션(Redirection)

    웹 상에서 리다이렉션(Redirection)은 웹 브라우저가 특정 URL을 요청했을 때, 미리 지정된 다른 URL로 재요청하게 하는 것을 말합니다. 재 연결의 사전적인 의미를 가진 Redirection은 리눅스에서 입력과 출력을 다루는 방식으로, 데이터를 파일로 보내거나 파일에서 읽어오는 작업을 수행할 수 있게 해줍니다. 리눅스 리다이렉션은은 키보드로 입력, 화면으로 출력을 하는 것이 아니라 파일로 출력하는 것을 의미합니다. 리다이렉션에는 표준…

  • 리눅스 디렉토리 구조 및 파일 종류🔝

    리눅스 운영체제는 계층적 파일 시스템을 사용합니다. 위에서 아래 또는 위와 아래로 구성되어 있습니다. 리눅스 디렉토리 구조는 파일 시스템의 시작 지점인 루트 디렉토리(/)부터 시작됩니다. Linux 파일 시스템 계층 구조는 리눅스를 포함한 유닉스 유형 운영 체제의 디렉토리 구조와 내용을 결정하는 일련의 지침인 파일 시스템 계층 구조 표준의 적용을 받습니다. 계층 구조 표준은 리눅스 재단(영어: Linux Foundation)에서…

  • 리눅스 tar 명령어: 파일 압축, 해제

    리눅스 tar 명령어는 여러 개의 파일을 하나의 파일로 묶거나 해제할 때 사용하는 명령어로 웹사이트의 이전 등에 mysqldump와 같이 사용되는 경우가 많습니다. 테이프 아카이버(Tape Archiver)의 앞 글자를 따서 tar라는 이름으로 부르게 되었습니다. 목차Ⅰ. 리눅스 시스템 로그의 정의Ⅱ. 사용 목적에 따른 단순 분류Ⅲ. 시스템 로그 분류표(종류)🔲 리눅스 시스템 로그 트리맵🔲 로그 파일 위치는 설정에 따라…

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Prove your humanity: 1   +   10   =