별의 공부 블로그 🧑🏻‍💻
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
그리드형(광고전용)
⚠️AdBlock이 감지되었습니다. 원할한 페이지 표시를 위해 AdBlock을 꺼주세요.⚠️
starrykss
starrykss
별의 공부 블로그 🧑🏻‍💻


📖 Contents 📖