Server & OS

webalizer 설치

페이지 정보

본문

1. webalizer 설치

 

webalizer를 사용하기 위해서는 기본적으로 gd라이브러리가 설치되어 있어야 한다. 이는 웹상에 통계 결과를 그림(그래프)으로 출력하기 위해서 필요한 라이브러리이다. gd 그래픽 라이브러리는 http://www.boutell.com/gd 에서 구할 수 있다.
webalizer는 webalizer의 홈페이지인 http://www.mrunix.net/webalizer/ 에서 구할 수 있다. 바로 다운받고자 한다면 다음의 ftp 사이트를 이용하면 된다.

 

ftp://ftp.mrunix.net/pub/webalizer/webalizer-2.01-06-src.tgz
ftp://ftp.mrunix.net/pub/webalizer/webalizer-2.01-06-linuxelf-bin.tgz

 

레드햇 리눅스 패키지를 구하고 싶다면 powertools에서 찾아보면 된다. 다음은 레드햇 영문판의 powertools에서 webalzier-2.01-06을 찾을 수 있다. webalizer는 여러 언어를 지원하는데 기본이 영어로 설정되어 있다. 만약 한글을 보고 싶다면 소스 RPM을 다운받아 webalizer.spec에서 $configure --enable-dns --with-language=korean와 같이 --with-language=korean을 추가해 주고 리빌드해야 한다.

 

webalizer 홈페이지에서 직접 소스를 다운받을 경우엔 압축을 풀고 다음과 같은 순서로 컴파일을 하면 된다.

(--enable-dns는 꼭 필요한 것은 아니다.)


#./configure --with-language=korean --enable-dns
#make
#make install

 

특히 ./configure 할 때 몇가지 옵션을 설정할 필요가 있다. 옵션에 대해 자세한 도움말은 ./configure --help을 통해 볼 수 있다.

 

2. webalizer 사용

 

2-1. webalizer 명령의 사용

 

webalizer의 사용은 webalizer라는 명령어를 통해 로그를 통해 통계를 내고 그 결과를 지정된 디렉토리에 출력 해주는 것으로 그 사용은 단순하다.


webalizer [옵션] [로그파일]

-------------------------------------------------------------------------------------
[표-1] webalizer의 일부 옵션
-F type : 로그 파일의 형식(clf | ftp | squid)을 결정한다. 일반적으로 웹서버의 로그 파일인 common log format(clf)와 wu-ftpd의 xferlog format의 ftp, squid의 로그 파일 format인 ftp 세 가지 방식을 지원한다. 기본값은 clf이다.

-c 파일 : 설정 파일을 지정한다. 한 머신에서 여러 개의 webalzier를 통해 각기 통계를 만들고 싶다면 설정 파일을 따로 두어 실행할 수 이따.

-o 경로 : 로그 분석에 대한 통계 결과를 출력할 경로(디렉토리)를 지정한다
-h : webalizer의 도움말을 본다.
-------------------------------------------------------------------------------------

 

webalzier만을 실행한 경우엔 기본적으로 /etc/webalizer.conf 라는 설정에 따라 로그의 통계를 내고 그 출력을 만들어 낸다. 만약 여러 로그에 대해 서로 다른 출력을 만들어 내고 싶다면 각각에 대해 설정 파일을 따로 만들어 webalizer -c somehost.conf와 같이 실행할 수 있다. 그 외에도 webalizer /var/lib/httpd/logs/access_log 등과 같이 특정 로그를 직접 지정해 줄 수 있다. 이처럼 webalizer에 대한 옵션 및 사용법에 대한 것은 webalizer -h를 사용해 더 자세히 확인할 수 있다.
로그 분석에 대한 통계를 주기적으로 웹으로 출력하기 위해서는 webalizer를 반복적으로 실행할 필요가 있다. 이를 위해 webalizer를 cron에 등록해 놓으면 편리하다. rpm으로 설치한 경우엔 /etc/cron.daily에 00webalizer라는 것이 만들어 진다. 00webalizer의 내용은 다음과 같다.

 

#!/bin/bash
#update access statistices for the web site
/usr/bin/webalizer
exit 0

 

만약 소스를 통해 직접 설치했거나 cron에 직접 등록하길 원한다면 root에서 crontab -e를 통해 등록시킬 수 있다. 예를 들어 0시 0분에 webalizer를 실행하고 싶다면 다음과 같이 등록한다.

 

00 00 * * * /usr/bin/webalizer

 

그 외에 서로 다른 로그 파일에 대해 webalizer를 이용하고 싶다면 webalizer -c 설정파일을 이용하면 될 것이다. fst의 웹 서버와 ftpd에 대한 두 개의 로그 파일에 대해 webalizer를 이용하고자 할 때 fst-web.conf와 fst-ftpd.conf로 두 개의 설정 파일을 만들어 사용하면 된다. 이를 다음과 같이 cron에 등록시키면 된다.

 

00 00 * * * /usr/bin/webalizer -c /etc/webalizer/conf/fst-web.conf
00 00 * * * /usr/bin/webalizer -c /etc/webalizer/conf/fst-ftpd.conf

 

2-2. webalizer의 설정 파일

 

webalizer를 rpm으로 설치한 경우라면 설정파일의 sample 파일인 webalizer.conf가 /etc에 설치된다. 만약 소스를 가지고 설치한 경우라면 소스 디렉토리에 보면 sample.conf라는 파일이 있는데 이것이 webalizer.conf와 동일한 파일이다. 이 파일을 보면 설정파일에서 사용할 수 있는 다양한 지시자에 대한 상세한 주석이 있다. 이들중 몇 개의 지시자에 대해서 소개하기로 한다.
다음은 fst의 www.fst.or.kr의 webalizer 설정파일의 예다. 보는 바와 같이 설정 파일은 복잡하지 않으며 몇 개의 지시자만으로 충분하다는 것을 알 수 있다.

 

LogFile /var/log/httpd/www.fst.or.kr-access_log
LogType clf
OutputDir /var/www/html/fst/usage
Incremental yes
HostName www.fst.or.kr
PageType htm*
PageType cgi
HideSite 198.126.*
HideURL *.gif
HideURL *.GIF
HideURL *.jpg
HideURL *.JPG
HideURL *.png
HideURL *.PNG
HideURL *.ra
HideURL *.css
IgnoreURL /~*
IgnoreURL /board/*

 

설정 파일에서 가장 중요한 지시자로는 LogFile, LogType, OutputDir, HostName이다. 이들에 대해서는 반드시 설정되어야 한다. 그 외의 지시자들은 부가적인 기능을 명시하는 것이다. 위 예에서 사용된 지시자에 대해 정리하면 <표-2>와 같다.

 

-------------------------------------------------------------------------------------
표-2. webalizer 설정 파일의 지시자
LogFile :  로그 파일의 경로 및 파일을 지정한다.
LogType : 로그 파일의 형식을 지정한다. clf, ftp, squid 가 있으며 기본값은 clf이다.
OutputDir : webalizer로 분석된 결과를 저장할 경로를 지정한다.
Incremental : 이 설정을 yes로 해야 전체적인 로그를 볼 수 있다.
PageType : 웹 페이지라고 말하는 것으로 htm*과 cgi로 지정하는 것이 일반적이다.
HideSite : 로그 파일에서 지정한 사이트에 대해서는 통계에서 숨긴다.(count 결과는 포함)
HideUrl : 로그 파일에서 지정한 URL에 대해서는 통계에서 숨긴다.(count 결과는 포함)
IgnoreURL : 통계에서 지정한 URL에 대해서는 무시한다.(count 결과도 무심된다.)
-------------------------------------------------------------------------------------

 

3. 다양한 로그 파일들

 

리눅스 시스템은 다양한 로그를 남긴다. 특히 서버와 관련된 로그 파일은 관리에 있어서 대단히 중요한 역할을 한다. 예를 들어 서버에 불법 침입자가 들어온 경우 이를 쉽게 파악할 수 있는 것이 로그 파일을 통해서이다. 또한 어떤 문제점을 해결하는데 있어서 로그 파일은 중요한 역할을 담당한다.


리눅스의 로그 파일은 /var/log 에 위치하며 일반적으로 텍스트 형식으로 저장되어 있어 간단한 문서 편집기나 cat 또는 less 명령어를 통해 그 내용을 볼 수 있다. 그러나 일부 로그 파일의 경우엔 텍스트 형식이 아닌데,  btmp와 wtmp가 바로 그것인데 이들은 각각 lastb와 last라는 명령어를 통해 그 내용을 확인할 수 있다.


로그 파일은 일정 주기로 정리할 필요가 있다. 그렇지 않다면 어느 순간엔 로그 파일에 파일 시스템을 모두 차지하는 상황이 발생할 수 있다. 일반적으로 이러한 문제를 해결하기 위하여 리눅스에는 logrotate라는 프로그램을 사용한다. 이를 이용하면 주기적으로 로그 파일을 삭제 정리한다. 레드햇 리눅스의 경우엔 /etc/logrotate.conf라는 설정 파일이 있으며 이를 통해 logrotate를 설정할 수 있다. 아래는 logrotate.conf의 내용으로 그 의미를 보면 기본적으로 주단위로 4번에 걸쳐 로그 파일을 rotate 시키고 이후엔 삭제 정리하도록 한다. 그리고 에러에 대해선 root에게 알리도록 한다. 단 wtmp와 xferlog의 경우엔 한 달에 한번만 rotate 시키도록 한다. 그 밖에 /etc/logrotate.d에 있는 것들을 logrotate.conf에 읽어들여 실행하도록 하고 있다.

 

#see "man logrotate" for details
#rotate log files weekly
weekly

#keep 4 week worth of backlogs
rotate 4

#send errors to root
errors root

#create new(empty) log files after rotatinig old ones create
#uncommont this if you want your log files compressed
#compress

#RPM packages drop log rotation information into this directory include /etc/logrotate.d

#no packages own lastlog or wtmp -- we'll rotate them here
/var/log/wtmp {
monthly
create 0664 root utmp
rotate 1
}

#system-specific logs may be configured here
/var/log/xferlog {
monthly
rotate 1
}

관련자료

등록된 댓글이 없습니다.
Today's proverb
행복해지고 싶다면, 잠시 동안만이라도 가슴에 손을 얹고 생각해 보라. 그러면 진정한 즐거움은, 발치에 돋아나는 잡초나 아침 햇살에 빛나는 꽃의 이술과 같이 우리 주변에 무수히 널려 있다는 것을 알 수 있을 것이다. 《하루 5분 생각이 인생을 결정한다 》 (이범준)