강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

리눅스 로그 시스템의 이해와 활용 -2-

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

리눅스 로그 시스템의 이해와 활용 -2-

작성자 : (주)수퍼유저코리아, http://www.superuser.co.kr 서버팀

로그시스템의 이해와 활용

top


1. 리눅스 로그시스템 흐름도

2. 로그파일의 종류와 내용

3. /etc/syslog.conf 파일의 예

4. /etc/syslog.conf 파일의 이해와 활용

5. syslogdklogd의 시작과 종료

6. 로그파일의 로테이트를 위한 logrotated

7. 로테이트된 로그파일들의 실제 예

8. logrotated 관련 파일들

9. logrotated 설정파일의 이해와 활용

10. 활용1 : 중요로그기록 이중저장

11. 활용2 : 중요로그파일 원격실시간 저장


6. 로그파일의 로테이트를 위한 logrotated

top

 

ㅇ 로그자동관리를 위한 로테이트 처리

- crond에 의해서 주기적으로 실행되는 logrotated 데몬에 의해 수행됨.
- 로테이트(rotate)작업내용
. 로그파일 자르기(rotate), 보관하고, 삭제하고, 압축하고, 메일로 보내기등.
- 단, 해당 조건체크의 실행은 crond에 의해 주기적으로 자동실행되지만,
. 로테이트작업이 발생하기 위해서는 해당 조건에 해당되어야 함.
. 해당조건은 /etc/logrotate.conf파일과 /etc/logrotate.d/ 디렉토리내에 있는 파일들에서 설정.

ㅇ 로테이트(rotate) 처리

- 특정날짜 또는 특정용량이상이 되었을 때 로그파일을 로테이트(교체)한다.(size)

- 로테이트작업 직전과 직후에 특정작업을 수행할 수 있다.(prerotate/endscript,postrotate/endscript)

- 로테이트 작업을 하면서 압축을 하거나 하지않을 수 있다.(compress, nocompress)

- 로테이트 후에 보관할 파일의 수를 지정할 수 있다.(rotate)

- 로테이트 후에 생성되는 파일의 소유주와 퍼미션등을 설정할 수 있다.(create)

- 로테이트 후에 생성되는 파일의 확장자 임의로 지정할 수 있다.(extension)


7. 로테이트된 로그파일들의 실제 예

top


[root@edu]# ls -l /var/log/
합계 45620
-rw------- 1 root root 275 2월 14 11:40 boot.log
-rw------- 1 root root 324 2월 11 10:09 boot.log.1
-rw------- 1 root root 269 2월 3 09:43 boot.log.2
-rw------- 1 root root 721 1월 27 16:03 boot.log.3
-rw------- 1 root root 1046 1월 20 20:15 boot.log.4
-rw------- 1 root root 179056 2월 14 22:40 cron
-rw------- 1 root root 451656 2월 12 04:02 cron.1
-rw------- 1 root root 451951 2월 5 04:02 cron.2
-rw------- 1 root root 451647 1월 29 04:02 cron.3
-rw------- 1 root root 451656 1월 22 04:02 cron.4
-rw-r--r-- 1 root root 15922 12월 12 22:05 dmesg
-r-------- 1 root root 19136220 2월 14 22:40 lastlog
-rw------- 1 root root 1818881 2월 14 22:39 maillog
-rw------- 1 root root 4950358 2월 12 04:02 maillog.1
-rw------- 1 root root 4716323 2월 5 04:02 maillog.2
-rw------- 1 root root 5114028 1월 29 04:02 maillog.3
-rw------- 1 root root 5058371 1월 22 04:02 maillog.4
-rw------- 1 root root 517495 2월 14 22:40 messages
-rw------- 1 root root 998580 2월 10 15:52 messages.1
-rw------- 1 root root 1653245 2월 5 04:00 messages.2
-rw------- 1 root root 1276373 1월 29 04:00 messages.3
-rw------- 1 root root 1602436 1월 22 04:00 messages.4
-rw------- 1 root root 81232 2월 14 22:40 secure
-rw------- 1 root root 208676 2월 12 04:00 secure.1
-rw------- 1 root root 435757 2월 5 04:00 secure.2
-rw------- 1 root root 229603 1월 29 04:00 secure.3
-rw------- 1 root root 230319 1월 22 04:00 secure.4
-rw-rw-r-- 1 root utmp 2136960 2월 14 22:40 wtmp
-rw-r--r-- 1 root root 8569951 2월 14 22:35 xferlog
[mons@su020.suidc.com ~]$

 



8. logrotated 관련 파일들

top

 

구 ??분 위치 및 실행방법 설 ????????????명
logrotated데몬 /usr/sbin/logrotate logrotated 데몬파일
logrotated
주로그 파일
/etc/logrotate.conf logrotated의 주된 설정파일
개별 설정파일들에는 이 파일의 설정파일
의 내용이 global하게 적용됨
개별 설정파일 /etc/logrotate.d/* 개별 설정파일들의 저장 위치
/etc/logrotate.conf파일에서 불러들임.
cron 실행 /etc/cron.daily/logrotate crond 데몬에 의해/etc/cron.daily/logrotate
파일을 실행함.
이 파일의 실행으로 logrotated 데몬이
주기적(1일 1회, 주로 새벽 4시)으로 실행됨
상황파일 /var/lib/logrotate.status logrotate한 작업내역을 보관한 파일

ㅇ /etc/logrotate.conf파일은 logrotated데몬의 주 설정파일로서 global하게 적용되는 파일임.

ㅇ /etc/logrotate.d/ 디렉토리내에 존재하는 파일들은 개별 로그파일의 개별 logrotate설정파일

ㅇ /etc/logrotate.d/ 디렉토리내에 로그파일에 대한 추가파일을 설정해 두면 그 로그파일을 로테이트(rotate)처리를 할 수 있음.


9. logrotated 설정파일의 이해와 활용

top


ㅇ /etc/logrotate.conf 파일의 예

[root@fileserver1 /]# cat /etc/logrotate.conf

weekly
rotate 4
create 0600 root root

include /etc/logrotate.d

/var/log/wtmp {
monthly
create 0664 root utmp
rotate 1
}

- logrotated 데몬이 실행되면서 /etc/logrotate.conf파일을 읽어들여서 그 내용을 적용함.

- 위의 “include /etc/logrotate.d” 설정으로 인하여 /etc/logrotate.d 디렉토리에 존재하는 개별로그 파일들을
모두 읽어들여 적용함.



logrotated 설정파일의 이해와 활용

top


ㅇ /etc/logrotate.d/ 디렉토리내의 파일의 예

[root@fileserver1 /]# cat /etc/logrotate.d/syslog
/var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron {
monthly
compress
rotate 4
mail admin@superuser.co.kr
errors admin@superuser.co.kr
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
endscript
}
[root@fileserver1 /]#


logrotated 설정파일의 이해와 활용

top


ㅇ daily

해당 로그파일을 매일 로테이트 함.

ㅇ weekly
해당 로그파일을 매주 로테이트 함.

ㅇ monthly
해당 로그파일을 매월 로테이트 함.

ㅇ rotate 숫자
현재 로그파일을 제외한 숫자만큼까지의 로테이트된 파일을 보관함. 이전 로테이트된 파일은 삭제함.
예) “rotate 2”일 경우 해당로그파일이 secure라면
secure 파일(현재파일)과 secure.1파일, secure.2파일까지만 보관됨. 그 이전파일은 자동삭제.

ㅇ compress
순환된 로그파일이 gzip에 의해 압축됨. 예) messages.1.gz, secure.1.gz

ㅇ nocompress
순환된 로그파일이 압축되지 않고 원본상태로 저장됨. 예) messages.1, secure.1

ㅇ create 퍼미션 소유자 소유그룹
순환된 로그파일이 지정된 퍼미션을 가지고, 지정된 소유자와 소유그룹으로 생성됨.
예) create 600 root wheel


ㅇ errors 메일주소
로테이트 실행시 문제(에러)가 발생하면 관련 내용을 지정된 메일주소로 메일 발송함.

ㅇ mail 메일주소
로테이트된 후에 삭제되는 로테이트된 파일들을 지정한 메일주소로 보내게 됨.

ㅇ extension 확장자명
로테이트된 파일뒤에 지정된 확장자명을 붙여주게 됨. (로테이트파일의 개별 구분을 위한 것)
예) “extension kkk”라고 설정되었다면 messages.1.kkk, 또는 messages.1.ext.gz로 생성됨.

ㅇ ifempty
로테이트하고자 하는 원본파일의 용량이 0이라 하더라도 로테이트 시킴.(기본값)

ㅇ notifempty
로테이트하고자 하는 원본파일의 용량이 0이라면 로테이트하지 않음.

ㅇ prerotate/endscript
로테이트를 수행하기 이전에 prerotate와 endscript 사이의 내용을 실행함.

ㅇ postrotate/endscript
로테이트를 수행한 후에 postrotate와 endscript 사이의 내용을 실행함.
거의 대부분 syslogd 데몬을 재시작하기 위한 것임.

ㅇ size 용량크기
로테이트의 수행결과 로테이트된 파일의 크기가 지정한 용량크기 이상을 넘지 않도록 함.
예) size 200K, size 1024M


10. 활용1 : 중요로그기록 이중저장

top


ㅇ 시스템로그파일(messages)들 중요한 기록들을 별도 위치에 이중저장 한다.

1단계
: 별도로 저장 파일명과 저장위치를 결정하고 디렉토리를 생성한다.
예) /var/tmp/..hidden/..messages
/var/tmp/..hidden/..secure

[root@edu /]# mkdir /var/tmp/..hidden

2단계
: /etc/syslog.conf 파일의 내용을 수정한다.

*.info;mail.none;authpriv.none;cron.none /var/log/messages
*.info;mail.none;authpriv.none;cron.none /var/tmp/..hidden/..messages

authpriv.* /var/log/secure
authpriv.* /var/tmp/..hidden/..secure

3단계
: syslogd 데몬을 재시작한다.

[root@edu /]# /etc/rc.d/init.d/syslog restart
Shutting down kernel logger: [ OK ]
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
Starting kernel logger: [ OK ]
[root@edu /]#

4단계

: /var/tmp/..hidden/디렉토리에 ..messages파일과 ..secure파일이 생성되어 해당 로그가 기록되고 있는가를 확인한다.


11. 활용2 : 중요로그파일 원격실시간 저장

top


web_server.gif

ㅇ 웹서버 설정내용

- 작업1 : 원격로그서버에 대한 호스트 설정 : /etc/hosts 설정
192.168.100.1 logserver

- 작업2 : syslog.conf파일 수정 : /etc/syslog.conf 설정

*.info;mail.none;authpriv.none;cron.none /var/log/messages
*.info;mail.none;authpriv.none;cron.none @logserver
authpriv.* /var/log/secure
authpriv.* @logserver

- 작업3 : syslogd 데몬 재시작 : /etc/rc.d/init.d/syslog restart

ㅇ 원격로그서버 설정내용

- 작업1 : 웹서버에 대한 호스트 설정 : /etc/hosts 설정
192.168.10.1 webserver

- 작업2 : 원격에서 들어오는 로그메시지를 저장할 수 있도록 syslogd 데몬 재시작
방법1 : /sbin/syslogd ?r ?m 0
방법2 : /etc/sysconfig/syslog 파일내에 설정된 SYSLOGD_OPTIONS=“-m 0”을
SYSLOGD_OPTIONS=“-r ?m 0”로 변경한다.

- 확인작업 : 로그파일에 웹서버의 로그내용이 실시간으로 저장되고 있는가를 확인한다.


 
copyright.gif

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,043 명
  • 현재 강좌수 :  35,850 개
  • 현재 접속자 :  112 명