使用goaccess分析apache,nginx的流量情况

goaacess分析nginx,apache日志

安装

  • centos下安装
yum -y install goaccess
  • mac下安装
brew install goaccess

日志分析

实时分析nginx日志

LANG="zh_CN.UTF-8" goaccess -f ./wap_greencampus_access.log -o ./res.html --log-format=COMBINED --real-time-html --config-file=/usr/local/Cellar/goaccess/1.6/etc/goaccess/goaccess.conf

自定义的nginx内容格式–特殊,并使用中文

LANG="zh_CN.UTF-8" goaccess -f ./tmp.log -o ./nginx_res.html --log-format='%h - %^[%d:%t %^]  %^ "%r" %s %b "%R" "%u"' --date-format='%d/%b/%Y' --time-format='%T'

系统自带的nginx默认格式,并且使用中文

LANG="zh_CN.UTF-8" goaccess -f ./access.log -o ./nginx_res.html --log-format=COMBINED --config-file=/etc/goaccess/goaccess.conf

解析apache日志

LANG="zh_CN.UTF-8" goaccess -f ./http_1336.log -o ./res1.html --log-format='%h - %^[%d:%t %^] "%m %U %H" %s %b' --date-format='%d/%b/%Y' --time-format='%T'

格式参数说明

  • %t 匹配 time-format 变量的时间字段。
  • %d 匹配 date-format 变量的日期字段。
  • %v 根据 canonical 名称设定的服务器名称(服务区或者虚拟主机)。
  • %h 主机(客户端IP地址,IPv4 或者 IPv6)。
  • 客户端请求的行数。这些请求使用分隔符(单引号,双引号)引用的部分可以被解析。否则,需要使用由特殊格式说明符(例如:%m, %U, %q 和 %H)组合格式去解析独立的字段。
    注意: 既可以使用 %r 获取完整的请求,也可以使用 %m, %U, %q and %H 去组合你的请求,但是不能同时使用。
  • %m 请求的方法。
  • %U 请求的 URL。
    注意: 如果查询字符串在 %U中,则无需使用 %q。但是,如果 URL 路径中没有包含任何查询字符串,则你可以使用 %q 查询字符串将附加在请求后面。
  • %q 查询字符串。
  • %H 请求协议。
  • %s 服务器回传客户端的状态码。
  • %b 回传客户端的对象的大小。
  • %R HTTP 请求的 “Referer” 值。
  • %u HTTP 请求的 “UserAgent” 值。
  • %^ 忽略此字段。
  • %~ 继续解析日志字符串直到找到一个非空字符(!isspace)。
  • ~h 在 X-Forwarded-For (XFF) 字段中的主机(客户端 IP 地址,IPv4 或者 IPv6)。

通过例子来说明

执行的命令

我分析的是一个有1个多G的nginx的access日志,并且我对应的goaccess的配置文件在/usr/local/etc/goaccess下,当然这个配置文件路径可以根据自己的环境来的。

LANG="zh_CN.UTF-8" goaccess -f ./m.goaccess.art_access_20220720.log -o ./nginx_res.html --log-format=COMBINED --config-file=/usr/local/etc/goaccess/goaccess.conf

如果要展示成中文,就要执行前,设置LANG="zh_CN.UTF-8"
在这里插入图片描述
查看html文件
如果是linux系统的,就用ftp工具下载到本地查看
在这里插入图片描述

展示效果:

在这里插入图片描述

查看某个时间点的请求情况:

如果想单独从access.log文件中查看某个时间点下的请求情况可以

cat m.goaccess.art_access_20220720.log | grep "20/Jul/2022:18:00" > ~/0720_1800.log

goaccess来源:

https://www.goaccess.cc/?mod=man

一些技巧:

  • 统计访问前10的IP
awk '{print $1}' access.log |sort |uniq -c |sort -k1 -nr |head -n 10
  • 统计日志中访问大于100次的IP
awk '{a[$1]++}END{for(i in a){if(a[i]>100)print i,a[i]}}' access.log
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值