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
실패라는 상처에 노력이라는 약을 바르고 최선이라는 붕대를 감아서 성공이란 흉터를 남기자!