"CentOS 7"에 webalizer 설치 방법입니다.
사전 준비
webalizer를 설치하기전에 필요한 라이브러리들은 미리 설치를 해야한다.(이미 설치되어 있으면 그냥 통과)
사전 설치 파일
zlib-devel
libpng-devel
libgd-devel
libdb-devel
libbz2-devel
GeoDB
GeoIP
zlib-devel 설치
데이터의 송수신에 압축을 사용하는 라이브러리이다. 아래와 같이 설치하자.
# yum install zlib-devel
libpng-devel 설치
PNG 이미지를 웹상으로 만들어주는 라이브러리이다.
"libpng-devel"을 "yum"으로 설치
# yum install libpng-devel
libgd-devel 설치
사진 이미지를 동적으로 조작하기위한 라이브러리 인 "gd" 와 "gd-devel" 설치
# yum install gd gd-devel
libbz2-devel 설치
bzip2의 암호화 알고리즘인 'bzip2-devel " 설치
# yum install bzip2-devel
libdb-devel 설치
libdb 라이브러리 인 "libdb-devel" 설치
# yum install libdb-devel
GeoDB 설치
webalizer의 GeoDB 데이터베이스파일을 다운로드 받습니다.
이건 정보파일이라 "yum"을 통해 설치하는게 아니므로 아래와 같이 그낭 다운로드만 받아서 해당디렉토리로 복사하기만 하면됩니다.
다운로드
# wget ftp://ftp.mrunix.net/pub/webalizer/geodb/geodb-latest.tgz
압축풀기 · 이동
# tar xzfv geodb-latest.tgz
압축을 풀면 "GEODB.README" "GeoDB.dat"가 나온다.
"GEODB.README"에도 설명이 되어있지만, "/usr/share/GeoDB"에 "GeoDB.dat"을 넣으면 됩니다.
"/usr/share/GeoDB"는 디렉토리를 만들어야 한다.
# mkdir /usr/share/GeoDB
# cp -p GeoDB.dat /usr/share/GeoDB
GeoIP 설치
IP에 의한 국가 정보 분석에 사용하는 "GeoIP" "GeoIP-devel"를 설치합니다.
# yum install GeoIP GeoIP-devel
webalizer 설치
필요 라이브러리 설치가 끝났으면 이제 "webalizer"를 설치하자.
# yum install webalizer
초기 설정
설정 파일 "/etc/webalizer.conf"가 생성되며, 설정은 아파치의 로그파일을 가지고 하게되며, 아파치 로그파일을 사이트별로 만들었다면, 사이트별로 webalizer.conf 파일을 만들어 줘야한다.
# cp -p /etc/webalizer.conf /home/계정/webalizer.conf
# vi webalizer.conf
설정 파일 이름
설정 파일 이름은 "webalizer.conf"로 했지만, 가상 호스트를 사용하거나 여러사이트를 분석하려면 분석 로그만큼 설정 파일을 작성한다.
webalizer.conf 에서 필요한 설정에 대해서 알아보자.
설정
"webalizer.conf"의 설정중 가장 중요한 건 아래 2가지이다.
LogFile | 분석 할 로그 파일을 지정(아파치 로그파일) |
OutputDir | webalizer가 작성한 로그 분석 파일을 저장할 경로(웹으로 접근이 가능해야함) |
LogFile 설정
아래는 "/var/log/httpd/access_log '를 분석할 경우의 webalizer.conf 파일의 예
LogFile /var/log/httpd/access_log
OutputDir 설정
아래는 분석한 디렉토리를 "/var/www/html/usage"에 넣을 경우이다. 만약 분석한 파일을 가상호스트의 특정디렉토리로 넣어서 확인할 수도있다. 물론 디렉토리는 미리 만들어둔다.
예) /home/사용자/public_html/usage
OutputDir /var/www/html/usage
보고서 작성
"webalizer"는 상주하는 데몬이 아니기에 분석파일을 보고싶을때 마다 수동으로 실행을 해줘야 분석이 된다. 따라서 하단에도 나오듯이 크론에 넣어서 실행하는것을 추천한다.
실행방법
# /usr/bin/webalizer -c webalizer.conf
결과 확인
"webalizer"는 "OutputDir"에서 설정 한 디렉토리에 생성된다
# cd /var/www/html/usage/ <- OutputDir에 설정된 디렉토리로 이동
# ls -l
총 9
drwxr-xr-x 2 root root 4096 11 월 26 03:08.
drwxr-xr-x 5-root root 47 11 월 23 17:16 ..
-rw-r - r-- 1 root root 2303 11 월 26 03:08 ctry_usage_201511.png
-rw-r - r-- 1 root root 2764 11 월 26 03:08 daily_usage_201511.png
-rw-r - r-- 1 root root 1786 11 월 26 03:08 hourly_usage_201511.png
-rw-r - r-- 1 root root 3663 11 월 26 03:08 index.html
-rw-r - r-- 1 root root 2205 11 월 26 03:08 usage.png
-rw-r - r-- 1 root root 49618 11 월 26 03:08 usage_201511.html
-rw-r - r-- 1 root root 2870 11 월 26 03:08 webalizer.hist
index.html 파일이 생성된 것을 알 수 있다.
apache 설정
"OutputDir"에서 설정 한 디렉토리가 웹에서 접근 가능하도록 apache 를 설정한다.
동작 확인
아래와 같은 화면이 보인다면 정상적으로 완료
webalizer를 cron에 등록
성공적으로 보고서가 작성되는 것을 확인할 수 있으면, 이번에는 'cron'에 등록하고 "webalizer"정기적으로 보고서를 만들수있도록 하자.
이번 root 사용자의 "crontab"에 등록하는 방법과 "/etc/cron.d"에 등록하는 방법 두 가지가 있겠다.
root의 crontab에 등록
root 사용자의 crontab에 등록하는 방법
root 권한으로 "crontab -e"명령을 실행하여 root 사용자의 crontab의 설정을 할수있다
crontab 설정
# crontab -e
설정 예
매일 0:00 분에 로그 분석을 할 경우에는 cron 설정 예입니다.
00 0 * * * /usr/bin/webalizer -c /경로/webalizer.conf
/etc/cron.d에 등록
"/etc/cron.d"디렉토리에 설정 파일을 작성하여 등록 할 수 있습니다.
설정 파일 생성
이번에는 "webalizer"라는 파일을 생성합니다.
# vi /etc/cron.d/webalizer
설정 예
아래의 예는 매일 0:00에 webalizer에서 보고서를 분석하기위한 설정 예입니다.
#
# cron-jobs for webalizer
#
MAILTO = root
WEBALIZER = /usr/bin/webalizer
CONF = /경로/ webalizer.conf
00 0 * * * root $WEBALIZER -c $CONF