웹로그분석기 webalizer 로그 내용 사라지는 경우 설정하기

우분투 18.04 기준으로 설명하겠습니다.

고전(?)이긴 하지만 그래도 간단히 활용할 수 있는 웹로그분석기 webalizer 설치및 설정에 대해 알아보겠습니다.

1. webalizer 설치하기 (Ubuntu 18.04 기준)

> sudo apt install webalizer

2. cron 으로 주기적으로 실행하기

webalizer 는 실행할때 웹로그를 읽어서 분석결과를 html 문서로 출력합니다. 따라서 cron 으로 주기적으로 실행하도록 해줘야 합니다.

> sudo vi /etc/cron.d/webalizer

vi 에서 아래와 같이 입력하고 저장합니다. ( :wq )

# Webalizer (매일 아침 7시 웹로그분석)
0 7 * * * root webalizer

이제 매일 아침 7시면 로그를 읽어서 분석 결과를 저장할 것입니다. 하지만 아직 어떤 로그파일을 분석할지 지정을 안해준 상태입니다. 설정파일을 열어서 수정합니다.

> sudo vi /etc/webalizer/webalizer.conf
LogFile /var/log/apache/access.log.1
# 이부분의 파일 경로값을 원하는 로그파일로 변경합니다.

3. 웹브라우저에서 분석결과 확인하기

저는 nginx 를 사용하고 있으므로 여기에 맞게 nginx 에서 가상호스트 설정을 추가하겠습니다.

> sudo vi /etc/nginx/sites-enabled/webalizer

아래와 같이 입력합니다.

server {
        server_name webalizer; # 적절한 도메인 명으로 변경합니다.
        root /var/www/webalizer; # 이 경로는 webalizer 설정파일의 OutputDir 값과 일치해야 합니다.
        index index.html index.htm index.php;
        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }
}

이제 nginx 설정을 갱신합니다.

> sudo systemctl reload nginx

이상없다면 이제 접속해서 분석결과를 확인할 수 있을 것입니다. 보통 하루나 이틀정도 지나야 의미있는 결과를 볼 수 있습니다.

4. 로그분석결과가 사라진다면?

제가 관리 하는 사이트 중이 하나는 로그파일이 매우 빠르게 늘어서 우분투 설정에 따라 rotate 되는데요. 이 때문에 매일 같이 로그파일이 바뀌는데 이때문에 기본 webalizer 설정으로 해놓으면 약 최근 이틀정도만 분석결과가 남고 나머지는 사라져버립니다.

이를 해결하기 위해서는 webalizer 설정중 다음과 같이 변경하면 됩니다.

# 로그 분석결과를 계속 보존시키려면 아래 설정을 no 에서 yes 로 변경합니다.
#Incremental    no
Incremental     yes

이후로는 로그분석기록이 사라지지 않고 정상적으로 쌓일 것입니다. ^^