리눅스 log 확인
1. /var/log/messages (시스템의 표준 메시지 기록)
- 시스템에서 발생하는 표준 메시지가 기록되는 파일이다.
- root 사용자만 열람할 수 있다.
- 날짜 및 시간, 메시지가 발생한 호스트명, 메시지를 발생한 내부 시스템이나 응용 프로그램의 이름, 발생된 메시지가 ':'으로 구분되어 기록된다.
yhjeong@ubuntu:/$ sudo cat /var/log/messages
May 6 16:43:26 ubuntu rsyslogd: [origin software="rsyslogd" swVersion="8.16.0" x-pid="23118" x-info="http://www.rsyslog.com"] start
May 6 16:43:26 ubuntu rsyslogd: rsyslogd's groupid changed to 108
May 6 16:43:26 ubuntu rsyslogd: rsyslogd's userid changed to 104
May 6 16:43:26 ubuntu rsyslogd-2007: action 'action 11' suspended, next retry is Wed May 6 16:43:56 2020 [v8.16.0 try http://www.rsyslog.com/e/2007 ]
* Ubuntu에서는 '/var/log/messages' 파일이 안 보이는 경우가 있다. 이때,'/etc/rsyslog.d/50-default.conf ' 파일의 주석 일부를 해제해 준 후, 관련 데몬을 재시작하면 정상적으로 'messages' 로그파일을 열람할 수 있다.
vi 편집기를 이용하여, 이 부분의 주석(#)을 제거해 준다.
yhjeong@ubuntu:/$ sudo vi /etc/rsyslog.d/50-default.conf
*.=info;*.=notice;*.=warn;\
...
...
mail,news.none -/var/log/messages
# Some "catch-all" log files.
#
#*.=debug;\
# auth,authpriv.none;\
# news.none;mail.none -/var/log/debug
*.=info;*.=notice;*.=warn;\
auth,authpriv.none;\
cron,daemon.none;\
mail,news.none -/var/log/messages
편집이 완료되면 파일을 저장한 후(esc + wq! 입력), 다음과 같은 명령어로 관련 데몬(Daemon)을 재시작한다.
yhjeong@ubuntu:/$ sudo service rsyslog restart
2. /var/log/secure (인증 기반 접속 관련 기록)
- 인증과 관련된 로그가 기록된다.
- 주로 로그인, tcp_wrappers, xinetd 관련 로그가 쌓인다.
3. /var/log/dmesg (부팅 기록)
- 시스템이 부팅할 때 출력되었던 로그가 기록된다.
- 보통 커널 부트 메시지 로그라고 한다.
4. /var/log/maillog (메일 관련 기록)
- sendmail과 같은 메일 작업이 기록되는 로그이다.
5. /var/log/xferlog (FTP 접속 관련 기록)
- FTP 접속과 관련된 작업이 기록되며, 총 14개의 영역으로 구성되어 있다.
6. /var/log/cron (cron 관련 정보 기록)
- cron 관련 정보가 기록되는 파일이다.
7. /var/log/boot.log (부팅 시 동작하는 데몬 정보 기록)
- 부팅 시 발생하는 메시지가 기록되는 파일이다.
- 부팅 시 동작하는 데몬의 정보가 기록된다.
8. /var/log/lastlog (사용자의 접속 기록) = lastlog
- telnet이나 ssh를 통해 들어오는 사용자의 마지막 정보가 기록된다.
- 바이너리 파일로 기록되어 있어 바로 열람할 수 없다.
- 'lastlog' 명령어로 확인 가능하다.
root@ubuntu:/var/log# lastlog
Username Port From Latest
root **Never logged in**
daemon **Never logged in**
bin **Never logged in**
sys **Never logged in**
sync **Never logged in**
games **Never logged in**
man **Never logged in**
lp **Never logged in**
mail **Never logged in**
news **Never logged in**
uucp **Never logged in**
proxy **Never logged in**
www-data **Never logged in**
lastlog 명령어
- 각각의 사용자가 마지막으로 로그인한 정보를 출력해 주는 명령어이다.
- 바이너리 파일인 '/var/log/lastlog' 파일의 내용을 보여주는 명령어이다.
* 주요 옵션 *
옵션 | 설명 |
-u 사용자명 | 특정 사용자에 대한 정보만 출력한다. |
-t 날짜 | 오늘부터 지정한 날짜만큼 거슬러 올라가 그 이후에 로그인한 사용자의 정보를 보여준다. |
9. /var/log/wtmp (사용자의 접속 기록) = last
- telnet이나 ssh를 통해 들어오는 사용자의 마지막 정보가 기록된다.
- 바이너리 파일로 기록되어 있어 바로 열람할 수 없다.
- 'last' 명령어로 확인 가능하다.
root@ubuntu:/var/log# last
wtmp begins Sun May 3 08:25:50 2020
last 명령어
- 실질적으로는 '/var/log/wtmp' 파일의 내용을 그대로 보여주는데, 해당 파일은 바이너리 형태이다.
- 이를 열람할 수 있게 해주는 명령어이다.
* 주요 옵션 *
옵션 | 설명 |
-f 파일명 | 로그 로테이션 설정이 되어있는 경우, 기본 로그 파일 이외의 다른 로그 파일의 기록을 볼 경우에 사용한다. |
-n 숫자 | 가장 최근부터 해당 숫자 값만큼만 출력한다. |
-t YYYYMMDDHHMMSS | 지정한 시간 이전에 로그인한 기록을 출력한다. |
-R | IP 주소나 호스트명을 출력하지 않는다. |
-a | 호스트명이나 IP 주소 필드를 맨 마지막에 출력한다. 일반적으로는 '-d' 옵션과 함께 사용된다. |
-d | 리눅스는 외부에서 접속한 기록을 IP 주소뿐만 아니라, 호스트 이름도 저장한다. 이 옵션을 사용하면 호스트 이름이 존재하는 경우에는 IP 주소를 호스트 이름으로 변환하여 출력한다. |
-F | 로그인 및 로그아웃 시간을 출력한다. |
-i | 접속한 호스트의 IP 주소로만 출력한다. |
-w | 사용자의 전체 이름이나 전체 도메인 이름을 전부 출력해 준다. |
10. /var/log/btmp (사용자의 접속 실패 기록) = lastb
-'/var/log/wtmp' 파일과는 정반대로, 사용자가 접속에 실패한 경우를 기록한다.
- 바이너리 파일로 기록되어 있어 바로 열람할 수 없다.
- 'lastb'라는 명령어로 확인한다.
lastb명령어
- 실질적으로는 '/var/log/btmp' 파일의 내용을 그대로 보여주는데, 해당 파일은 바이너리 형태이다.
- 이를 열람할 수 있게 해주는 명령어이다.
- root 사용자만 사용 가능하다.
- 기본적인 사용법은 last 명령어와 동일하다.
* 주요 옵션 *
옵션 | 설명 |
-f 파일명 | 로그 로테이션 설정이 되어있는 경우, 기본 로그 파일 이외의 다른 로그 파일의 기록을 볼 경우에 사용한다. |
-n 숫자 | 가장 최근부터 해당 숫자 값만큼만 출력한다. |
-t YYYYMMDDHHMMSS | 지정한 시간 이전에 로그인한 기록을 출력한다. |
-R | IP 주소나 호스트명을 출력하지 않는다. |
-a | 호스트명이나 IP 주소 필드를 맨 마지막에 출력한다. 일반적으로는 '-d' 옵션과 함께 사용된다. |
-d | 리눅스는 외부에서 접속한 기록을 IP 주소뿐만 아니라, 호스트 이름도 저장한다. 이 옵션을 사용하면 호스트 이름이 존재하는 경우에는 IP 주소를 호스트 이름으로 변환하여 출력한다. |
-F | 로그인 및 로그아웃 시간을 출력한다. |
-i | 접속한 호스트의 IP 주소로만 출력한다. |
-w | 사용자의 전체 이름이나 전체 도메인 이름을 전부 출력해 준다. |
지금까지 리눅스의 log 파일 및 명령어에 대해 알아보았다.