“웹로그 분석기 awstats”
AWStats(Advanced Web Statistics)는 웹, 스트리밍 미디어, 메일 및 FTP 서버와 같은 인터넷 서비스의 데이터를 분석하는 데 적합한 오픈 소스 웹 분석 도구입니다.
AWS는 서버 로그 파일을 구문 분석하여 HTML 보고서를 생성하며, 데이터는 표 및 막대 그래프에 의해 보고서 내에 시각적으로 표시됩니다.
명령줄 인터페이스를 통해 정적 보고서를 작성할 수 있으며, 웹 브라우저 CGI 프로그램을 통해 주문형 보고서 작성을 지원합니다.
AWStats는 아파치(NCSA 결합/XLF/ELF 로그 형식 또는 CLF(Common Log Format)), WebStar, IIS(W3C 로그 형식) 및 기타 많은 일반 웹 서버 로그 형식을 포함한 대부분의 주요 웹 서버 로그 파일 형식을 지원합니다.
[개 요] 종 류 : 엔지니어링 난이도 : 내용요약 : awstats란 무엇이며, 설치 방법 테스트환경 : Rocky linux 8 관련직무 : 시스템&클라우드 엔지니어 |
“awstats의 특징”
제일 큰 장점은 설치가 매우 간단하며 추가적인 작업이 거의 없어 사용하기 쉽습니다.
text로만 보여지는 webalizer 보다는 웹로그가 보이는 모든 정보를 알기쉽게 볼 수 있습니다.
무제한의 로그파일 사이즈를 갖고 있습니다.
오픈소스로 자유롭게 설치가 가능합니다.(GNU Gerneral Public License)
“awstats 설치”
🖥️ OS : Rocky linux 8
🖥️ awstats ver.7.9
1️⃣ APM 설치 및 vhost 설정까지 미리 진행합니다.
➜ 서버에 APM 패키지 설치로 진행했습니다.
2️⃣ awstats 설치
awstats는 보안이슈가 많으므로 설치시 공식 홈페이지(http://awstats.sourceforge.net)에서 최신 버전으로 다운로드하여 설치해야합니다.
(1) awstats 설치
# cd /usr/local/src
# wget https://fossies.org/linux/www/awstats-7.9.tar.gz
# tar zxvf awstats-7.9.tar.gz
# cp -arp /usr/local/src/awstats-7.9 /usr/local/awstats
# chown -R root:root /usr/local/awstats
3️⃣ awstats 파일 수정
apache를 패키지로 설치했다면 awstats 파일을 수정해야합니다.
(1) awstats_configure.pl 파일 63번째 줄 수정
# cd /usr/local/awstats/tools/
# vi awstats_configure.pl
‘/etc/httpd/httpd.conf’, ➜ ‘/etc/httpd/conf/httpd.conf’,
(2) awstats.pl 파일 수정
# vi /usr/local/awstats/wwwroot/cgi-bin/awstats.pl
“$DIR”,
“/etc/awstats”,
“/usr/local/etc/awstats”,
“/etc/opt/awstats”
➜ 해당 부분에 “/usr/local/awstats”, /usr/local/awstats/conf”, 부분을 추가해줍니다.
(3) awstats_updateall.pl 파일 수정
# vi /usr/local/awstats/tools/awstats_updateall.pl
my $DIRCONFIG = “/etc/awstats”; ➜ my $DIRCONFIG = “/usr/local/awstats/conf”;
4️⃣ 운영하는 웹 도메인으로 awstats 파일 생성
# cd /usr/local/awstats/tools/
# perl ./awstats_configure.pl
➜ awstats를 처음 설치할때 묻는 내용으로 처음 설치라면 y, 처음 설치가 아니라면 N을 입력합니다.
➜ 서버에 등록한 웹 도메인을 입력합니다.
➜ 앞에 파일 설정한 부분에 DIRCONFIG에 설정한 경로로 입력합니다.
➜ /usr/local/awstats/conf/awstats.도메인주소.conf 파일이 생성됩니다.
➜ 아래 명령어는 통계 업데이트를 하는 명령어로 crontab에 등록을 해야합니다.
/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=도메인주소
/usr/local/awstats/tools/awstats_updateall.pl now
➜ 아래 명령어를 입력하면 최신화가 됩니다.
# perl awstats.pl -update -config=도메인 주소
➜ 도메인의 awstats 통계 사이트 주소는 아래 ①과 같이 나오지만 실질적으로 접속할 주소는 ② 또는 ③으로 접속합니다.
① http://localhost/awstats/awstats.pl?config=도메인주소
② http://도메인주소/awstats/awstats.pl?config=도메인주소
③ http://서버IP/awstats/awstats.pl?config=도메인주소
4️⃣ apache 설정 파일 수정
(1) httpd.conf 파일 수정
➜ ” IncludeOptional conf.d/*.conf “가 awstats의 Alias의 설정보다 위에 있으면 conf의 디렉토리의 설정파일을 먼저 읽기때문에 awstats의 Alias 설정부분보다 밑으로 내용을 옮겨 수정합니다.
(2) httpd.conf, vhost 파일 log설정 부분 확인
# vi /etc/httpd/httpd.conf
# vi /etc/httpd/conf.d/vhost.conf
➜ CustomLog 부분에 combined 이 있는지 확인합니다.
5️⃣ awstats 데이터 저장을 위한 설정 파일 수정
(1) 필요한 패키지 설치
# yum install -y GeoIP GeoIP-data perl-Geo-IP GeoIP-devel perl-NetAddr-IP iptables-devel perl-Text-CSV_XS kernel-devel
(2) awstats 데이터 저장할 디렉토리 생성
# mkdir /usr/local/awstats/data
(3) 도메인으로 생성된 awstats 설정파일 수정
# vi /usr/local/awstats/conf/awstats.도메인주소.conf
DirData=”/var/lib/awstats” ➜ DirData=”/usr/local/awstats/data”
LogFile=”/var/log/httpd/mylog.log” ➜ vhost.conf 파일에 설정한 accesslog 경로로 수정합니다.
AllowToUpdateStatsFromBrowser=0 ➜ AllowToUpdateStatsFromBrowser=1
LogFormat=1
SiteDomain=”도메인 주소”
HostAliases=”도메인 주소 127.0.0.1 localhost *.도메인주소”
Lang=”auto” ➜ Lang=”ko”
* 주석해제 및 내용수정
LoadPlugin=”graphgooglechartapi”
LoadPlugin=”geoip GEOIP_STANDARD /usr/share/GeoIP/GeoIP.dat”
** 여기서 잠깐 🤚❗❗ **
AWStats에서 사용하는 geoip_city_maxmind 플러그인은 구형 GeoIPCity.dat 파일을 필요로 합니다. 그러나 MaxMind가 현재 제공하는 최신 데이터베이스 파일들은 .mmdb 형식으로 되어 있으며, 이 형식은 구형 플러그인과 호환되지 않습니다.
그러므로 대안 플러그인 사용해야하는데 geoip2 플러그인으로 전환할 수 있습니다. 이 플러그인은 최신 MaxMind의 GeoLite2 데이터베이스(.mmdb 형식)를 지원합니다.
오류가 발생함으로 추가적으로 모듈을 설치해줘야 합니다.
6️⃣ CPAN을 모듈 설치
(1) Perl 모듈 설치
# cpan install Data::Validate::IP
(2) 명령어로 Perl 모듈이 정상 설치되었는지 확인
# perl -MData::Validate::IP -e ‘print “Module is installed\n”;’
➜ 명령어 실행했을때 “Module is installed” 라는 메시지가 출력되면 모듈이 올바르게 설치된 것 입니다.
(3) GeoIP2::Database::Reader 모듈 설치
# cpan install GeoIP2::Database::Reader
(4) 명령어로 모듈이 정상 설치되었는지 확인
# perl -MGeoIP2::Database::Reader -e ‘print “GeoIP2::Database::Reader module is installed\n”;’
➜ 명령어 실행했을때 “GeoIP2::Database::Reader module is installed” 라는 메시지가 출력되면 모듈이 올바르게 설치된 것 입니다.
8️⃣ apahce 명령어 재시작 및 Crontab 자동 설정 통계 데이터를 업데이트
(1) 웹 데몬 재시작
# systemctl restart httpd
(2) 명령어로 통계 데이터 업데이트 및 자동갱신 되도록 crontab에 설정
# /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=hi.yum-94.shop
# /usr/local/awstats/tools/awstats_updateall.pl now
🌐 awstats 통계 홈페이지에 접속 확인
URL : http://도메인주소/awstats/awstats.pl?config=도메인주소