본문으로 바로가기

[Ubuntu] 우분투 서버모니터링 - Piwik

category 리눅스/Ubuntu 2013. 8. 2. 23:30

awstats를 대체할 만한 것을 찾다가 발견한 오픈소스 웹 분석기를 소개합니다. 설치가 간편하고 UI가 깔끔하며 모바일도 지원하여 실시간 분석이 가능합니다. 구글에서 제공하는 Google Analytics와 유사하고 확장기능도 제공하는 php 기반의 애플리케이션입니다.

위의 설치방법을 참조하여 설치하면 되는데 이를 우분투에서의 설치기를 간략화해서 설명한다.

설치전 요구사항

  • php 5.1.3 이상 (php 5.3 이상 추천)
  • MySQL 4.1 이상
  • pdo 와 pdo_mysql PHP 확장(기본적으로 활성화)
  • PHP GD 확장
  • MySQL 사용자 요구사항

웹호스팅을 사용하고 있다면 호스팅에서 사용하고 있는 DB에 piwik 사용자를 추가하고 SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, LOCK에 대한 권한을 부여 해야 한다.

mysql 접속 (호스팅 사용자는 자신의 mysql 접속프로그램으로 자신의 ID로 접근)

mysql -uroot -p

데이터베이스 생성 (호스팅 사용자는 부여받은 DB사용)

CREATE DATABASE piwik;

아래의 구문중에 $piwik_db_name_here 부분은 생성한 DB명을 입력 - piwik (호스팅 사용자는 부여받은 DB명입력)

생성할 유저명은 piwik, $password 부분에 원하는 패스워드로 설정

아래 명령어 입력전에 LOAD DATA INFILE 이용하기(에러 대처방법)을 읽어보길 권한다.

GRANT ALL PRIVILEGES ON $piwik_db_name_here.* TO piwik@localhost IDENTIFIED BY '$password' WITH GRANT OPTION;

Piwik 설치하기

최신버전을 다운로드 하고 압축을 풀고 서비스할 디렉토리로 이동시킨다.

wget http://builds.piwik.org/latest.zip
unzip latest.zip
sudo mv piwik /var/www/example.com/public_html
sudo chown -R www-data:www-data /var/www/example.com/public_html/

(호스팅을 사용하는 일반 사용자는 http://builds.piwik.org/latest.zip를 다운받고 압축을 풀어 piwik 디렉토리를 바이너리모드로 업로드 한다.)

웹브라우저로 http://도메인명/piwik 으로 접속한다.

이때 문제가 발생한 경우 piwik은 해결할 수 있는 방법을 제시해준다.


1. 환영합니다. 다음 선택

2. 서버로부터 Piwik 요구 사항을 충족하는지 확인한다. 문제가 발생하면 이를 수정하는 법을 알려준다.

3. 데이터베이스 설치

  • database server : localhost
  • login : piwik
  • password : 위에서 정한 패스워드
  • database name : 위에서 정한 DB명
  • table prefix : piwik_
  • adapter : PDO_MYSQL

4. 데이터베이스 설치 확인

5. 테이블 생성

6. 수퍼 유저 생성

Piwik은 한명의 수퍼 유저를 할당하는데 모니터링 할 새 웹사이트 및 사용자를 추가할 수 있고, 사용자의 권한을 변경하고, 플러그인을 활성하거나 비활성하는 관리작업을 수행할 수 있다.

7. 웹사이트 설정

  • 웹사이트 이름 : my blog (분석할 사이트명)
  • 웹사이트 URL : http://blog.uzuro.com (분석할 사이트 주소)
  • 웹사이트 시간대 : Seoul
  • 전자 상거래 : 일반 사이트라면 전자상거래 사이트 아님

8. 자바스크립트 태그
추적 태그를 복사해 분석 추적을 사용할 사이트이 모든 페이지의 </body> 태그 이전에 붙여 넣는다. 웹페이지를 만들때 header.php 혹은 footer.php 와 같이 반복사용되는 곳에 붙여 놓으면 좋다. 워드프레스를 사용하는 경우 플러그인을 제공한다. WP-Piwik 플러그인

9. 축하합니다.

GeoIP 설정하기

piwik은 MaxMind’s GeoIP databases을 이용하여 과거보다 더 정확하게 위치정보를 파악한다. MaxMind 사에서 제공하는 위치정보 데이터베이스는 상업용 버전과 무료버전이 있는데 무료버전은 정확도가 떨어진다. 무료 버전에는 국가의 IP주소를 제공하는 데이터베이스와 도시의 IP를 제공하는 GeoLiteCity 데이터베이스가 있는데 GeoLiteCity는 상업용 버전과 같기 때문에 이를 추천한다.

정확한 방문자의 위치정보를 얻는법

GeoIP를 활성화 하려면 설정 > 지리적 위치로 이동한다. piwik은 geolitecity 데이터베이스를 다운로드 할 도구가 포함되어 있다(나의 경우 이 자동 다운로드가 되지 않았다).

piwik의 최신버전은 GeoIP 데이터베이스에 대한 자동 업데이트가 포함되어 있다. 수동으로 GeoLite City를 다운로드할 경우, 압축된 파일을 압축을 풀고 이름을 GeoLiteCity.dat 에서 GeoIPCity.dat 으로 변경해야 한다.

GeoIP를 사용할 사이트에 piwik 설치한 곳(예: /var/www/example.com/public_html/piwik/misc/ )에 복사해 넣는다.

cd /var/www/example.com/piwik/misc
sudo wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
sudo gunzip GeoLiteCity.dat.gz
sudo mv GeoLiteCity.dat GeoIPCity.dat

무료버전을 사용할 경우 위치정보가 Unknown으로 표기 될 경우가 있다. GeoIP를 이용해 visitor-world-map과 연동하여 실시간으로 위젯화하여 보여줄수 있다.

위치 공급자의 기본 값은 ISP에서 제공하는 값으로 설정되어 있는데 GeoIP를 추천하고 있다.

GeoIP(PHP)

이 위치 공급자는 서버에 설치 및 구성을 요구하지 않기 때문에 공유 호스팅에 적합한 설치방법이다. GeoIP 데이터베이스 및 MaxMind의 PHP API를 사용하여 정확하게 방문자의 위치를 결정한다.

웹사이트의 트래픽이 높은 경우에 이 위치 공급자는 너무 느리기 때문에 PECL를 이용하는 방법이나 아파치 서버모듈을 설치하는 것을 권장한다.

GeoIP(PECL)

이 위치 공급자는 PECL 모듈과 GeoIP 데이터베이스를 사용하여 정확하고 효율적으로 방문자의 위치를 결정한다. 사용에 제한이 없으므로 이것을 추천하고 있다.

패키지들의 설치와 구성에 필수적인 것들을 설치

sudo apt-get install build-essential

apt-get으로 PEAR을 설치하기 위해 필요한 것을 설치

sudo apt-get install php-pear

PHP5 소스파일 컴파일하기 위해 필요한 패키지를 설치

sudo apt-get install php5-dev

PHP5와 연동 모듈과 라이브러리 설치

sudo apt-get install php5-geoip php5-dev libgeoip-dev

pecl을 이용해 GeoIP를 설치

sudo pecl install geoip

PHP 설정파일에서 [PHP] 섹션에 geoip.so를 설정하고 [gd] 섹션에 geoip 디렉토리를 설정한다.

sudo vi /etc/php5/apache2/php.ini

  [PHP]
  extension=geoip.so

  [gd]
  geoip.custom_directory=/var/www/example.com/public_html/piwik/misc

아파치 재시작

sudo service apache2 restart

Piwik 페이지에 접속하고 설정 > 지리적 위치로 이동하여 GeoIP(PECL)를 선택한다.

GeoIP(Apache)

이 위치 공급자는 Apache(아파치)의 GeoIP 모듈을 이용하여 빠르고 정확하지만 일반 브라우저의 추적만 사용할 수 있다.

모듈 설치

sudo apt-get install libapache2-mod-geoip

모듈 설정

sudo vi /etc/apache2/mods-enabled/geoip.conf
 
  ; GeoIP 데이터베이스 경로
  GeoIPDBFile /var/www/example.com/public_html/piwik/misc/GeoIPCity.dat 
  GeoIPScanProxyHeaders On

아파치 및 GeoIP 확장 재시작

sudo service apache2 restart

Piwik > 설정(Setting) > Geolocation.

문제 해결

Piwik을 사용하면서 몇가지 문제점들을 해결한다.

LOAD DATA INFILE 에러

위에서 자세히 설명했다.

플러그인 활성/비활성 문제

Piwik의 플러그인은 zip파일로 배포되고 이를 압축해제하여 piwik/plugins 디렉토리 아래에 플러그인 폴더채로 업로드 하면 설정 > 플러그인 - 설치됨 메뉴를 통해서 이를 관리할 수 있다.

현재 버전에서는 한국어 번역부분과 문제가 있는지 활성/비활성이 작동하지 않으니 전체메뉴(상단)의 언어변경을 통하여 영문으로 전환하면 이것이 작동한다.

PHP Warning: Module 'geoip' already loaded in Unknown on line 0

geoip 관련 설치하면서 /etc/php5/conf.d/geoip.ini 파일이 생성되어 자동으로 포함되는데 위의 설정에서 이를 따로 한번더 추가해서 발생하는 문제같다. /etc/php5/apache2/php.ini 파일에 추가한 extension=geoip.so을 삭제한다.