文档章节

开源网站访问统计系统Piwik的基本使用

Feng_Yu
 Feng_Yu
发布于 2014/02/24 01:10
字数 1673
阅读 4120
收藏 59

#piwik简介#

最近试用了开源的网站访问统计系统——piwik,觉得功能非常强大,一点不输于商业产品百度统计与google analysis,替代他们完全没有问题。

关于piwik的简介可以去piwik的官网( http://piwik.org )查看,有详细的介绍和视频演示。之前OSChina也有简单的介绍( http://www.oschina.net/p/piwik )。

以下是采集到的分析数据效果图:

在此输入图片描述

在此输入图片描述

#piwik安装#

首先需要解决依赖项( http://piwik.org/docs/requirements/ ),ubuntu/debian使用下列命令安装所有依赖项(我用的是apache,别的webserver请替换成相应的软件包)

apt-get install apache2 mysql-server php5 php5-mysql php5-gd

如需定位访客的地理位置,参考官方文档: http://piwik.org/docs/geo-locate/, 或者使用JS追踪的方式,通过JS代码获取访客的IP归属地。

安装过程参考官方文档( http://piwik.org/docs/installation ),比较简单,就不详细介绍了。

配置好apache之后,通过浏览器访问,一步步配置完毕之后,看到如下界面之后,就可以使用了:

在此输入图片描述

在此输入图片描述

在此输入图片描述

#piwik使用#

刚装好的Piwik是空空如也的,此时我们需要这个系统帮我们统计数据。

目前Piwik支持两种采集用户访问记录的方式: JS追踪访问日志追踪

JS追踪可定制型高,可以获取到用户的分辨率,浏览器插件等等,还可以捕获自定义变量。访问日志追踪(如apache的accesslog)可以追踪到用户的错误请求(如40X错误,有助于捕获到恶意用户和爬虫,蜘蛛等等),目前这两种追踪得到的数据还不支持合并

这两种追踪模式的详细优缺点可以参考官方的这篇文档: http://piwik.org/faq/log-analytics-tool/faq_16305/

##JS追踪##

管理设置-网站-右边即可看到"显示跟踪代码",如下图所示:

在此输入图片描述

将此代码复制到web项目的footer中即可(即所有页面都嵌入这段相同的js代码,用于捕获用户的信息,如分辨率,浏览器UA,IP等),还可以按照官方文档,捕获自定义变量。

参考官方文档的帮助,这里不再赘述: http://piwik.org/docs/javascript-tracking/

##log追踪##

log追踪无需修改web项目,但是必须要有登录服务器并读取accesslog的权限。

log追踪的详细用法参考官方文档: http://piwik.org/faq/log-analytics-tool/ , https://piwik.org/log-analytics/

log追踪的过程是解析webserver的accesslog,然后通过piwik的API上传,最终在piwik页面上展示。

这个过程不用自己去实现了,piwik的压缩包中已经带有一个python脚本可以帮助我们完成这个工作了,该脚本存储于piwik目录下的misc/log-analytics/import_logs.py

将这个脚本远程拷贝到目标服务器上,按照脚本的参数格式执行即可,我的命令行:

    ./import_logs.py --url=http://192.168.1.106/piwik/ --idsite=1 --recorders=2 --token-auth=319fb461d3225905039551e861edde60 --enable-static --enable-bots --enable-http-errors --enable-http-redirects /var/log/apache2/access.log

使用--help参数即可看到这个脚本的命令行,只有一个--url参数是必须的,指明piwik的访问路径。详细帮助参见官方文档(https://piwik.org/docs/log-analytics-tool-how-to/),这里对我使用的参数做一下简介:

--idsite表明抓取到的信息上传到哪个序号对应的网站(这里的参数为1,代表解析的数据会统计到first_web这个网站中)

--token-auth这个参数是管理员的访问token,在系统页面最顶上的API点开即可看到,如下图所示。这个参数可以使用--login=LOGIN --password=PASSWORD这两个参数替代,必须是管理员的账户和密码。

在此输入图片描述

--recorders使用多线程解析,默认为1,官方建议这个参数和核心数一致。

--enable-static --enable-bots --enable-http-errors这三个参数基本上把apache的accesslog能抓取到的全部信息都抓全了,抓取静态资源(jpg,png,js,css等非html的访问),抓取bots(不知道这个是什么,猜测是否是机器人?),抓取html错误码(如40X请求等等)

/var/log/apache2/access.logapache的accesslog存放路径,常见的webserver如nginx,lighthttpd等,脚本自带有解析引擎,无需别的参数,如果非常见webserver的话,加上--log-format-regex这个参数来自定义日志格式抓取。

当脚本执行完毕时,即可在piwik中看到网站的访问记录了,使用也很方便。长期使用可以写入crontab即可。

注意:

  • log解析的方式追踪比较慢,不适合实时追踪用户访问记录,建议每过几小时执行一次crontab,来定时解析log。
  • 如果开启了--enable-static --enable-bots --enable-http-errors这三个参数,解析过程将会很缓慢(我这边大概十几条每秒),不要让crontab太频繁,会直接让mysql数据库超出连接而挂掉,我是每4小时执行一次crontab。

#其他一些问题#

1,log追踪和js追踪的方式互有优势,都可以抓到一些对方所无法获取的信息,但是目前这两种方式追踪到的数据还不支持合并,因此,需要同时使用这两种方式追踪时,建议分开两个不同的网站追踪不同的数据,如first_web用于JS追踪,first_web(log)用于log追踪。参见官方FAQ: http://piwik.org/faq/log-analytics-tool/faq_16307/

2,当访问量较高时,请关闭Piwik触发处理,已提高页面响应,刷新报表数据由后台crontab执行,参考如下图所示,crontab的设置见右边的提示中的官方文档:

在此输入图片描述

3,自动邮件的时间有些问题,piwik内部时间使用的是UTC时间,也就是中国时区(CST,东八区)比UTC时区的时间快8个小时。如果使用默认的邮件发送时间0点发送,将会收到前天的访问记录报表(中国时间0点对应UTC时间昨天的16点,那么此时发昨天的报表就会收到前天的报告)。

这个问题已经给官方提过issue,不过官方还没有回应我: http://forum.piwik.org/read.php?2,111809

暂时的方案是把时间改到8点以后,就可以收到正常的邮件报表。

© 著作权归作者所有

Feng_Yu

Feng_Yu

粉丝 164
博文 38
码字总数 45532
作品 0
西安
运维
私信 提问
加载中

评论(4)

chen xiangkai
chen xiangkai

引用来自“chen xiangkai”的评论

问下,piwik如何识别一个登录用户?
新增一个元素表达式应该怎么写?
希望得到你的回复,谢谢!

引用来自“Feng_Yu”的评论

这些在piwik的官方文档有,识别登录用户猜测是增加自定义追踪项,通过js追踪cookie,可以识别用户。具体可以看官方文档关于js追踪的章节,可以增加自定义追踪参数
找到了,可以参考http://developer.piwik.org/api-reference/tracking-javascript 中的自定义追踪参数,需要自己写一些js代码。
Feng_Yu
Feng_Yu 博主

引用来自“chen xiangkai”的评论

问下,piwik如何识别一个登录用户?
新增一个元素表达式应该怎么写?
希望得到你的回复,谢谢!
这些在piwik的官方文档有,识别登录用户猜测是增加自定义追踪项,通过js追踪cookie,可以识别用户。具体可以看官方文档关于js追踪的章节,可以增加自定义追踪参数
chen xiangkai
chen xiangkai
问下,piwik如何识别一个登录用户?
新增一个元素表达式应该怎么写?
希望得到你的回复,谢谢!
摩云菜
摩云菜
又“贱”了啊20
Piwik 3.0.0 发布,网站访问统计系统

网站访问统计系统 Piwik 3.0.0 发布了。Piwik 是一套基于 PHP5+MySQL 技术构建的开源网站访问统计系统,前身是 phpMyVisites。Piwik 可以给你详细的统计信息,比如网页浏览人数,访问最多的页...

达尔文
2016/12/20
1K
2
Piwik 3.0.1 发布,网站访问统计系统

网站访问统计系统 Piwik 3.0.1 发布了。Piwik 是一套基于 PHP5+MySQL 技术构建的开源网站访问统计系统,前身是 phpMyVisites。Piwik 可以给你详细的统计信息,比如网页浏览人数,访问最多的页...

两味真火
2017/01/11
1K
0
Piwik 2.11.0 RC 发布,网站访问统计系统

Piwik 2.11.0 RC 发布,这是 Piwik 全新的主要发行版本。该版本将侧重于可靠性、性能和可用性的提升,重新组织了用户和管理菜单以提供更好的使用体验。同时也包含一些有趣的新特性。详情请看...

oschina
2015/02/17
569
0
Piwik 1.9 发布,网站访问统计系统

Piwik 1.9 发布了,该版本包含三个主要功能:网页过渡、网站搜索分析和更简单的地理位置配置,详情请看 Piwik 1.9 release blog post 同时发布的还有 Piwik Mobile 1.9 Piwik是一套基于Php+M...

oschina
2012/10/17
1K
4
Piwik 2.12.0 发布,网站访问统计系统

Piwik 2.12.0 更新,改进内容如下: 改进了内存和 CPU 使用率。 增加了一个新的数据质量工具:可以通过控制台命令来定位任何已访问过的地理定位数据。 安全功能改进:一键更新更佳安全,HTT...

oschina
2015/03/23
1K
3

没有更多内容

加载失败,请刷新页面

加载更多

马蜂窝 IM 系统架构的演化和升级

今天,越来越多的用户被马蜂窝持续积累的笔记、攻略、嗡嗡等优质的分享内容所吸引,在这里激发了去旅行的热情,同时也拉动了马蜂窝交易的增长。在帮助用户做出旅行决策、完成交易的过程中,I...

马蜂窝技术
26分钟前
2
0
C++学习笔记:C/C++中static关键词有用途

C语言中:static关键词有三种用途 1.静态局部变量 特点: 该变量在全局数据区分配内存(局部变量在栈区分配内存) 静态局部变量在程序执行到该对象的声明处时被首次初始化,以后不会再进行初...

StupidZhe
26分钟前
2
0
Mysql Group Replication关闭和启动所有的组成员的注意点

Mysql Group Replication关闭和启动所有的组成员的注意点 2018年05月17日 11:45:02 zuozhiji 阅读数 1772 由于的我mgr建立在虚拟机上面(即使是正式环境,如果计划内的停机或者断电都需要关闭...

rootliu
30分钟前
2
0
并发模式与 RPS 模式之争,性能压测领域的星球大战

本文是《如何做好性能压测》系列专题分享的第四期,该专题将从性能压测的设计、实现、执行、监控、问题定位和分析、应用场景等多个纬度对性能压测的全过程进行拆解,以帮助大家构建完整的性能...

阿里云官方博客
31分钟前
2
0
iTOP-4412开发板基于Linux-C测试程序的编译和运行

iTOP-4412 开发板可以运行的文件系统很多,在具体的文件系统上实现特定功能前,可 以使用 Linux-C 程序来测试硬件以及驱动。而且这些程序很容易移植到 Android、Qt/E 以及 最小文件系统上。 ...

书白
32分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部