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

리눅스 시스템로그구성 및 로그모니터링법

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문


icon01.gif리눅스 서버 구축하기

1. 시스템로그개론
2. 로그환경파일
3. 로그메몬 및 실행스크립트
4. 로그데몬 실행 및 종료
5. inetd (또는 xinetd)로그기록 파일 모니터링

6. 시스템로그 모니터링

7. 메일관련 로그 모니터링
8. 부팅시의 메시지 확인
9. cron 로그모니터링

icon04.gif 1. 시스템로그개론

시스템을 모니터링한다는 말의 의미는 여러 가지가 있을 수 있다.

하지만, 그의 대부분 시스템모니터은 시스템에서 남겨지는 로그파일을 통해서 이루어지게 된다.

즉, 시스템관리자로서 시스템을 모니터링하기 위해서는 로그파일을 반드시 확인하고 분석해야한다는 의미이다.

 

서버에는 여러개의 로그파일이 있으며 이들 로그를 남기는 데몬들또한 다양하다.

시스템로그데몬(syslogd), 메일데몬(sendmail등), 웹데몬(httpd), 네임데몬(named), 수퍼데몬(inetd, xinetd )등 매우다양하다.

하지만, 이들 로그파일들 중에서 가장 중요한 것이 당연히 시스템로그데몬(syslogd)에서 남겨지는 로그파일일 것이다.

 

따라서 여기서 살펴볼 것은 커널과 시스템로그에 대한 것으로서 서버관리자라면 반드시 거의 확인해야하는 것들이며, 이들 로그파일의 분석또한 굉장히 중요한 업무가 될 것이다.

그럼, 로그파일의 환경파일부터 살펴보도록 하자.


icon04.gif 2. 로그환경파일

/etc/syslogd.conf 파일은 시스템로그데몬(syslogd)이 실행이 될 때 참조되는 데몬으로서 관련된 로그파일들이 어떤 경우에 어떤파일에 남겨지는 가에 대한 설정을 가지고 있다.

아래의 예는 /etc/syslog.conf 파일의 예를 살펴본 것으로써, 각각의 로그파일이 어디에 남겨지는가에 대한 설명이 되어있다.

 

logmonitoring00.gif

즉, 예를 들면

A의 경우에는 kernel에 관련된 로그를 /dev/console (콘솔)에 뿌려주라는 것이며,

B의 경우에는 mail, 접속시의 인증등에 대한 로그를 /var/log/messages에 남겨라는 의미이고,

C의 경우에는 inetd(또는 xinetd)에 관련된 로그들을 /var/log/secure에 남겨라는 것이다.

이 경우 inetd에 관련된 데몬들은 /etc/inetd.conf 파일에 설정되어 있으며, 해당되는 데몬들은 telnet, ftp, finger등이다.

또한 xinetd로 업그레이드된 시스템에서는 이들 설정이 /etc/xinetd.d에 되어 있다.

 

D의 경우에는 메일에 관련된 로그를 /var/log/maillog에 남겨라는 의미가 되며,

E의 경우에는 시스템크론(crond)에 과련된 로그를 /var/log/cron에 남겨지게 된다.

F의 경우에는 시스템이 부팅될 때의 로그메시지로서 /var/log/boot.log파일에 남겨지게 된다.

시스템부팅 메시지는 dmesg란 명령어로 볼 수도 있으며 /var/log/dmesg란 파일을 직접 열어봐도 알 수 있다.

 

즉, 이와 같이 시스템에 관련된 로그들은 각각의 경우에 어떤파일에 남겨질 것인가를 로그메몬(syslogd)의 환경파일(/etc/syslog.conf)에 남겨두고 있다.

즉, 시스템로그데몬(syslogd)이 실행이 될 때(이 데몬은 시스템부팅시에 실행이됨) 환경파일(/etc/syslog.conf)을 읽게되며, 관련 로그를 설정된 곳의 파일에 남겨두게 된다.


icon04.gif 3. 로그메몬 및 실행스크립트

 

로그데몬은 아래의 예처럼 /sbin/syslogd에 존재하게 된다.

참고로, 서버관리자는 이 데몬파일의 사이즈 및 생성일자 및 파일퍼미션등의 관리를 해야한다.

크래킹을 당했을 때에는 이들 파일의 사이즈 및 퍼미션등이 변경되어었을 수가 있다.

이런 경우 대부분 tripwire라는 파일시스템무결성 검사툴을 설치하여 사용하는 것이 바람직할 것이다.

logmonitoring011.gif

 

그리고, 이 데몬을 실행시키려면 아래 보는 바와 같이 /etc/rc.d/init.d에 syslog라는 스크립트가 존재한다.

로그데몬을 실행시킬 때에는 이 파일을 통해서 실행시킬 수가 있다.

logmonitoring01.gif

 


icon04.gif 4. 로그데몬 실행 및 종료

/sbin/syslogd를 실행시키고 종료시키는 것은 /etc/rc.d/init.d/syslog라는 스크립트를 통해서 하면 된다.

물론, 데몬을 직접 실행시킬 수도 있지만, 스크립트를 통해서 실행시키는 것이 일반적이다.

로그데몬을 실행시킬 때에는 아래예를 보는 바와 같이 "syslog start"라고 하면 된다.

logmonitoring02.gif

 

그런후에 아래 예를 보는 바와같이 실행된 데몬을 ps로 확인해 본 것이다.

logmonitoring04.gif

 

syslogd 데몬을 재시작하려면 아래와 같이 start 대신에 restart라고 하면 된다.

logmonitoring012.gif

 

이번에는 이 데몬을 종료시켜 보겠다.

종료를 시킬 때에는 syslog stop이라고 하면 된다.

logmonitoring03.gif

 

이 데몬(syslogd)이 실행이 되었다라는 것의 의미는 무엇일까?

데몬의 위치와 실행 및 종료, 그리고 재시작등을 하였는데, 데몬이 실행된후에 어떤일을 하게되는지를 모른다면 곤란하지 않을까?

즉, syslogd란 데몬이 실행이 되었다라는 의미는 /etc/syslog.conf파일에 설정된 것처럼 관련된 이벤트가 발생을 했을 경우에 지정된 로그파일에 기록을 하게된다는 것을 의미한다.

 

자, 그럼 이들 로그파일을 자세히 살펴보도록 하자.


icon04.gif 5. inetd (또는 xinetd)로그기록 파일 모니터링

 

서버관리자는 자기가 관리하는 서버의 로그파일을 항상 감시하고 있데 된다.

그중에서 telnet이나 ftp 또는 ssh등으로 23번포트, 21번포트, 22번포트등을 타고 들어오는 접속에 관련된 로그가 가장 민감하지 않을까 생각한다.

이들 로그에 관한 기록을 하는 파일이 /etc/syslog.conf파일에 설정된 것 처럼 /var/log/secure이다.

이들에 관한 로그를 계속적으로 모니터링하고자 한다면, "tail -f /var/log/secure"라고 하면 된다.

이에 관련된 로그를 실시간으로 계속해서 보여주게 된다.

logmonitoring05.gif

 


icon04.gif 6. 시스템로그 모니터링

시스템에 관련된 중요한 이벤트들은 모두 /var/log/messages에 남겨지게 된다.

/var/log/secure파일처럼 계속적으로 모니터링을 하려면 "tail -f /var/log/messages"라고 하면 된다.

logmonitoring06.gif

 


icon04.gif 7. 메일관련 로그 모니터링

senmmail이나 pop(qpopper등)등으로 인하여 메일경유또는 메일송수신에 관련된 기록은 /var/log/maillog파일에 기록을 하게된다.

앞에서 본 것 처럼 메일관련로그파일을 모니터링하려면 "tail -f /var/log/maillog"라고 하면 된다.

logmonitoring07.gif


icon04.gif8. 부팅시의 메시지 확인

부팅시의 에러나 부팅시 장애등을 확인해 보려면 부팅로그(/var/log/boot.log)파일을 살펴보면 된다.

logmonitoring08.gif

하지만, 실제로 부팅시의 메시지(로그기록)를 확인할 때에는 대부분 /var/log/dmesg라는 파일을 살펴보는 것이 일반적이며, 이 파일(/var/log/dmesg)의 내용을 확인하는 명령어가 아래의 예처럼 /bin/dmesg에 존재한다.

logmonitoring081.gif

이 명령어를 통해서 관련 부팅시의 로그기록을 살펴보는 방법은 아래와 같다.

즉, "dmesg | grep 관련문자" 이런식으로 로그기록을 살펴보면 된다.

아래의 예는 부팅시에 disk관련 로그기록을 보고자 한 것이다.

logmonitoring082.gif


icon04.gif9. cron 로그모니터링

마지막으로 시스템에는 크론(crond)에 관한 로그를 기록하는 파일이 존재하면 보시는 바와 같이 /var/log/cron에 존재한다.

crond은 시스템에 정기적으로 실행되는 것에 대한 설정을 가지고 지정된 시각에 실행을 하게되는 데몬으로서 이에 대한 자세한 설명을 원하신다면, 수퍼유저코리아의 리눅스파트에 있는 cron관련 자료를 보기 바란다.

즉 crond는 /usr/sbin/crond이며, 이 데몬에서 남겨지는 로그기록은 /var/log/cron에 하게된다.

이를 모니터링하는 방법은 위와 동일하게 "tail -f /var/log/cron"으로 하면 된다.

logmonitoring09.gif

 

이상으로 리눅스의 로그기록시스템에 대한 강좌를 마누리 하면서, 관련 질문은 해당질문란에 하기 바란다.

~~꾸, 벅~~

관련자료

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

공지사항


뉴스광장


  • 현재 회원수 :  60,041 명
  • 현재 강좌수 :  35,855 개
  • 현재 접속자 :  107 명