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

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

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

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

리눅스 로그 파일은 텍스트 형식으로 각각의 파일명으로 저장됩니다. 각 로그 항목은 특정한 형식을 따릅니다. ‘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

  • 리눅스 uniq 명령어

    리눅스 uniq 명령어는 “unique”의 약자이며, 텍스트 파일에서 중복된 행을 제거하고 하나의 행만 출력하는데 사용됩니다. 중복된 텍스트 데이터를 제거하고 몇 번의 반복이 있었는지 등을 확인할 때 매우 유용하게 사용할 수 있습니다. 목차Ⅰ. 리눅스 시스템 로그의 정의Ⅱ. 사용 목적에 따른 단순 분류Ⅲ. 시스템 로그 분류표(종류)🔲 리눅스 시스템 로그 트리맵🔲 로그 파일 위치는 설정에 따라 다름✅…

  • 리눅스 백그라운드(Back Ground)&포그라운드(Fore Ground): 프로세스 제어하기

    리눅스의 프로세스는 백그라운드(Back Ground)와 포그라운드(Fore Ground) 두 가지의 모드로 작동됩니다. 리눅스 백그라운드 작업을 하는 이유는 일반적인 쉘 명령어를 실행했을 때 프로세스가 종료될 때까지 기다리면서 다른 작업을 하지 못하는 경우가 있기 때문입니다. 목차Ⅰ. 리눅스 시스템 로그의 정의Ⅱ. 사용 목적에 따른 단순 분류Ⅲ. 시스템 로그 분류표(종류)🔲 리눅스 시스템 로그 트리맵🔲 로그 파일 위치는 설정에 따라…

  • 리눅스 tee 명령어

    리눅스 tee 명령어는 배관시설에 비유해서 이름이 붙여진 명령어입니다. 파이프 모양과 똑같은 “T”에서 본따 tee 명령어이며 표준 출력으로 하나 이상의 다른 파일을 동시에 출력합니다. tee 명령어의 목적은 작업 진행 중 파이프라인(I)의 중간 내용을 알고 싶을 때 유용하게 사용할 수 있습니다. 목차Ⅰ. 리눅스 시스템 로그의 정의Ⅱ. 사용 목적에 따른 단순 분류Ⅲ. 시스템 로그 분류표(종류)🔲 리눅스…

  • [Linux] 리눅스 mv 명령어 사용법 및 mv 명령어 옵션

    리눅스 mv 명령어는 Move의 약자로 파일 또는 디렉토리를 이동하거나 이름을 변경할 때 사용하는 명령어입니다. 기본적인 리눅스 mv 명령어 사용법과 옵션 및 활용 방법에 대해 알아 보겠습니다. 목차Ⅰ. 리눅스 시스템 로그의 정의Ⅱ. 사용 목적에 따른 단순 분류Ⅲ. 시스템 로그 분류표(종류)🔲 리눅스 시스템 로그 트리맵🔲 로그 파일 위치는 설정에 따라 다름✅ 리눅스 mv 명령어 기본…

  • 리눅스 grep 명령어

    리눅스 grep 명령어는 로그 파일과 같은 텍스트 파일과 아스키 파일에서 원하는 문자열을 찾을 때 사용되며, tail과 find 명령어를 파이프(|)와 결합해서 자주 사용하게 되는 명령어입니다. 목차Ⅰ. 리눅스 시스템 로그의 정의Ⅱ. 사용 목적에 따른 단순 분류Ⅲ. 시스템 로그 분류표(종류)🔲 리눅스 시스템 로그 트리맵🔲 로그 파일 위치는 설정에 따라 다름✅ grep 명령어 기본 사용법 ✅ 기본적인…

  • [Shell 특수문자] 리눅스 와일드카드(메타문자)

    리눅스 와일드카드는 Shell 특수문자로 메타 문자로 불리기도 합니다. Shell 특수 기호 중 와일드카드(글로빙으로 부르기도 함)는 문자 패턴에 따라 파일명을 선택할 수 있습니다. 특수 문자에는 인용(따옴표) 기호, 리눅스 다중 명령어, 리눅스 히스토리 기호, 리눅스 디렉토리 기호, 리눅스 괄호 기호 및 입출력 리다이렉션 등 다양하게 있습니다. 목차Ⅰ. 리눅스 시스템 로그의 정의Ⅱ. 사용 목적에 따른 단순…

답글 남기기

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

Prove your humanity: 2   +   2   =