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 시스템이 발생한 메시지 | |
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 |