로그구성 및 로그모니터링하기
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 2,866 조회
- 0 추천
- 목록
본문
로그구성 및 로그모니터링하기
시스템관리자는 자기가 관리하는 서버의 로그파일을 항상 모니터링하고 또한 감시해야 한다.
그 중에서 telnet이나 ftp 또는 ssh등으로 23번포트, 21번포트, 22번포트등을 통해 들어오는 원격접속에 관련된 로그에 대하여 가장 예민하게 확인해야 한다.
이러한 원격접속에 관한 로그기록은 /etc/syslog.conf파일에 정의되어 있는 것 처럼/var/log/secure에 하고 있다.
이들에 관한 로그를 계속적으로 모니터링하고자 한다면, "tail -f /var/log/secure"라고 하면 된다.
이에 관련된 로그를 실시간으로 계속해서 보여주게 된다.
[root@RockyLinux ~]# tail -f /var/log/secure Jun 28 09:41:38 RockyLinux01 polkit-agent-helper-1[2914]: pam_unix(polkit-1:auth): user [sspark] has blank password; authenticated without it Jun 28 09:41:38 RockyLinux01 polkitd[955]: Operator of unix-session:4 successfully authenticated as unix-user:sspark to gain TEMPORARY authorization for action org.freedesktop.NetworkManager.settings.modify.hostname for unix-process:2788:19389 [nmtui] (owned by unix-user:sspark) Jun 28 09:41:50 RockyLinux01 su[2951]: pam_unix(su-l:session): session opened for user root(uid=0) by (uid=1000) Jun 28 09:43:04 RockyLinux01 su[2951]: pam_unix(su-l:session): session closed for user root Jun 28 09:45:42 RockyLinux01 sshd[1836]: pam_unix(sshd:session): session closed for user root Jun 28 09:45:51 RockyLinux01 sshd[3168]: Accepted password for root from 192.168.19.111 port 51112 ssh2 Jun 28 09:45:51 RockyLinux01 sshd[3168]: pam_unix(sshd:session): session opened for user root(uid=0) by (uid=0) Jun 28 13:44:35 RockyLinux01 useradd[39276]: failed adding user 'mysql', exit code: 9 Jun 28 14:14:00 RockyLinux01 atd[43141]: pam_unix(atd:session): session opened for user root(uid=0) by (uid=0) Jun 28 14:14:12 RockyLinux01 atd[43141]: pam_unix(atd:session): session closed for user root |
다음은 시스템로그파일이라고 하는 /var/log/messages 로그파일에 대한 실시간 모니터링방법이다.
즉 거의 모든 시스템에 관련된 중요한 로그(이벤트)들에 대한 기록은 모두 /var/log/messages에 남겨지게 된다.
/var/log/secure파일처럼 실시간으로 계속 모니터링하려면 "tail -f /var/log/messages"라고 하면 된다.
[root@RockyLinux ~]# tail -f /var/log/messages Jun 28 14:14:12 RockyLinux01 systemd[1]: session-7.scope: Consumed 11.505s CPU time. Jun 28 14:14:12 RockyLinux01 systemd-logind[961]: Session 7 logged out. Waiting for processes to exit. Jun 28 14:14:12 RockyLinux01 systemd-logind[961]: Removed session 7. Jun 28 14:32:00 RockyLinux01 cupsd[1001]: REQUEST localhost - - "POST / HTTP/1.1" 200 185 Renew-Subscription successful-ok Jun 28 14:32:43 RockyLinux01 chronyd[1012]: Received KoD RATE from 158.247.195.140 Jun 28 15:15:16 RockyLinux01 systemd[1]: Starting dnf makecache... Jun 28 15:15:16 RockyLinux01 dnf[44126]: 최근에 메타 자료 캐쉬가 새로 고쳐졌습니다.
Jun 28 15:15:16 RockyLinux01 systemd[1]: dnf-makecache.service: Deactivated successfully. Jun 28 15:15:16 RockyLinux01 systemd[1]: Finished dnf makecache. Jun 28 15:30:20 RockyLinux01 cupsd[1001]: REQUEST localhost - - "POST / HTTP/1.1" 200 185 Renew-Subscription successful-ok |
다음은 메일로그라고 하는 /var/log/maillog라는 로그파일에 대한 실시간 모니터링 방법이다.
sendmail이나 pop(qpopper)등으로 인하여 메일경유 또는 메일송수신에 관련된 기록은 /var/log/maillog파일에 기록을 하게된다.
앞에서 본 것 처럼 메일관련로그파일을 모니터링하려면 "tail -f /var/log/maillog"라고 하면 된다.
[root@RockyLinux ~]# tail -f /var/log/maillog Jun 23 12:45:02 RockyLinux01 sendmail[2188]: 35N3j2gb002188: from=root, size=9540, class=-60, nrcpts=1, msgid=<202306230345.35N3j2gb002188@RockyLinux01>, relay=root@localhost Jun 23 12:45:02 RockyLinux01 sendmail[2188]: 35N3j2gb002188: to=root, ctladdr=root (0/0), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=147540, relay=[127.0.0.1] [127.0.0.1], dsn=4.0.0, stat=Deferred: Connection refused by [127.0.0.1] Jun 27 12:24:02 RockyLinux01 sendmail[2325]: My unqualified host name (RockyLinux01) unknown; sleeping for retry Jun 27 12:25:02 RockyLinux01 sendmail[2325]: unable to qualify my own domain name (RockyLinux01) -- using short name Jun 27 12:25:02 RockyLinux01 sendmail[2325]: 35R3P2OR002325: from=root, size=10728, class=-60, nrcpts=1, msgid=<202306270325.35R3P2OR002325@RockyLinux01>, relay=root@localhost Jun 27 12:25:02 RockyLinux01 sendmail[2325]: 35R3P2OR002325: to=root, ctladdr=root (0/0), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=148728, relay=[127.0.0.1] [127.0.0.1], dsn=4.0.0, stat=Deferred: Connection refused by [127.0.0.1] Jun 28 10:45:03 RockyLinux01 sendmail[9657]: My unqualified host name (RockyLinux) unknown; sleeping for retry Jun 28 10:46:03 RockyLinux01 sendmail[9657]: unable to qualify my own domain name (RockyLinux) -- using short name Jun 28 10:46:03 RockyLinux01 sendmail[9657]: 35S1k3ab009657: from=root, size=15066, class=-60, nrcpts=1, msgid=<202306280146.35S1k3ab009657@RockyLinux>, relay=root@localhost Jun 28 10:46:03 RockyLinux01 sendmail[9657]: 35S1k3ab009657: to=root, ctladdr=root (0/0), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=153066, relay=[127.0.0.1] [127.0.0.1], dsn=4.0.0, stat=Deferred: Connection refused by [127.0.0.1]
|
다음은 /var/log/boot.log라는 시스템부팅메시지를 보관하고있는 부팅로그파일의 내용을 확인한 것이다.
즉 부팅시의 에러나 부팅시 장애등을 확인해보려면 부팅로그 (/var/log/boot.log) 파일을 살펴보면 된다.
[root@RockyLinux ~]# tail -f /var/log/boot.log Starting Virtualization qemu daemon... Starting Vsftpd ftp daemon... [ OK ] Started Vsftpd ftp daemon. [ OK ] Started Notify NFS peers of a restart. [ OK ] Finished Permit User Sessions. [ OK ] Started Deferred execution scheduler. [ OK ] Started Command Scheduler. Starting GNOME Display Manager... Starting Hold until boot process finishes up... [ OK ] Started GNOME Display Manager. |
/bin/dmesg라는 명령어를 다음과 같이 실행하여 부팅메시지를 확인할 수도 있다.
즉 dmesg라는 명령어를 통해서 관련 부팅시의 로그기록을 살펴보는 방법은 아래와 같다.
[root@RockyLinux ~]# dmesg | more [ 0.000000] Linux version 5.14.0-162.23.1.el9_1.x86_64 (mockbuild@dal1-prod-builder001.bld.equ.rockylinux.org) (gcc ( GCC) 11.3.1 20220421 (Red Hat 11.3.1-2), GNU ld version 2.35.2-24.el9) #1 SMP PREEMPT_DYNAMIC Tue Apr 11 19:09:37 UTC 20 23 [ 0.000000] The list of certified hardware and cloud instances for Enterprise Linux 9 can be viewed at the Red Hat Ec osystem Catalog, https://catalog.redhat.com. [ 0.000000] Command line: BOOT_IMAGE=(hd1,gpt2)/vmlinuz-5.14.0-162.23.1.el9_1.x86_64 root=/dev/mapper/rl-root ro resu me=/dev/mapper/rl-swap rd.lvm.lv=rl/root rd.lvm.lv=rl/swap rhgb quiet selinux=0 [ 0.000000] [Firmware Bug]: TSC doesn't count with P0 frequency! [ 0.000000] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers' [ 0.000000] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers' [ 0.000000] x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers' [ 0.000000] x86/fpu: xstate_offset[2]: 576, xstate_sizes[2]: 256 [ 0.000000] x86/fpu: Enabled xstate features 0x7, context size is 832 bytes, using 'standard' format. [ 0.000000] signal: max sigframe size: 1776 [ 0.000000] BIOS-provided physical RAM map: |
그리고 다음은 dmesg라는 명령어를 "dmesg | grep 관련문자" 와 같은 형식으로 사용한 예로서 부팅메시지들 가운데 원하는 부분만을 확인하고자할 때 사용한다.
다음 예는 부팅시에 Memory에 관한 로그기록을 보고자 한 것이다.
[root@RockyLinux ~]# dmesg | grep Memory [ 0.012035] Memory: 260860K/2080452K available (14344K kernel code, 6000K rwdata, 9208K rodata, 2744K init, 7196K bss, 153576K reserved, 0K cma-reserved) [ 0.152566] x86/mm: Memory block size: 128MB [root@RockyLinux ~]# |
마지막으로 시스템에는 크론(crond)과 예약작업(atd)에 관한 로그를 기록하는 파일이 존재하며 보는 바와같이 /var/log/cron에 존재한다.
crond은 시스템에 정기적으로 실행되는 것에 대한 설정을 가지고 지정된 시각에 실행하는 데몬이다.
즉 crond는 /usr/sbin/crond이며, 이 데몬에서 남겨지는 로그기록 파일은 /var/log/cron이다.
이를 모니터링하는 방법은 위와 동일하게 "tail -f /var/log/cron"으로 하면 된다.
[root@RockyLinux ~]# tail -f /var/log/cron Jun 28 13:01:01 RockyLinux01 CROND[38459]: (root) CMDEND (run-parts /etc/cron.hourly) Jun 28 14:01:01 RockyLinux01 CROND[42610]: (root) CMD (run-parts /etc/cron.hourly) Jun 28 14:01:01 RockyLinux01 run-parts[42610]: (/etc/cron.hourly) starting 0anacron Jun 28 14:01:01 RockyLinux01 run-parts[42610]: (/etc/cron.hourly) finished 0anacron Jun 28 14:01:01 RockyLinux01 CROND[42609]: (root) CMDEND (run-parts /etc/cron.hourly) Jun 28 14:14:00 RockyLinux01 atd[43141]: Starting job 3 (a0000301ad433a) for user 'root' (0) Jun 28 15:01:01 RockyLinux01 CROND[44029]: (root) CMD (run-parts /etc/cron.hourly) Jun 28 15:01:01 RockyLinux01 run-parts[44029]: (/etc/cron.hourly) starting 0anacron Jun 28 15:01:01 RockyLinux01 run-parts[44029]: (/etc/cron.hourly) finished 0anacron Jun 28 15:01:01 RockyLinux01 CROND[44028]: (root) CMDEND (run-parts /etc/cron.hourly) |
관련자료
-
이전
-
다음