centos 8 nginx goaccess实时分析访问日志
$ wget https://tar.goaccess.io/goaccess-1.4.2.tar.gz 
$ tar -xzvf goaccess-1.4.2.tar.gz 
$ cd goaccess-1.4.2/ 
$ ./configure --enable-utf8 --enable-geoip=legacy 
$ 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

nginx日志转goaccess给可参考 https://github.com/stockrt/nginx2goaccess

 

将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格式参数

  1. %x 与时间格式和日期格式变量匹配的日期和时间字段。当使用时间戳而不是日期和时间在两个单独的变量中时使用这个。
  2. %t time字段匹配时间格式变量。
  3. %d date字段匹配日期格式变量。
  4. %v 根据规范名称设置(服务器块或虚拟主机)的服务器名称。
  5. %e 这是通过HTTP身份验证请求文档的用户ID。
  6. %h host(客户端IP地址,IPv4或IPv6)
  7. %r 客户端的请求行。这需要围绕请求的特定分隔符(单引号,双引号等)可解析。否则,请使用特殊格式说明符(如%m,%U,%q和%H)的组合来解析各个字段。
  8. 注意:使用%r获取完整请求或%m,%U,%q和%H以形成请求,两者不要同时使用。
  9. %m 请求方式。
  10. %U 请求的URL路径。
  11. 注意:如果查询字符串在%U中,则不需要使用%q。但是,如果URL路径不包含任何查询字符串,则可以使用%q,并将查询字符串追加到请求中。
  12. %q 查询字符串。
  13. %H 请求协议。
  14. %s 服务器发送回客户端的状态码。
  15. %b 返回给客户端的对象的大小。
  16. %R “Referer”HTTP请求标头。
  17. %u 用户代理HTTP请求标头。
  18. %D 服务请求所用的时间,以微秒为单位。
  19. %T 以毫秒级分辨率提供服务所需的时间(秒)。
  20. %L 服务请求所需的时间,以毫秒为单位,为十进制数。
  21. %^ 忽略此字段。
  22. %~ 向前移动日志字符串,直到找到一个非空格(!isspace)字符。
  23. ~h X-Forwarded-For(XFF)字段中的主机(客户端IP地址,IPv4或IPv6)。

 

上一篇