Goaccess分析Apache的日志

Apache IT敢客 7个月前 (04-19) 8497次浏览 已收录 0个评论 扫描二维码

GoAccess 简介

简单来说呢 GoAccess 是一个专门用来分析日志的工具,既可以在终端中展示结果,也可以生成 HTML 报表在浏览器中查看。GoAccess 最吸引人的一点就是它生成的 HTML 足够炫酷(ÒωÓױ)。Goaccess 分析 Apache 的日志

安装

由于我是通过 https 来访问到 GoAccess 生成的 HTML 的,GoAccess 使用的 WebSocket 也必须使用加密的wss:// 协议,需要安装 libssl-dev(ubuntu)或者 openssl-devel(centos),你如果走 http 的话就不用安装这个包了。

  1. 下载源码

$ wget http://tar.goaccess.io/goaccess-1.2.tar.gz

为什么不从 GitHub 上克隆呢?因为这个是稳定版,要遵循少踩坑的原则└( ̄^ ̄ )┐

  1. 编译

$ tar -xf goaccess-1.2.tar.gz
$ cd goaccess-1.2/
$ ./configure --enable-utf8 --with-openssl
$ make -j2
$ make install

参数 -j2 让 make 可以同时编译两个文件,这样稍微快一些,我的 VPS 是单核的所以没有开太大(ノДT),还有 不需要走 https 的话可以去掉 --with-openssl 选项。

配置

GoAccess 的配置文件在 /etc/goaccess.conf,不过我喜欢把配置文件放在 $HOME。

~/.goaccessrc

time-format %H:%M:%Sdate-format %d/%b/%Ylog-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u"real-time-html true
ssl-cert <cert.crt>
ssl-key <priv.key>
ws-url wss://<your-domain>port <port>
output /var/www/<xxx>/stat/index.html

需要注意的几点

  1. 三个 format 的设置要与 apache 的设置一致,当然如果你像我这样根本没改过 apache 的日志格式的话就用这个就行了;

  2. real-time-html 用来使用实时刷新特性;

  3. port 是用来和浏览器通信的,选一个没被占用的就行(别忘了在防火墙里开启端口!血的教训〒△〒 哭);

  4. 如果你不走 https 的话,ssl-certssl-keyws-url都不是必需的;

  5. 把 output 放到你的站点目录下面;

  6. 记着创建 stat/ (或者其他什么的)文件夹。

另外说一下 ws-url,我之前没有设置这个选项的时候 HTML 里 WebSocket 用的协议是 ws://, 浏览器是不允许在 https 网页里使用非加密协议的,找了一圈发现 ws-url 这个选项,其实我觉得应该叫 ws-scheme 才贴切呢(・∀・)

走起~

为了后台运行,我是用 shell 运行的,你也可以用 nohup 命令。
编辑 shell 并启动 GoAccess,然后设置个定时任务,每 10 分钟跑一次。

#!/bin/bash
today=`date +%Y_%m_%d`
log=/data/www/log/${today}_www.xxx.com-access.log
outfile=/data/www/xxx/log/${today}_www.xxx.com.html
pid=`ps -ef|grep goaccess|grep -v grep |awk '{print $2}'`
kill -9 $pid
/usr/bin/goaccess -f $log -o $outfile --real-time-html --date-spec=hr --hour-spec=min --ws-url=www.xxx.com  >/dev/null 
year=`date -d "365 days ago" +%Y_%m_%d`
yearfile=/data/www/xxx/log/${year}_www.xxx.com.html
rm -rf $yearfile

一切正常的话 GoAccess 应该开始分析日志文件了,然后显示 "WebSocket server ready to accept new client connections"。

连接刚才那个会话。
现在用浏览器打开 http://<your-domain>/log/${today}_www.xxx.com.html 应该就可以看见分析结果了,每 10 分钟刷新一次数据。


IT 敢客 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Goaccess 分析 Apache 的日志
喜欢 (157)
[313176056@qq.com]
分享 (0)
IT敢客
关于作者:
“我所做的一切都是为了方便我的生活~~~“
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址