728x90
728x170
로그 관련 파일 & 명령어
로그 파일
- CentOS 7에서 사용되고 있는 대표적인 몇 가지의 로그 파일에 대하여 정리해본다.
- 로그 파일은 /var/log 디렉터리에 위치하고 있다.
로그 파일 | 설명 |
/var/log/messages | - 시스템에서 발생한 표준 메시지가 기록되는 파일 - root만이 읽을 수 있도록 설정되어 있다. - 날짜 및 시간, 메시지가 발생한 호스트명, 메시지를 발생시킨 내부 시스템이나 응용 프로그램의 이름, 발생된 메시지 등이 콜론(:)으로 구분되어 순서대로 기록된다. |
/var/log/secure | - 인증(Authentication)에 기반한 접속과 관련된 로그가 기록되는 파일 - 보통 로그인(telnet 또는 ssh), tcp_wrappers, xinetd 관련 로그가 쌓인다. |
/var/log/dmesg | - 시스템이 부팅할 때 출력되었던 로그가 기록된다. - 보통 커널 부트 메시지 로그(Kernel Boot Message Log)라고 한다. |
/var/log/maillog | - sendmail, dovecot 등 메일 관련 작업이 기록되는 파일 |
/var/log/xferlog | - FTP 접속과 관련된 작업이 기록되는 파일 - 로그 포맷은 총 14개의 영역으로 구성되어 있다. => current-time, transfer-time, remote-host, file-size, file-name, transfer-type, special-action-flag, direction, access-mode, username, service-name, authentication-method, authentication-user-id, completion-status |
/var/log/cron | cron 관련 정보가 기록되는 파일 |
/var/log/boot.log | - 부팅 시 발생되는 메시지가 기록된 파일 - 보통 부팅 시 동작하는 데몬 관련 정보가 기록된다. |
/var/log/lastlog | - telnet이나 ssh를 이용해서 접속한 각 사용자의 마지막 정보가 기록되는 파일 - 바이너리 파일로 되어 있다. - lastlog 라는 명령으로 확인할 수 있다. |
/var/log/wtmp | - 콘솔, telnet, ftp 등을 이용하여 접속한 사용자의 기록 과 관련된 로그가 쌓이는 파일 - 바이너리 파일로 되어 있다. - last 라는 명령으로 확인할 수 있다. |
/var/log/btmp | - wtmp 와 반대되는 로그 - 접속이 실패한 경우, 관련된 로그가 기록되는 파일 - 바이너리 파일로 되어 있다. - lastb 라는 명령으로 확인할 수 있다. |
관련 명령어
① last
명령어 설명
- /var/log/wtmp 파일이 내용을 확인하는 명령어
- 재부팅한 정보는 reboot 옵션을 지정하면 확인할 수 있다.
- 인자값으로 정수값을 줄 경우, 로컬의 특정 터미널로 로그인한 정보를 확인할 수 있다.
사용법
$ last [option] 사용자명 [ttyn]
주요 옵션
옵션 | 설명 |
-f 파일명 | 로그 로테이션이 설정이 되어 있는 경우, 기본 로그 파일 이외의 다른 파일의 기록을 볼 경우에 사용한다. |
-n 숫자 | - 가장 최근부터 해당 숫자값 만큼만 출력한다. - -숫자 옵션과 같다. |
-t YYYYMMDDHHMMSS | 지정한 시간 이전에 로그인한 기록을 출력한다. |
-R | IP 주소나 호스트명을 출력하지 않는다. |
-a | - 호스트명이나 IP 주소 필드를 맨 마지막에 출력한다. - 일반적으로 -d 옵션과 함께 사용한다. |
-d | 리눅스는 외부에서 접속한 기록을 IP 주소 뿐만 아니라 호스트 이름도 지정하는데, 이 옵션을 사용하면 호스트 이름이 존재하는 경우에는 IP 주소를 호스트 이름으로 변환하여 출력한다. |
-F | 로그인 및 로그아웃 시간을 출력하는 옵션 |
-i | 접속한 호스트의 IP 주소로만 출력하는 옵션 |
-w | 사용자의 전체 이름이나 전체 도메인 이름을 전부 출력하는 옵션 |
사용 예
- /var/log/wtmp 가 만들어진 후 관련 정보 출력
$ last
- starrykss 사용자의 로그인 정보 출력
$ last starrykss
- 시스템이 재부팅된 정보 출력
$ last reboot
- 가장 최근에 재부팅한 정보 하나만 출력
$ last -1 reboot
- /var/log/wtmp.1 파일의 정보 출력
$ last -f /var/log/wtmp.1
- /dev/tty2 로 로그인한 정보 출력
$ last 2
② lastlog
명령어 설명
- 각각의 사용자가 마지막으로 로그인한 정보를 출력해주는 명령
- 바이너리 파일인 /var/log/lastlog 의 내용을 출력한다.
사용법
$ lastlog [option]
주요 옵션
옵션 | 설명 |
-u 사용자명 | - 특정 사용자에 대한 정보만 출력 - --user |
-t 날짜 수 | - 오늘부터 지정한 날짜만큼 거슬러 올라가 그 이후에 로그인한 사용자의 정보를 보여줌. - --time |
-b 날짜 수 | - 오늘을 기준으로 지정한 날짜 수 이전에 최종적으로 로그인한 사용자 정보를 출력함. - --before |
사용 예
- 모든 사용자의 최종 로그 기록 출력
$ lastlog
- starrykss 사용자의 최종 로그 기록 출력
$ lastlog. -u starrykss
- 최근 3일 내에 로그인한 사용자의 기록 출력
$ lastlog -t 3
- 최근 3일 이전에 로그인한 사용자의 기록 출력
$ lastlog -b 3
③ lastb
명령어 설명
- last 와 반대되는 개념의 명령
- 로그인에 대한 실패 정보는 /var/log/btmp 에 기록되는데, 이 파일의 내용을 출력하는 명령
- 기본적인 사용법은 last 명령과 동일하지만, root만 사용 가능하다.
사용법
# lastb [option] [사용자명]
주요 옵션
옵션 | 설명 |
-f 파일명 | 로그 로테이션이 설정이 되어 있는 경우, 기본 로그 파일 이외의 다른 파일의 기록을 볼 경우에 사용한다. |
-n 숫자 | - 가장 최근부터 해당 숫자값 만큼만 출력한다. - -숫자 옵션과 같다. |
-t YYYYMMDDHHMMSS | 지정한 시간 이전에 로그인한 기록을 출력한다. |
-R | IP 주소나 호스트명을 출력하지 않는다. |
-a | - 호스트명이나 IP 주소 필드를 맨 마지막에 출력한다. - 일반적으로 -d 옵션과 함께 사용한다. |
-d | 리눅스는 외부에서 접속한 기록을 IP 주소 뿐만 아니라 호스트 이름도 지정하는데, 이 옵션을 사용하면 호스트 이름이 존재하는 경우에는 IP 주소를 호스트 이름으로 변환하여 출력한다. |
-F | 로그인 및 로그아웃 시간을 출력하는 옵션 |
-i | 접속한 호스트의 IP 주소로만 출력하는 옵션 |
-w | 사용자의 전체 이름이나 전체 도메인 이름을 전부 출력하는 옵션 |
사용 예
- 로그인 실패 정보 출력
# lastb
- starrykss 사용자의 로그인 실패 기록 출력
# lastb starykss
- 가장 최근에 로그인을 실패한 3개 기록 출력
# lastb -3
- /var/log/btmp.1 로그 기록 출력
# lastb -f /var/log/btmp.1
- /dev/tty3 에서의 로그인 실패 기록 출력
# lastb 3
④ dmesg
명령어 설명
- 커널 링 버퍼(Kernel Ring Buffer)의 내용을 출력하고 제어하는 명령
- 커널 링 버퍼(Kernel Ring Buffer) : 커널의 동작과 관련된 메시지를 기록해주는 영역
사용법
# dmesg [option]
주요 옵션
옵션 | 설명 |
-C | 커널 링 버퍼에 저장된 메시지를 출력한 후에 지움. |
사용 예
- 커널 링 버퍼에 저장된 메시지를 출력함.
# dmesg
- 커널 링 버퍼에 저장된 메시지를 전부 지움.
# dmesg -C
⑤ logger
명령어 설명
- 명령행에서 로그 시스템에 메시지를 전송할 때 사용하는 명령
- 기본적으로 /var/log/messages 파일에 기록된다.
사용법
# logger [option] [message]
주요 옵션
옵션 | 설명 |
-i | PID를 기록할 때 사용한다. |
-f | 저장되는 파일명을 지정할 때 사용한다. |
-t | 지정한 태그(Tag)를 함께 기록할 때 사용한다. |
-s | 표준 출력(모니터)에도 메시지를 출력한다. |
사용 예
- /var/log/messages 파일에 'CentOS 7' 이라는 메시지가 저장된다.
# logger CentOS 7
- /var/log/messages 파일에 'Hello Linux' 라는 메시지가 저장된다.
- PID를 기록한다.
# logger -i -f /var/log/messages 'Hello Linux'
- /var/log/messages 파일에 'Success!' 라는 메시지가 저장된다.
- PID와 hack 이라는 태그도 덧붙여서 기록한다.
# logger -i -t hack 'Success!'
⑥ logrotate
명령어 설명
- 로그 파일을 여러 개로 분할해주는 프로그램
- 로그 파일의 자동 로테이션, 압축 기능, 제거 등의 기능을 지원한다.
- 각각의 로그 파일은 하루, 일주일, 한 달 단위로 로테이션을 할 수 있다.
- 시스템과 관련된 기본적인 로그 설정은 /etc/logrotate.conf 파일에서 할 수 있다.
- 명령행에서 logrotate 를 직접 사용 가능하다.
- 현재 리눅스에서는 cron에 의해 스케쥴링 되어 실행되고 있으며, /etc/cron.daily 디렉터리에 등록되어 있다.
사용법
# logrotate [option] config_file
주요 옵션
옵션 | 설명 |
-f | - 강제로 환경 설정 파일을 읽어들여서 실행한다. - --force |
사용 예
# logrotate -f /etc/logrotate.conf
/etc/logrotate.conf 의 주요 설정
# cat /etc/logrotate.conf
# see "man logrotate" for details
# rotate log files weekly
weekly
# keep 4 weeks worth of backlogs
rotate 4
# create new (empty) log files after rotating old ones
create
# use date as a suffix of the rotated file
dateext
# uncomment this if you want your log files compressed
#compress
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d
# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {
monthly
create 0664 root utmp
minsize 1M
rotate 1
}
/var/log/btmp {
missingok
monthly
create 0600 root utmp
rotate 1
}
주요 항목
- weekly
- 로그 파일을 일주일마다 로테이트(Rotate)
- 가장 맨 위에 등록되어 있는 경우 특별히 명시하지 않은 로그 파일들은 이 파일의 적용을 받는다.
- 기간과 관련된 옵션
- daily
- weekly
- monthly
- yearly
- rotate 4
- 최대 4번까지 rotate 를 하는 설정
- 기본 logfile, logfile.1, logfile.2, logfile.3, logfile.4 형태로 생성된다.
- create
- 로테이트를 한 후에 비어 있는 로그 파일을 생성하도록 설정하는 항목
- dateext
- 로테이션으로 생성되는 로그 파일에 해당 날짜를 덧붙여서 생성하는 항목
- 예) maillog : maillog-20150513 형태로 생성
- compress
- 로테이트한 후에 생성된 로그 파일에 대해 압축할 때 사용하는 항목
- include /etc/logrotate.d
- /etc/logrotate.d 디렉터리 안에 설정된 파일에 대해서도 로테이트를 적용하는 설정
- nomissingok
- 로그 파일이 존재하지 않은 경우에 에러 메시지 출력
- 기본값으로 설정되어 있다.
- missingok
- 로그 파일이 존재하지 않은 경우에 에러 메시지를 출력하지 않고 다음 파일로 이동한다.
/var/log/wtmp {
monthly
create 0664 root utmp
minsize 1M
rotate 1
}
- 로그 파일명을 명시하면 별도로 지정이 가능하다.
- /var/log/wtmp 는 한 달마다 로테이트 하지만, 파일 크기가 1MB 가 되면 그 이전이라도 로테이트를 실행한다.
- 파일 생성 시에 허가권 값은 664, 소유자는 root, 소유 그룹은 utmp로 설정
- 로테이션으로 생성되는 백로그 파일은 1개만 생성
설정 예
/var/log/httpd/access.log {
rotate 5
mail starrykss@naver.com
size 100k
missingok
dateet
postrotate
/usr/bin/killall -HUP httpd
endscript
}
- /var/log/httpd/access.log 파일에 대한 로테이션 설정을 파일의 크기가 100k일 때 설정한 내용.
- size 옵션
- 기간을 지정하는 daily, weekly, monthly, yearly 와 함께 사용할 수 없음.
- mail 항목
- 로그 파일이 없을 때 지정한 주소로 메일을 보내도록 설정할 수 있음.
- postrotate~endscript
- 로그 파일이 로테이트된 후에 실행될 명령어를 작성할 때 사용함.
관련 파일 : /var/lib/logrotate/logrotate.status
- 각 로그 파일별로 로테이션된 날짜가 기록된 파일
# cat /var/lib/logrotate/logrotate.status
logrotate state -- version 2
"/var/log/yum.log" 2021-2-14-18:0:0
"/var/log/cups/page_log" 2021-2-14-18:0:0
"/var/log/firewalld" 2021-2-14-18:0:0
"/var/log/cups/error_log" 2021-2-14-18:0:0
"/var/log/boot.log" 2021-2-25-17:49:2
"/var/log/cups/access_log" 2021-2-21-19:28:2
"/var/log/chrony/*.log" 2021-2-14-18:0:0
"/var/log/wtmp" 2021-2-14-18:0:0
"/var/log/spooler" 2021-2-21-19:28:2
"/var/log/btmp" 2021-2-14-18:0:0
"/var/log/iscsiuio.log" 2021-2-14-18:0:0
"/var/log/maillog" 2021-2-21-19:28:2
"/var/log/libvirt/libvirtd.log" 2021-2-14-18:0:0
"/var/log/libvirt/qemu/*.log" 2021-2-14-18:0:0
"/var/log/wpa_supplicant.log" 2021-2-14-18:0:0
"/var/log/secure" 2021-2-21-19:28:2
"/var/log/numad.log" 2021-2-14-18:0:0
"/var/log/ppp/connect-errors" 2021-2-14-18:0:0
"/var/log/messages" 2021-2-21-19:28:2
"/var/account/pacct" 2021-2-14-18:0:0
"/var/log/cron" 2021-2-21-19:28:2
728x90
그리드형(광고전용)
'Certificate > Linux Master' 카테고리의 다른 글
[리눅스마스터 1급 실기] DNS 서버 설정 (named.conf) (0) | 2022.04.10 |
---|---|
[리눅스마스터 1급 실기] 메일 관련 작업 (/etc/mail/virtusertable) (2) | 2022.04.10 |
[리눅스마스터 1급 실기] 웹 서버 관련 설정 (2) | 2022.04.10 |
[리눅스마스터 1급 실기] crontab 설정 (0) | 2022.04.10 |
[리눅스마스터 1급 실기] /etc/fstab (1) | 2022.04.10 |
[리눅스마스터 1급 실기] 배점/정답 분석 (7개년, 2015년~2021년) (0) | 2022.03.31 |
[리눅스마스터 1급 실기] 1501회 기출 문제 (0) | 2022.03.25 |
[리눅스마스터 1급 실기] 1502회 기출 문제 (0) | 2022.03.25 |