본문으로 바로가기

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

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

Piwik을 사용하면서 알아두면 좋은 것들과 몇가지 설정들에 알아봅니다.

대시보드 레이아웃 변경

Piwik 설치후 접속해보면 첫페이지는 대시보드 페이지이다. 대시보드의 레이아웃은 기본적으로 3개의 열로 구성된 화면으로 위젯을 정렬하여 보여주는데 위젯의 각각의 크기를 조절하는 기능은 아직 없기에 이 레이아웃을 변경해서 위젯의 크기를 좀더 확장할 수 있다.

대시보드의 위젯 및 대시보드 ▼ > 대시보드 관리 ↓ - 대시보드 레이아웃 변경으로 레이아웃 변경이 가능하다.

Optimize and Scale Piwik

(서버 규모에 따른 Piwik 최적화)

Piwik는 중대형 사이트의 수백만의 페이지를 서비스할수도 있지만 웹호스팅과 같은 작은 규모에서 실행하는 것이 매우 효율적이다.

* 페이지뷰에 따른 서버 선택

  • 하루 페이지뷰가 1,000 페이지 이하라면 일반적인 웹호스팅에서도 작동하는데 무리가 없다.
  • 하루 페이지뷰가 10,000 페이지 이하라면 빠른 속도의 웹호스팅 혹은 가상서버를 구축해야 한다.
  • 하루 페이지뷰가 10,000 페이지 이상이라면 전용 호스팅이나 가상 서버를 구축해야 한다.

How to Set up Auto-Archiving of Your Reoports

(자동보관법)

웹사이트에 방문자가 하루에 몇 백이상의 방문자가 접속한다면 Piwik로 데이터를 처리하는데 몇분씩 걸릴 수도 있다. 이는 서버에 부하를 주게 되니 이 처리 시간을 피하기 위해 매 시간마다 자동으로 테이터를 처리하도록 cron job을 설정하도록 하자. (Piwik의 기본값은 요청발생시 데이터를 처리하는 Real-time 방식이다.)

Crontab으로 자동보관 하는 법

설정에 php-cli 혹은 php-cgi 설치가 필요하다.

sudo apt-get install php-cli

Crontab 설정

sudo crontab -e

  MAILTO="youremail@example.com"
  5 * * * * www-data /usr/bin/php5 /var/www/example.com/piwik/misc/cron/archive.php -- url=http://example.org/piwik/ > /var/www/example.com/logs/piwik-archive.log
MAILTO="youremail@example.com"

크론작업 실행중에 에러가 발생하면 에러메세지를 메일주소로 발송

www-data

웹서버의 실행 유저 (우분투에선 www-data)

/usr/bin/php5

php의 실행패스, 설치방법에 따라 다를수 있다. which php5 명령으로 패스를 찾자.

/var/www/example.com/logs/piwik-archive.log

만들어진 로그를 저장할 장소. 만일 /dev/null 로 지정하면 로그를 기록하지 않는다.

테스트

su www-data -c "/usr/bin/php5 /var/www/example.com/piwik/misc/cron/archive.php -- url=http://example.org/piwik/"

설정

piwik 수퍼유저로 로그인 > 설정(Settings) > General Settings

Allow Piwik archiving to trigger when reports are viewed from the browser: No로 설정

Reports for today will be processed at most every: 3600 seconds 로 설정

PHP 메모리 증가시키기

만일 Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate X bytes)와 같은 에러가 발생한다면 PHP 메모리를 증가시켜줘야 한다.

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

  memory_limit = 512M
sudo vi /etc/php5/apache/php.ini

  memory_limit = 512M

Data Limits in Piwik

(데이터 제한)

Piwik에서 데이터 저장의 한계점은 서버/하드 디스크의 공간의 여유이다.

테이블 절단

Piwik는 성능상의 이유로 기본값으로 1,000행만을 사용하고 나머지를 절단한다. 설정파일을 수정하여 데이터의 100%를 저장하도록 설정할 수 있다.

상위 500 페이지, 상위 1,000 키워드, 상위 1,000 웹사이트등과 같이 기본값이 설정되어 있다. Pwiki는 'Other' 에 남아있는 모든 페이지, 키워드, etc등을 요약한다.

모든 데이터를 원하거나 현재의 제한된 행보다 더 원할 경우 config/config.ini.php 파일의 값을 설정함으로써 이 제한을 풀수 있다. 아래는 모든 테이블의 5,000 항목으로 제한하는 방법이다.

[General] 
; maximum number of rows for any of the Referers tables (keywords, search engines, campaigns, etc.), and Custom variables names
datatable_archiving_maximum_rows_referers = 5000

; maximum number of rows for any of the Referers subtable (search engines by keyword, keyword by campaign, etc.), and Custom variables values
datatable_archiving_maximum_rows_subtable_referers = 5000

; maximum number of rows for any of the Actions tables (pages, downloads, outlinks)
datatable_archiving_maximum_rows_actions = 5000

; maximum number of rows for pages in categories (sub pages, when clicking on the + for a page category)
datatable_archiving_maximum_rows_subtable_actions = 5000

사용자 정의 변수

방문당 최대 5개의 사용자 변수를 추적하거나 페이지 뷰당 최대 5개의 사용자 변수를 추적할 수 있다.

사용자 정의 변수는 페이지, 이벤트 또는 방문자에 대한 상세한 메타 데이터를 추적하는데 유용하다.

  • 고유한 사용자 정의 변수 이름과 값을 무제한으로 추적할 수 있다.
  • 각 이름이나 값의 길이가 200문자로 제한 된다.
  • 기본적으로 Pwiki는 상위 100 사용자 정의 변수를 처리하고 나머지는 "Other" 아래에 집계된다. 이는 보고서 크기를 작게 유지하고 효율적으로 보고서를 처리하게 된다.

사용자 정의 변수 : http://piwik.org/docs/custom-variables/#toc-data-limits-for-custom-variables

웹사이트당 목표

추적할 수 있는 목표의 수에는 제한이 없다.

당일 전자상거래 거래

하루에 기록할 수 있는 트랜젝션의 수에는 제한이 없다.

전자 메일 보고서

예약된 보고서의 수에는 제한이 없다.

한달 페이지 뷰 수

제한이 없다.

추적 웹사이트 수

제한이 없다.

사용자 수

오직 한명의 수퍼유저의 제한만 있고 일반 유저계정에는 제한이 없다.

데이터 내보내기

내보낼 레코드의 수에는 제한이 없다.

데이터 스토리지 및 데이터 콜렉션 제한

제한이 없다. 데이터는 기본적으로 영원히 유지되나 사용자의 결정으로 데이터의 보관기간을 설정할 수 있다.

Piwik 서버 보안

  • piwik 설치 DB와 다른 DB들을 분리한다. (웹호스팅은 불가능하겟지만...)
  • piwik DB를 위한 새로운 사용자를 만들어 사용한다. (털려도 piwik DB만 털린다.)
  • piwik을 항상 https://(SSL) 상에서 서비스한다(로그인 정보, 암호, token_auth등의 암호화 전송). 아래와 같이 설정하면 http의 요청을 자동으로 https로 리다이렉트 시킨다.
    sudo vi config/config.ini.php
    
      [General]
      force_ssl=1 
    
  • piwik의 접속을 .htaccess를 이용하여 제한한다. .htpasswd를 이용하거나 IP 주소를 이용한다(forum.piwik.org/read.php?6,17251).
  • piwik는 자동업데이트를 제공한다. 이를 활용해라.
  • piwik SecurityInfo 플러그인을 사용해라.
  • SFTP나 SSH를 사용해라.
  • User Privacy를 존중해라 (setting > privacy)

Web Analystics Privacy in Piwik

(사생활 웹분석)

piwik은 사용자 및 분석 데이터의 사생활을 보호한다. 데이터는 MySQL에 저장되고 다른 곳으로 전송되지 않는다.

Setting(설정) > Privacy에서 관련 설정을 할 수 있다.

자동으로 방문자의 IP를 익명화

기본값으로, piwik은 방문자의 IP주소를 저장한다. 방문자의 IP를 익명화하려면 Setting(설정) > Privacy에서 Anonymize Visitors's IP address를 활성화(Yes)하고 마스크할 IP주소의 단위를 지정한다.

오래된 방문자로그를 삭제

이미 처리된 로그들을 지우면 DB 공간 절약, 성능향상, 사생활보호가 이루어진다.

3~6개월간의 로그를 보관하고 이후의 것들은 삭제하는 것을 추천한다. 만약 로그 삭제를 활성화하면 처리되지 않은(접속하지 않아) 로그는 삭제되므로 이를 유념해야 한다. 자동보관설정을 했다면 이미 처리되어 있으니 걱정이 없다.

Setting(설정) > Privacy > Delete old visitor logs from database = Yes

사이트에 관련정보를 수집하고 있다는 것을 알리기

Setting(설정) > Privacy > Piwik opt-out for your visitors

iframe을 복사해 웹사이트에 게시한다.

웹브라우저의 설정 우선

웹브라우저에서 추적기능을 사용하지 않게 설정되어 있다면 이를 존중하여 방문자의 정보를 추적하지 않는다.

Piwik 쿠키 비활성화

piwik은 쿠키를 사용하여 방문자를 추적하기도 하는데 이를 법적으로 금지하는 나라도 있다.

붙여넣는 자바스크립트 코드에서 아래 내용을 추가한다.

paq.push(['disableCookies']); // 이 부분을 추가
paq.push(['trackPageView'];