본문 바로가기

리눅스-기초명령어/시스템 관리

log

1. log

시스템에서 일어나는 모든 사건이나 이벤트 등은 각 서비스별로 기록된다.

이러한 기록을 log라 부른다.

로그 분석은 시스템 관리 및 보안에 상당히 중요한 역할을 수행한다.

 

log 주요 파일

파일명 설명
/var/log/messages 표준 메시지가 기록되는 파일로 로그의 대부분이 이 파일에 쌓인다. root사용자만이 읽을 수 있다.
/var/log/secure 로그인 인증, 접속정보가 기록되는 파일
/var/log/dmesg 시스템이 부팅할 때 출력되는 로그가 기록되는 파일
/var/log/boot.log 시스템 부팅시 데몬들이 실행되며 기록되는 파일
/var/log/lastlog telnet이나 ssh를 이용해서 접속한 사용자의 마지막 정보가 기록되는 파일



2. rsyslog

rsyslog 데몬이 동작하면서 로그를 기록하고, 관련 환경설정은 /etc/rsyslog.conf 파일을 통해서 제어한다.



rsyslog 주요 파일

파일명 설명
/etc/rsyslog.conf rsyslogd 데몬의 환경 설정 파일이다.
/etc/sysconfig/rsyslog rsyslogd 데몬이 실행과 관련된 옵션이 설정되는 파일이다.
/usr/sbin/rsyslog 실제 rsyslogd 데몬 실행 명령이다.
/usr/lib/systemd/system/rsyslog.service systemctl 명령어에 의해 제어되는 유닛 파일이다.

 

systemctl -l status rsyslog

 

[root@rocky1 log]# systemctl status rsyslog
● rsyslog.service - System Logging Service
    Loaded: loaded (/usr/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled)
    Active: active (running) since Wed 2023-05-10 15:53:45 KST; 9min ago
      Docs: man:rsyslogd(8)
            https://www.rsyslog.com/doc/
  Main PID: 35360 (rsyslogd)
      Tasks: 3 (limit: 48582)
    Memory: 1000.0K
        CPU: 47ms
    CGroup: /system.slice/rsyslog.service
            └─35360 /usr/sbin/rsyslogd -n

rsyslog가 작동이 되어야 로그가 정상적으로 분류될 수 있다.

 

3. rsyslog.conf파일

facility는 일종의 서비스를 의미 하며 메시지를 발생기키는 프로그램의 유형이라고 볼 수 있다. priority는 위험의 정도를 나타내는데, 설정한 수준을 포함하여 높으면 메시지를 보낸다. 

 

사용법법

[facility].[priority]                          [action]

 

facility 종류

[facility] 설명
auth  login과 같이 인증프로그램 유형이 발생한 메시지 
authprive 개인 인증을 요하는 프로그램 유형이 발생한 메시지 
cron  cron, at과 같은 프로그램이 발생한 메시지 
daemon  telnet, ftp과 같이 daemon이 발생한 메시지 
kern 커널이 발생한 메시지 
lpr  프린트 유형의 프로그램이 발생한 메시지 
mail  mail 시스템이 발생한 메시지 
mark  syslogd에 의해 만들어지는 날짜 유형 
news  유즈넷 뉴스 프로그램 유형이 발생한 메시지 
syslog  syslog 프로그램이 유형이 발생한 메시지 
user  사용자 프로세스 
uucp  UUCP 시스템이 발생한 메시지 
local0 ~ local7 여분으로 남겨둔 유형 
* 모든 facility를 의미



priority 우선순위

[priority] 설명 
발생하는 모든 상황에 대한 메시지 
debug  프로그램을 디버깅할 때 발생하는 메시지 
info  통계, 기본정보 메시지 
notice  특별한 주의를 요하나 에러는 아닌 메시지 
warning  주의를 요하는 경고 메시지 
err  에러가 발생하는 경우의 메시지 
crit  크게 급하지는 않지만 시스템에 문제가 생기는 단계의 메시지 
alert 즉각적인 조정을 해야 하는 상황 
emerg  모든 사용자들에게 전달되어야 할 위험한 상황 




action 의 종류

action 설명 
file  해당 file에 내용을 추가 
@host  지정된 호스트로 메시지를 보냄
user 지정된 사용자의 스크린으로 메시지를 보냄 
로그인되어 있는 모든 사용자의 스크린으로 메시지를 보냄

 

직접 관련 프로그램.conf 로그 만들기

[root@rocky1 log]#  vi /etc/rsyslog.d/haproxy.conf #haproxy관련 로그

 

haproxy.conf 스크립트

local2.* /var/log/haproxy.log

 

사용예

*=crit;kern.non /var/log/critical

모든 facility가 발생하는 메시지 중에 crit 수준의 메시지만 /var/log/critical 파일에 기록하는데 커널이 발생하는 제외한다.

 

*emerg :omusrmsg:*

모든 emerg 수준 이상의 문제가 발생하면 모든 사용자에게 메시지를 전달한다.



priority의 나열은 [,]를 사용하며 facility.priority의 조합은 ;를사용하며 priority의 나열은[,]를 사용한다. priority앞에 =을 사용할경우 해당 수준 의 위험도와 같은 경우에만 메시지를 기록하고 !기호와 함께 사용할 경우 해당수준 만 제외할 때 사용한다. 

4. last

사용자 로그인 정보, 재부팅 정보는 /var/log/wtmp 파일에 저장된다.

이 파일의 내용을 출력하는 명령이 last이다.

 

사용법

lsat [옵션] [사용자명] [ttyn]

 

last

[root@rocky1 log]# last
root     pts/1        192.168.20.29    Wed May 10 13:02 - 13:02  (00:00)
root     pts/1        192.168.20.29    Wed May 10 12:55 - 12:55  (00:00)
root     tty2         tty2             Wed May 10 09:33   still logged in
reboot   system boot  5.14.0-162.23.1. Wed May 10 09:32   still running

 

last -x

 shutdown 상태 및 runlevel이 바뀐 상태 출력

[root@rocky1 log]# last -x
root     pts/1        192.168.20.29    Wed May 10 13:02 - 13:02  (00:00)
root     pts/1        192.168.20.29    Wed May 10 12:55 - 12:55  (00:00)
root     tty2         tty2             Wed May 10 09:33   still logged in
runlevel (to lvl 5)   5.14.0-162.23.1. Wed May 10 09:32   still running
reboot   system boot  5.14.0-162.23.1. Wed May 10 09:32   still running
shutdown system down  5.14.0-162.23.1. Tue May  9 18:20 - 09:32  (15:11)
root     tty2         tty2             Tue May  9 09:32 - down   (08:48)
runlevel (to lvl 5)   5.14.0-162.23.1. Tue May  9 09:32 - 18:20  (08:48)

 

5. lastb

last와 반대되는 개념의 명령으로 로그인에 실패한 정보를 /var/log/btmp에 기록하는데, 이 파일 내용을 출력하는 명령이다. last와 동일한 옵션을 가진다.



사용법

lastb [옵션] [사용자명]

 

lastb

[root@rocky1 log]# lastb
sad      pts/0                         Thu Apr 27 15:02 - 15:02  (00:00)
test     ssh:notty    ::1              Sun Apr 30 00:04 - 00:04  (00:00)
test     ssh:notty    ::1              Sun Apr 30 00:04 - 00:04  (00:00)
admin    ssh:notty    ::1              Sun Apr 30 00:03 - 00:03  (00:00)
admin    ssh:notty    ::1              Sun Apr 30 00:00 - 00:00  (00:00)

btmp begins Sun Apr 30 00:00:21 2023

 

6. lastlog

각각의 사용자가 마지막으로 로그인한 정보를 출력해주는 명령으로 바이너리 파일인 /var/log/lastlog의 내용을 출력한다.

 

사용법

lastlog [옵션]

 

옵션

옵션 설명
-t 지정한 날짜 단위 기간에 로그인 기록
-u 지정한 유저의 로그인 기록
-h 명령어 사용법 출력력

 

lastlog

[root@rocky1 log]# lastlog
Username         Port     From                                       Latest
root             pts/1    192.168.20.29                             Wed May 10 13:02:34 +0900 2023
bin                                                                 **Never logged in**
daemon                                                              **Never logged in**
adm                                                                 **Never logged in**
lp                                                                  **Never logged in**
sync                                                                **Never logged in**
shutdown                                                            **Never logg

 

lastlog -t 

[root@rocky1 www]# lastlog -t 15 # 15이내 접속한 기록
Username         Port     From                                       Latest
root             pts/2    192.168.20.29                             Fri May 12 10:36:48 +0900 2023
gdm              tty1                                               Fri May 12 09:09:57 +0900 2023
admin            pts/0                                              Thu May 11 13:04:20 +0900 2023
TEst             pts/0                                              Thu Apr 27 15:29:27 +0900 2023
natasha          pts/0                                              Thu Apr 27 17:20:15 +0900 2023
hugo             pts/0                                              Thu Apr 27 17:23:22 +0900 2023
QWERT            pts/0                                              Fri Apr 28 11:21:42 +0900 2023
webadmin1        pts/0                                              Thu May 11 18:14:04 +0900 2023

 

lastlog -u

[root@rocky1 www]# lastlog -u root # root의 접속기록
Username         Port     From                                       Latest
root             pts/2    192.168.20.29                             Fri May 12 10:36:48 +0900 2023

 

7. logger

 

명령행에서 로그 시스템에 메시지를 전송할 때 사용하는 명령으로 기본적으로는 /var/log/message 파일에 기록된다.

 

사용법

logger [option] [message]



옵션

옵션 설명
-i PID를 기록할 때 사용한다.
-f 저장되는 파일명 지정할 때 사용한다.
-t 지정한 태그를 함께 기록할 때 사용한다.
-s 표준 출력(모니터)에도 메시지를 출력한다.



예시

[root@rocky1 ~]# logger test | tail -3 /var/log/messages
May 10 16:05:01 rocky1 systemd[1]: sysstat-collect.service: Deactivated successfully.
May 10 16:05:01 rocky1 systemd[1]: Finished system activity accounting tool.
May 10 16:05:09 rocky1 root[22834]: test

 

local2 로그 확인

[root@rocky1 log]# logger -p local2.err locallog hi
[root@rocky1 log]# tail -f /var/log/haproxy.log
May 10 16:25:28 rocky1 root[37382]: locallog hi
May 10 16:27:06 rocky1 root[37464]: locallog hi

 

'리눅스-기초명령어 > 시스템 관리' 카테고리의 다른 글

journalctl  (0) 2023.09.01
로그 로테이트 (logrotate)  (2) 2023.09.01