Linux OS/관리

웹통계 awstats (APM 기반 서버) (패키지+소스설치 포함)

서버엔지니어 2023. 4. 19.
728x90

 awstats는 web, ftp, mail 서버의 통계를 그래픽 적으로 생성해 주는 기능성 툴 입니다.
awstats 로그 분석은 CGI 나 다른 명령어로 부터 그리고 로그에 포함된 모든 정보를 보여줄 수 있습니다.

그 안에 그래픽적으로 웹페이지가 포함되어 있습니다.

 

특징

- 웹로그가 보이는 모든 정보를 알기쉽게 보여줍니다.
- 무제한의 로그파일 사이즈
- 모양과 컬러는 각자의 사이트에 필적합니다.
- 사용이 쉽습니다.

 

특징들


전체 로그 분석을 통해 AWStats에서 다음 정보를 표시할 수 있습니다.
* 방문횟수, 고유 방문횟수
* 방문 기간 및 마지막 방문 기간,
* 인증된 사용자 및 마지막으로 인증된 방문자
* 요일  러시 아워(시간 및 요일별 페이지, 조회수, KB),
* 호스트 방문자의 도메인/국가(페이지, 히트 수, KB, 269개의 도메인/국가 탐지, GeoIp 탐지),
* 호스트 목록, 마지막 방문 및 해결되지 않은 IP 주소 목록,
* 가장 많이 본 페이지, 시작 페이지 및 종료 페이지,
* 파일 형식,
* 웹 압축 통계(mod_gzip 또는 mod_deflate의 경우),
* 사용하는 OS (페이지, 조회수, 각 OS별 KB, 35개의 OS가 검출됨)
* 사용하는 브라우저 (브라우저별 페이지, 조회수, KB, 버전별 (Web, Wap, 미디어 브라우저: 97개 브라우저, browsers_phone.pm 라이브러리 파일을 사용하는 경우 450개 이상),
* 로봇 방문수 (319대 검출),
*  공격 (5개의  패밀리),
* 사이트 검색에 사용되는 검색 엔진, 키워드(야후, 구글, altavista 등 가장 유명한 115개의 검색 엔진이 검색됨)
* HTTP 오류(마지막 레퍼러가 있는 페이지를 찾을 수 없음 등),
* URL, URL 파라미터, 레퍼러 필드에 기반한 기타 개인화된 보고서, 잘못된/마케팅 목적,
* "즐겨찾기 북마크에 추가"된 사이트 횟수
* 화면 크기 (인덱스 페이지에 HTML 태그 추가 필요)
* Java, Flash, RealG2 Reader, Quicktime Reader, WMA Reader, PDF Reader를 지원하는 브라우저 비율(인덱스 페이지에 HTML 태그 추가 필요)
* 부하 분산된 서버 비율에 대한 클러스터 보고서.

AWStats는 다음 기능도 지원합니다.
* 많은 로그 형식을 분석할 수 있습니다.Apache NCSA 복합 로그 파일(XLF/ELF) 또는 공통(CLF), IIS 로그 파일(W3C),WebStar 네이티브 로그 파일 및 기타 웹, 프록시, wap 또는 스트리밍 서버 로그 파일(FTP 또는 메일 로그 파일도 포함)예제는 AWStats F.A.Q.를 참조하십시오.
* 및필터 ),* CGI(CGI)로 동작합니다.
* 웹할 수  *,,,,,,, * * * * * * * * * * * * * * * * 。
* 크기 제한 , 파일 시스템 * 스플릿 로그 파일 지원, 스플릿 로그 파일 지원, 스플릿 로그 파일, 스플릿 로그 파일, 스플릿 로그 파일(로드 밸런싱 시스템 스플릿 로그 파일(스플릿 로그 파일)
에서도 로그 할 수 지원
 분석 중, 파일 "DNS 캐시 파일 지원", "DNS 캐시 파일", "DNS 캐시 파일", "DNS 캐시 파일",
* IP 위치에서 국가 감지용 플러그인(geoip 국가 데이터베이스 또는 클라이언트 도메인 이름 사용),
* IP 로케이션에서 도시를 검출하기 위한 플러그인(지오이피시티 데이터베이스 사용),
* 미국/캐나다 지역용 플러그인, ISP 및/또는 조직 보고서(무료 제3제품 지리 지역, 지리 정보 및/또는 지리 정보 데이터베이스 필요)
* WhoIS 링크,
 할 수 은필필 / 터필필필필 * * * * 。
되는 여러  서버,웹프로바이더에게 ), * "가상 서버, 웹 호스팅 프로바이더에게 최적",
Site Attacks * 사이트 간 스크립팅 공격 보호,
* 여러 언어.전체 목록은 AWStats F.A.Q.를 참조하십시오.
* Perl * * * * * * * 。동작시킬 수 .
* CGI 력 * * * * * * * * * * * 。
1 프레임 HTML/, export * 1개의 HTML/XHTML 페이지, PDF 페이지,
수, CSS를 할 수 CSS를 사용할 수 있습니다.
페이지의  HTML 보고서 페이지
(할 수 있는 개 * 、 1 、 1 、 * * 。
* 를 위해 할 수 XSLT는 XML 형식으로 저장할 수 있습니다.
모듈 Webmin 듈, 、
* 소스(GNU General Public License)가 포함된 웹 호스팅 프로바이더도 절대 무료입니다.
가능 든 * * * *, * 、
* AWStats에는 XML Portable Application Description이 있습니다.

 

현재 최근에 2023년 01월 17일날 업데이트 되었습니다.

 

패키지기반으로 이루어진 APM 먼저 진행하겠습니다.

 

Apache 2.4.57

MariaDB 10.6.12

PHP 8.1.18

 

# httpd -S
VirtualHost configuration:
*:80                   93it-serverengineer.net (/etc/httpd/conf.d/vhost.conf:1)

 

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/

cd /usr/local/awstats/tools/

 

패키지 설치라면 파일들을 수정을 해야합니다.

 

 

vi ./awstats_configure.pl

 '/etc/httpd/httpd.conf',

63번째줄을 수정합니다.
 '/etc/httpd/conf/httpd.conf',

 

perl ./awstats_configure.pl

file (required if first install) [y/N] ?

해당 물음은 awstats 을 처음 설치할때 묻는 부분으로 Y를 입력합니다. 그게 아니라면 N

여기서 운영하시는 웹서버의 도메인을 입력합니다.

 

 

여기서 그냥 엔터를 누른다면 /etc/awstats로 생성이 됩니다.

해당 부분을 그냥 엔터로 누른다면 추후에 설정들은 편해질 수 있습니다.

 

/usr/local/awstats/wwwroot/cgi-bin/awstats.pl

설정파일이 기본이

                        "/etc/awstats",
                        "/usr/local/etc/awstats",
                        "/etc/opt/awstats"

로 되어있으며,

/usr/local/awstats/tools/awstats_updateall.pl 열어보면 애초에 저렇게 설정되어 있습니다.

my $DIRCONFIG = "/etc/awstats";

 

2개파일들을 열어보면 기본경로를 제외한 부분이 많이 누락되어있습니다.

 

만약 설정파일 저장할곳을 바꾼다면 2개의파일을 수정을 하셔야합니다.

/usr/local/awstats/conf 이렇게 정한다면 

해당 파일을 /usr/local/awstats/wwwroot/cgi-bin/awstats.pl  아래와 같이 수정해야합니다.

 

                        "/usr/local/awstats",

                        "/usr/local/awstats/conf",

                        "/etc/awstats",
                        "/usr/local/etc/awstats",
                        "/etc/opt/awstats"

 

/usr/local/awstats/tools/awstats_updateall.pl 파일을 수정해야합니다.

my $DIRCONFIG = "/usr/local/awstats/conf";

/etc/awstats/awstats.93it-serverengineer.net.conf 라는 설정파일이 만들어졌습니다.

 

여기서 항상 통계 crontab에 자동화설정에 등록해야합니다.

/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=93it-serverengineer.net
/usr/local/awstats/tools/awstats_updateall.pl now

 

perl awstats.pl -update -config=93it-serverengineer.net 

위의 명령어로 최신화가 될 수 있습니다.

http://localhost/awstats/awstats.pl?config=93it-serverengineer.net 이렇게 나오지만 

http://93it-serverengineer.net/awstats/awstats.pl?config=93it-serverengineer.net

이렇게 접속을 합니다.

또는 

http://IP/awstats/awstats.pl?config=93it-serverengineer.net

 

아래 설정파일을 확인합니다.

vi /etc/httpd/conf/httpd.conf 맨아래부분을 확인합니다.

 

 

IncludeOptional conf.d/*.conf 

Alias /awstatsclasses "/usr/local/awstats/wwwroot/classes/"
Alias /awstatscss "/usr/local/awstats/wwwroot/css/"
Alias /awstatsicons "/usr/local/awstats/wwwroot/icon/"
ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi-bin/"

#
# This is to permit URL access to scripts/files in AWStats directory.
#
<Directory "/usr/local/awstats/wwwroot">
    Options None
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

아래에다가 서로 순서를 바꿔줍니다.

 

즉, 아래와 같이 바꿔줍니다. 그이유는 conf.d 의 디렉토리를 먼저 설정파일들을 먼저 읽기때문에 Alias 가 먼저 되도록 설정합니다.

 

vi /etc/httpd/conf/httpd.conf

Alias /awstatsclasses "/usr/local/awstats/wwwroot/classes/"
Alias /awstatscss "/usr/local/awstats/wwwroot/css/"
Alias /awstatsicons "/usr/local/awstats/wwwroot/icon/"
ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi-bin/"

#
# This is to permit URL access to scripts/files in AWStats directory.
#
<Directory "/usr/local/awstats/wwwroot">
    Options None
    AllowOverride None
    Require all granted
</Directory>

IncludeOptional conf.d/*.conf

아래와 같이 변경합니다.

<IfModule log_config_module>
    #
    # The following directives define some format nicknames for use with
    # a CustomLog directive (see below).
    #
 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %{GEOIP_COUNTRY_CODE}e" combined
    #LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common

    <IfModule logio_module>
      # You need to enable mod_logio.c to use %I and %O
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>

    #
    # The location and format of the access logfile (Common Logfile Format).
    # If you do not define any access logfiles within a <VirtualHost>
    # container, they will be logged here.  Contrariwise, if you *do*
    # define per-<VirtualHost> access logfiles, transactions will be
    # logged therein and *not* in this file.
    #
    #CustomLog "logs/access_log" common

    #
    # If you prefer a logfile with access, agent, and referer information
    # (Combined Logfile Format) you can use the following directive.
    #
    CustomLog "logs/access_log" combined
</IfModule>

 

 

vi /etc/httpd/conf.d/vhost.conf

===================================================

<VirtualHost *:80>
 ServerName 도메인
 ServerAlias www.도메인
 DocumentRoot "/home/93it/public_html"
 CustomLog "/var/log/httpd/도메인-access_log" combined
 ErrorLog "/var/log/httpd/도메인-error_log"

 <Directory "/home/93it/public_html/*>
  Options FollowSymLinks
  AllowOverride All
  Require all granted
 </Directory>

</VirtualHost>

===================================================

 

yum install -y GeoIP GeoIP-data perl-Geo-IP GeoIP-devel perl-NetAddr-IP iptables-devel perl-Text-CSV_XS kernel-devel

 

awstats 데이터들이 저장될 공간을 설정합니다. 디렉토리를 만듭니다.

mkdir /usr/local/awstats/data

 

 

이제 생성된 설정파일들을 확인합니다.

[root@APM tools]# vi /usr/local/awstats/conf/awstats.93it-serverengineer.net.conf

 

파란줄을 빨간줄과 같이 변경합니다.

LogFile="/var/log/httpd/mylog.log"
->
LogFile="/var/log/httpd/93it-serverengineer-access_log"


AllowToUpdateStatsFromBrowser=0
->
AllowToUpdateStatsFromBrowser=1

LogFormat=1
->
LogFormat = "%host %other %logname %time1 %methodurl %code %bytesd"
해당 부분은 일단 1로 진행해보고 만약 작업시 문제가 생긴다면 변경해주시길 바랍니다.

SiteDomain="93it-serverengineer.net"

HostAliases="93it-serverengineer.net www.93it-serverengineer.net 127.0.0.1 localhost"
->
HostAliases="93it-serverengineer.net www.93it-serverengineer.net 127.0.0.1 localhost admin.93it-serverengineer.net *.93it-serverengineer.net img.93it-serverengineer.net"

해당 부분은 만약 vhost에서 같은로그들을 쓰고 있다면
93it-serverengineer.net 도메인의 DocumentRoot 가 동일하다면 왠만해서 로그 설정도 동일할겁니다.
그러므로 access_log 들도 설정이 같다면 같은 도메인라인들은 추가적으로 넣어주시길 바랍니다.

만약 같은 IP 에서 운영중이나, 어떠한 도메인으로 들어오는지 확인을하고자 한다면 추가하지말고 같은과정을 반복해서 설정파일을 만들어서 설정하시길 바랍니다.

/var/log/httpd/93it-serverengineer-access_log


DefaultFile="index.php index.html" 이부분도 잘보시길 바랍니다. 만약 index.htm 이라면 변경하시길 바랍니다.

Lang="auto"
->
Lang="ko"


#LoadPlugin="geoip GEOIP_STANDARD /pathto/GeoIP.dat"
->
LoadPlugin="graphgooglechartapi"
LoadPlugin="geoip GEOIP_STANDARD /usr/share/GeoIP/GeoIP.dat"
LoadPlugin="geoip_city_maxmind GEOIP_STANDARD /usr/share/GeoIP/GeoIPCity.dat"

/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=93it-serverengineer.net
/usr/local/awstats/tools/awstats_updateall.pl now

 

- Did you create your config file 'awstats.93it-serverengineer.net.conf' ?

-> 설정파일 위치를 못찾는것입니다. 해당파일을 수정합니다.

 

vi /usr/local/awstats/wwwroot/cgi-bin/awstats.pl

1719번째줄에 갑니다.

                        "/usr/local/awstats",
                        "/usr/local/awstats/conf",
                        "/etc/awstats",
                        "/usr/local/etc/awstats",
                        "/etc/opt/awstats"

해당 2줄을 추가합니다.

 

 

 

 

 

 

명령어를 입력합니다.

/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=93it-serverengineer.net
/usr/local/awstats/tools/awstats_updateall.pl now


vi /etc/crontab

*/5 * * * * root /usr/local/awstats/tools/awstats_updateall.pl now
*/5 * * * * root /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=93it-serverengineer.net

추가합니다.

 

systemctl enable crond

systemctl restart crond

 

URL를 

http://93it-serverengineer.net/awstats/awstats.pl?config=93it-serverengineer.net

 

접속합니다.

댓글