서비스를 운영하다 보면 서버에 쌓이는 다양한 로그를 수집해서 분석해 봐야 하는 경우가 많이 있습니다.
특히 커널의 audit 로그나 sshd 로그등은 혹시 시스템에 공격을 시도한 흔적이 있는지 확인할 경우 유용합니다.
![](/plugins/servlet/confluence/placeholder/unknown-macro?name=scroll-title&locale=en_US&version=2)
로그는 대개 텍스트 파일이므로 less 나 tail 같은 명령어를 사용하여 볼 수 있으며 시스템 로그이므로 root 권한을 필요로 합니다.
less 로 로그를 볼 경우 -r 옵션을 추가해 주면 특수 문자나 색상을 제대로 표시해 줍니다.
less -r /var/log/boot.log
매일 생성되는 로그의 양이 많기때문에 일일이 눈으로 확인하는 것은 불가능하며 로그의 대다수는 정상 작동 내역을 기록하므로 이상이 발생하더라도 찾아내기가 힘듭니다.
logwatch 는 Linux 용 시스템 로그 모니터링 프로그램으로 시스템 로그중 중요하다고 판단되는 내용만을 뽑아서 결과를 정기적으로 root 에게 email 로 전송해 주는 역할을 수행합니다.
fluentd 나 logstash 같은 더 전문적인 로그 취합 및 분석 프로그램도 많지만 관리하는 리눅스 시스템이 많지 않다면 logwatch 가 설정도 간단하고 가볍게 사용할 수 있습니다.
설치
CentOS 와 우분투 모두 패키지로 제공되고 있으므로 패키지 관리자로 logwatch 를 설치하면 됩니다.
![](/plugins/servlet/confluence/placeholder/unknown-macro?name=scroll-title&locale=en_US&version=2)
![](/plugins/servlet/confluence/placeholder/unknown-macro?name=scroll-title&locale=en_US&version=2)
설정
기본적으로 logwatch 는 로그 파일 내용으로부터 보고서를 만들어서 하루에 한번 메일로 전송합니다.
기본 설정은 CentOS 의 경우 /usr/share/logwatch/default.conf/logwatch.conf 이며 이를 복사해서 사용할 설정 파일을 만듭니다.
![](/plugins/servlet/confluence/placeholder/unknown-macro?name=scroll-title&locale=en_US&version=2)
sh -c 를 안 쓰고 cat 만 쓰면 cat /usr/share/logwatch/default.conf/logwatch.conf 만 root 권한으로 실행되어 permission denied 에러가 납니다.
우분투의 설정 파일은 /usr/share/logwatch/default.conf/logwatch.conf 이며 이 파일을 직접 수정하면 됩니다.
이제 설정 방식은 key=value 형식이며 주요 설정 항목은 아래와 같습니다.
![](/plugins/servlet/confluence/placeholder/unknown-macro?name=scroll-title&locale=en_US&version=2)
확인을 위해 명령행에서 logwatch 를 치면 설정한 이메일로 로그가 전송됩니다.
그리고 날마다 실행되는 크론 명령어가 있는 디렉터리인 /etc/cron.daily/ 에 0logwatch 가 등록되어 있으므로 정해진 시간에 자동화된 보고서가 설정한 이메일로 전송됩니다.
![](/plugins/servlet/confluence/placeholder/unknown-macro?name=scroll-title&locale=en_US&version=2)
만약 logwatch의 매일 보고서를 중지하려면 기본 설정 파일(/usr/share/logwatch/default.conf/logwatch.conf )내에 DailyReport=no 를 추가해 주면 됩니다.