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

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

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

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

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

  • HTTP 상태 코드 표 [100~500] 정리

    HTTP 상태 코드는 운영 중인 서버의 오류를 확인하는 데 매우 중요한 지표로 활용됩니다. HTTP(Hypertext Transfer Protocol)란 웹 서버와 웹 클라이언트 사이에 데이터를 주고 받기 위해 사용되는 프로토콜 중 하나이며, TCP/IP 프로토콜 위에서 동작합니다. HTTP는 HTML, XML과 같은 하이퍼텍스트(Hypertext)만 전송하는 것이 아닌 이미지, 동영상, JavaScript 등의 다양한 파일을 데이터로 전송할 수 있습니다. 목차Ⅰ. 리눅스…

  • [Linux] 우분투 서버 설치 RAID 1 (24.04 ver.)

    Oracle VirtualBox에 우분투 서버 설치를 RAID 1 으로 진행해 보겠습니다. 설치 버전은 24.04 버전입니다. RAID 1은 콘솔이 아니라 설치 과정의 UI 환경에서 설정하겠습니다. 목차Ⅰ. 리눅스 시스템 로그의 정의Ⅱ. 사용 목적에 따른 단순 분류Ⅲ. 시스템 로그 분류표(종류)🔲 리눅스 시스템 로그 트리맵🔲 로그 파일 위치는 설정에 따라 다름 ✅ 가상머신 생성 우분투 24.04 버전을 다운로드…

  • Linux란? 리눅스의 특징 및 리눅스의 종류

    목차Ⅰ. 리눅스 시스템 로그의 정의Ⅱ. 사용 목적에 따른 단순 분류Ⅲ. 시스템 로그 분류표(종류)🔲 리눅스 시스템 로그 트리맵🔲 로그 파일 위치는 설정에 따라 다름■ ‘Linux’란? -simple ‘Linux’ 는 유닉스의 무료 버전(오픈소스)으로 이해하면 된다.  유닉스는1969년 벨 연구소에서 만들어졌습니다.  리눅스는 1991년 8월 리누스 토르발스가 어셈블리어로 리눅스 커널(kernel) 0.01 버전을 만들면서 시작되었습니다. 1992년에 0.02 버전이 만들어지면서 인터넷에…

  • 셸 스크립트란? 셸과 셸 프롬프트&bash shell

    목차Ⅰ. 리눅스 시스템 로그의 정의Ⅱ. 사용 목적에 따른 단순 분류Ⅲ. 시스템 로그 분류표(종류)🔲 리눅스 시스템 로그 트리맵🔲 로그 파일 위치는 설정에 따라 다름 ▥ 셸 스크립트란(shell script)? 1. 셸이란? 키보드에 입력한 명령어를 운영체제에 전달해서 전달한 명령어를 실행하게 하는 프로그램이다. 2. 셸 프롬프트 셸 프롬프트는 셸이 입력 가능한 상태일 때에만 나타난다. 달러 ($)는 일반…

  • [Linux] Certbot 설치 및 갱신 설정: Let’s Encrypt 인증서

    웹사이트에서 HTTPS를 활성화하려면 인증 기관(CA)에서 인증서를 설치해야 합니다. Let’s Encrypt는 2억 2500 만 개의 사이트에 TLS 인증서를 제공하는 비영리 인증 기관(CA)으로 제공하는 Certbot 설치를 통해 무료로 인증서를 발급받을 수 있습니다. CentOS, Ubuntu, Rocky Linux 등 Shell을 이용할 수 있는 사용자는 Certbot ACME 클라이언트를 사용하는 것을 권장하고 있습니다. 목차Ⅰ. 리눅스 시스템 로그의 정의Ⅱ. 사용…

  • 리눅스 톰캣 설치

    리눅스 톰캣 설치(Ver 9.0.83)를 진행해 보겠습니다. 목차Ⅰ. 리눅스 시스템 로그의 정의Ⅱ. 사용 목적에 따른 단순 분류Ⅲ. 시스템 로그 분류표(종류)🔲 리눅스 시스템 로그 트리맵🔲 로그 파일 위치는 설정에 따라 다름1. wget 설치 먼저 레드헷 계열에서 사용하는 패키지 매니저인 yum으로 wget 설치를 진행합니다. wget은 웹 서버로부터 컨텐츠를 가져오는 프로그램입니다. 2. 리눅스 톰캣 설치하기: Apach Tomcat…

답글 남기기

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

Prove your humanity: 1   +   4   =