2019-07-25 17:41:06 星期四
| nginx日志目录 | /var/log/nginx/access.log |
|---|---|
| goaccess程序目录 | /usr/local/bin/goaccess |
| goaccess生成报告目录 | /data/www/goaccess/report.html |
1.1 GoAccess简介
GoAccess是一个非常良心的开源软件,它的良心之处体现在如下方面:
1)安装简单;
2)操作容易;
3)界面酷炫;
GoAccess 官网
https://goaccess.io
https://goaccess.io/man
GoAccess被设计成一个基于终端的快速日志分析器。它的核心思想是实时快速分析和查看Web服务器统计信息,而无需使用您的浏览器(如果您想通过SSH快速分析访问日志,或者您只是喜欢在终端中工作)。
虽然终端输出是默认输出,但它能够生成完整的,自包含的实时 HTML报告(非常适合分析,监控和数据可视化),以及a JSON和CSV报告。
1.2 安装GoAccess
1.2.1 系统环境说明
[root@localhost ~]# cat /etc/issue
CentOS release 6.4 (Final)
Kernel \r on an \m
[root@localhost ~]# uname -r
2.6.32-358.el6.x86_64
1.2.2 安装GoAccess
官网提供多种系统版本的安装方法: https://goaccess.io/download#installation
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum -y install gcc gcc-c++ glib2 glib2-devel libmaxminddb-devel ncurses ncurses-devel GeoIP GeoIP-devel
wget http://tar.goaccess.io/goaccess-1.3.tar.gz
tar -xzvf goaccess-1.3.tar.gz
cd goaccess-1.3
./configure --enable-utf8 --enable-geoip=mmdb
make
make install1.2.3 使用GoAccess分析日志
注:本次分析日志为 nignx 标准输出日志
/usr/local/bin/goaccess -f /var/log/nginx/access.log日志格式选为 NCSA Combined Log Format
回车即可看到当前日志分析结果
1.3 生成HTML页面
1.3.1 修改配置
查看当前配置
[root@localhost ~]# cd /usr/local/etc/goaccess/
[root@localhost goaccess]#
[root@localhost goaccess]# egrep -v "^#|^$" goaccess.conf由上可见默认配置中并无时间参数,需要在配置中添加时间参数。
cat >>goaccess.conf<<EOF
time-format %H:%M:%S
date-format %d/%b/%Y
#NCSA Combined Log Format
log-format %h %^ %^ [%d:%t %^] "%r" %s %b "%R" %^ "%u" ~h{," } %^
EOF1.3.2 配置Nginx
mkdir /data/app/goaccess_web
nginx配置
location /goaccess {
alias /data/app/goaccess_web;
index index.html;
}1.3.3 添加定时任务
0 * * * * /usr/local/bin/goaccess /var/log/nginx/access.log -o /data/www/goaccess/report.html -p /usr/local/etc/goaccess/goaccess.conf1.3.4 浏览器访问
http://192.168.8.209:8400/goaccess/report.html
1.4 补充goaccess日志格式
goaccess 格式参数解释:
%x 与时间格式和日期格式变量匹配的日期和时间字段。当使用时间戳而不是日期和时间在两个单独的变量中时使用这个。
%t time字段匹配时间格式变量。
%d date字段匹配日期格式变量。
%v 根据规范名称设置(服务器块或虚拟主机)的服务器名称。
%e 这是通过HTTP身份验证请求文档的用户ID。
%h host(客户端IP地址,IPv4或IPv6)
%r 客户端的请求行。这需要围绕请求的特定分隔符(单引号,双引号等)可解析。否则,请使用特殊格式说明符(如%m,%U,%q和%H)的组合来解析各个字段。
注意:使用%r获取完整请求或%m,%U,%q和%H以形成请求,两者不要同时使用。
%m 请求方式。
%U 请求的URL路径。
注意:如果查询字符串在%U中,则不需要使用%q。但是,如果URL路径不包含任何查询字符串,则可以使用%q,并将查询字符串追加到请求中。
%q 查询字符串。
%H 请求协议。
%s 服务器发送回客户端的状态码。
%b 返回给客户端的对象的大小。
%R “Referer”HTTP请求标头。
%u 用户代理HTTP请求标头。
%D 服务请求所用的时间,以微秒为单位。
%T 以毫秒级分辨率提供服务所需的时间(秒)。
%L 服务请求所需的时间,以毫秒为单位,为十进制数。
%^ 忽略此字段。
%~ 向前移动日志字符串,直到找到一个非空格(!isspace)字符。
~h X-Forwarded-For(XFF)字段中的主机(客户端IP地址,IPv4或IPv6)。
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" "$resp_body" '
'"$http_user_agent" "$http_x_forwarded_for" "$upstream_addr"';
log-format %h %^ %^ [%d:%t %^] "%r" %s %b "%R" %^ "%u" "%^" %^参考文档
https://www.cnblogs.com/clsn/p/10096054.html#安装goaccess
https://www.cnblogs.com/yjlch1016/p/9102894.html
https://www.centos.bz/2018/07/centos安装goaccess快速方便的分析网站日志/
http://www.rootop.org/pages/3858.html