1.1.1版本实时浏览不能使用,1.2版本可以。
源码安装
yum install ncurses-devel
wget http://tar.goaccess.io/goaccess-1.2.tar.gz
tar -xzvf goaccess-1.2.tar.gz
cd goaccess-1.2/
./configure --enable-utf8
make
make install
修改配置文件
nginx日志配置文件
vim /usr/local/etc/goaccess.conf
time-format %H:%M:%S
date-format %d/%b/%Y
log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u"
网页实时显示
goaccess -f /data/nginx_access_log/nginx_access_2020-10-27.log -o /data/www/public/report.html -p /usr/local/etc/goaccess.conf --real-time-html --daemonize
将report.html 放到web服务器目录下
nginx日志格式设置
log_format可设置的参数格式及说明如下:
参数 | 说明 | 示例 |
$remote_addr | 客户端地址 | 119.40.32.45 |
$remote_user | 客户端用户名称 | – |
$time_local | 访问时间和时区 | [20/Nov/2014:10:52:09 +0800] |
$request | 请求方法、URI和HTTP协议 | GET /index.html HTTP/1.1 |
$http_host | 请求地址,即浏览器中你输入的地址(IP或域名) | 115.29.149.25/www.rootop.org |
$status | HTTP请求状态 | 200 |
$upstream_status | upstream状态 | 200 |
$body_bytes_sent | 发送给客户端文件内容大小 | 547 |
$http_referer | url跳转来源 | http://www.baidu.com/ |
$http_user_agent | 用户终端浏览器等信息 | “Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; SV1; GTB7.0; .NET4.0C; |
$ssl_protocol | SSL协议版本 | TLSv1 |
$ssl_cipher | 交换数据中的算法 | RC4-SHA |
$upstream_addr | 后台upstream的地址,即真正提供服务的主机地址 | 192.168.10.23:80 |
$request_time | 整个请求的总时间 | 00.007 |
$ssl_protocol | SSL协议版本 | TLSv1 |
$http_x_forwarded_for | 客户端地址(nginx做反向代理时) | 119.40.32.45 |
项目地址:https://github.com/allinurl/goaccess
goaccess nginx格式参数
%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)。
采集多个日志文件
zcat -f /data/nginx_access_log_all/nginx_access_* | goaccess -o /data/www/public/report.html -p /usr/local/etc/goaccess.conf