리눅스 로그 파일 개요 및 주요 종류
리눅스 시스템은 안정성과 보안 유지를 위해 다양한 로그 파일을 생성하고 관리합니다. 이 로그들은 시스템 관리자에게 문제 해결, 성능 모니터링, 보안 감사 등에 필수적인 정보를 제공합니다.
대부분의 로그 파일은 /var/log
디렉토리에 저장됩니다.
📁 /var/log 디렉토리 개요
/var/log
는 시스템의 모든 로그 파일이 저장되는 표준 위치입니다. 이 디렉토리에는 각 서비스/애플리케이션별 하위 디렉토리나 로그 파일이 존재합니다.
오래된 로그는 logrotate
서비스에 의해 자동으로 압축되거나 삭제되어 디스크 공간을 효율적으로 관리합니다.
📝 주요 시스템 로그 파일
/var/log/syslog
(Debian/Ubuntu) 또는/var/log/messages
(CentOS/RHEL)- 내용: 시스템 전반적인 활동(커널 메시지, 데몬 알림, 네트워크 이벤트 등)을 기록합니다.
- 특징: 확인 우선순위가 높은 로그 파일입니다.
- 예시:
May 22 01:00:01 hostname kernel: [1234.567890] EXT4-fs (sda1): mounted filesystem with ordered data mode. May 22 01:00:05 hostname systemd[1]: Starting Apache HTTP Server...
/var/log/auth.log
(Debian/Ubuntu) 또는/var/log/secure
(CentOS/RHEL)- 내용: 사용자 인증 및 권한 부여 활동을 기록합니다.
- 특징: 로그인 시도,
sudo
사용, SSH 접속 등 보안 관련 정보가 담겨 있습니다. - 예시:
May 22 01:05:01 hostname sshd[1234]: Accepted password for user1 from 192.168.1.100 port 54321 ssh2 May 22 01:05:10 hostname sshd[9876]: Failed password for invalid user from 203.0.113.5 port 2222 ssh2
/var/log/kern.log
- 내용: 커널 메시지, 드라이버 오류, 하드웨어 문제 등을 기록합니다.
- 특징: 낮은 수준의 시스템 문제 진단에 유용합니다.
- 예시:
May 22 01:10:01 hostname kernel: [2345.678901] usb 1-1: new full-speed USB device number 2 using ohci-hcd
/var/log/dmesg
- 내용: 시스템 부팅 시 출력된 모든 커널 메시지를 담고 있습니다.
- 특징: 하드웨어 감지, 드라이버 로딩 확인에 유용합니다.
- 확인:
dmesg | less
또는dmesg -H
/var/log/boot.log
- 내용: 부팅 시 실행된 서비스의 상태를 기록합니다.
- 특징: 서비스가 정상적으로 시작되었는지 여부를 확인할 수 있습니다.
- 예시:
[ OK ] Started OpenSSH server. [FAILED] Failed to start Apache HTTP Server.
/var/log/dpkg.log
(Debian/Ubuntu)- 내용: 패키지 설치/제거/업데이트 기록을 담고 있습니다.
- 특징: 패키지 변경 이력을 추적할 수 있습니다.
- 예시:
2025-05-22 01:15:01 install apache2:amd64 <none> 2.4.52-1ubuntu4.1
🌐 주요 애플리케이션 및 서비스 로그 파일
- Apache 웹 서버
/var/log/apache2/access.log
: 클라이언트 요청 기록 (트래픽 분석에 유용)/var/log/apache2/error.log
: 서버의 오류 및 경고 기록- 예시 (access.log):
192.168.1.10 - - [22/May/2025:01:20:00 +0900] "GET /index.html HTTP/1.1" 200 1234 "-" "Mozilla/5.0"
- 예시 (error.log):
[Thu May 22 01:21:00.123456 2025] [core:error] ... File does not exist: /var/www/html/nonexistent.html
- Nginx 웹 서버
/var/log/nginx/access.log
/var/log/nginx/error.log
- 예시 (access.log):
192.168.1.10 - - [22/May/2025:01:25:00 +0900] "GET /api/data HTTP/1.1" 200 567 "-" "PostmanRuntime/7.29.0"
- 예시 (error.log):
2025/05/22 01:26:00 [error] ... open() "/usr/share/nginx/html/favicon.ico" failed
- MySQL/MariaDB 데이터베이스
/var/log/mysql/error.log
- 내용: DB 시작/종료, 쿼리 오류, 경고 등을 기록합니다.
- 예시:
2025-05-22T01:30:00.123456Z 0 [System] [Server] /usr/sbin/mysqld starting as process 1234
- 메일 서버 (Postfix, Dovecot 등)
/var/log/mail.log
- 예시:
May 22 01:35:01 hostname postfix/smtpd[1234]: connect from unknown[192.168.1.100]
📌 기타 중요한 로그 파일
/var/log/lastlog
- 내용: 사용자의 마지막 로그인 시간을 기록하는 바이너리 파일입니다.
- 확인:
lastlog
명령어로 확인합니다.
/var/log/wtmp
및/var/run/utmp
wtmp
: 로그인/로그아웃 기록을 담고 있으며,last
명령어로 확인합니다.utmp
: 현재 로그인한 사용자를 기록하며,who
,w
명령어로 확인합니다.
🔍 로그 확인 팁
tail -f /var/log/syslog
: 실시간으로 로그를 확인할 때 사용합니다.grep ssh /var/log/auth.log
:/var/log/auth.log
파일에서 “ssh“라는 특정 키워드를 검색합니다.less /var/log/syslog
: 파일의 전체 내용을 페이지 단위로 확인할 때 유용합니다.
✅ 마무리
리눅스 로그는 시스템의 건강 상태를 파악하고, 문제 해결의 실마리를 제공하는 중요한 도구입니다. 주기적으로 로그를 점검하고, 명령어를 활용해 분석하는 습관은 좋은 시스템 관리자의 시작입니다.