基于docker使用GoAccess分析nginx日志

查询docker镜像

[root@VM-0-8-centos ~]# docker search GoAccess  
INDEX       NAME                                               DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
docker.io   docker.io/allinurl/goaccess                        Official build of GoAccess                      58                   [OK]
docker.io   docker.io/xavierh/goaccess-for-nginxproxymanager   GoAccess for Nginx Proxy Manager Logs           6                    
docker.io   docker.io/diyan/goaccess                           GoAccess in a tiny Docker image powered by...   5                    [OK]

这里选择第一个

下载镜像

[root@VM-0-8-centos ~]# docker pull allinurl/goaccess
Using default tag: latest
Trying to pull repository docker.io/allinurl/goaccess ... 
latest: Pulling from docker.io/allinurl/goaccess
868f34d2a28b: Pull complete 
64df540d479a: Pull complete 
1f99c35f6138: Pull complete 
Digest: sha256:e2b13aed51136a07e5dc839e24ab3b4b170148caa0324d23d805533b4fffc12e
Status: Downloaded newer image for docker.io/allinurl/goaccess:latest

运行docker

注意挂在目录说明:

需要挂载3个目录,data是配置文件目录、html是生成的分析报告目录、logs是日志目录

docker run --restart=always -d -p 7890:7890 \
            -v "/data/project/goaccess/data:/srv/data"         \
            -v "/data/project/goaccess/html:/srv/report"       \
            -v "/data/project/goaccess/logs:/srv/logs"           \
            --name=goaccess allinurl/goaccess
 

配置文件下载地址:https://raw.githubusercontent.com/allinurl/goaccess/master/config/goaccess.conf

在运行前 goaccess需要定义好时间格式、日期格式、日志格式才能分析,必须先配置好goaccess.conf配置文件。

注意:日志格式在不同的环境会不同,请自行按照goaccess的日志进行自定义配置

nginx配置文件中 log_format 与 goaccess配置文件中的log-format当对应关系

    %T				$request_time   	(请求时间)
    %h				$remote_addr		(客户端地址)
    %d:%t %^		[$time_local]		(时间日期)
    %m 				$request_method		(请求方法)
    %U				$request_uri		(请求路径)
    %H				$server_protocol	(服务器请求协议)
    %s 				$status				(状态码)
    %b 				$body_bytes_sent	(字节数)
    "%R"			"$http_referer"		("referer" Http请求标头)
    %^				(当在统计信息里不需要这个参数时,可以使用忽略此参数)

     

 Docker运行方法一(适合单文件)

docker run --rm -p7890:7890 -v "/data/project/goaccess/data:/srv/data" -v "/data/project/goaccess/html:/srv/report" -v "/data/project/goaccess/logs:/srv/logs" --name=goaccess allinurl/goaccess --no-global-config --config-file=/srv/data/goaccess.conf --output=/srv/report/index.html --log-file=/srv/logs/access.log-20220128

   Docker运行方法二(适合多文件,但需修改-f后面的日志文件)

        

docker run --rm -p7890:7890 -v "/data/project/goaccess/data:/srv/data" -v "/data/project/goaccess/html:/srv/report" -v "/data/project/goaccess/logs:/srv/logs" --name=goaccess allinurl/goaccess --no-global-config -f file1 file2 file3 file4 --config-file=/srv/data/goaccess.conf --output=/srv/report/index.html --log-file=/srv/logs/access.log-20220128

分析面板

goaccess的html面板解析

General Statistics:此面板提供了几个指标的摘要,其中一些包括:有效和无效请求的数量,分析数据集所花费的时间,唯一访问者,请求的文件,静态文件(CSS,ICO,JPG等)HTTP引用,404s,已解析日志文件的大小和带宽消耗。

Unique visitors:此面板显示点击次数,唯一身份访问者和每个日期的累积带宽等指标。包含相同IP,相同日期和相同用户代理的HTTP请求被视为唯一访问者。默认情况下,它包括网络爬虫/蜘蛛。 可以使用--date-spec = hr将日期特异性设置为小时级别,这将显示日期,例如05 / Jun / 2016:16。如果您想跟踪小时级别的每日流量,这非常棒。

Requested files:此面板显示Web服务器上请求最多的文件。它显示了匹配,唯一身份访问者和百分比,以及累积带宽,协议和使用的请求方法。

Requested static files:列出了最常用静态文件,如:JPG,CSS,SWF,JS,GIF,和PNG文件类型,使用相同的指标作为最后的面板一起。可以将其他静态文件添加到配置文件中。

404 or Not Found:显示与先前请求面板相同的指标,但是,其数据包含在服务器上找不到的所有页面,或通常称为404状态代码。

Hosts:此面板包含有关主机本身的详细信息。这非常适合发现×××性爬虫,并确定谁在吃你的带宽。 扩展面板可以显示更多信息,例如主机的反向DNS查找结果,原产国和城市。如果-a启用了参数,则可以通过选择所需的IP地址,然后按Enter来显示用户代理列表。

Operating Systems:此面板将报告主机在到达服务器时使用的操作系统。它试图提供每个操作系统的最具体版本。

Browsers:此面板将报告主机在访问服务器时使用的浏览器。它试图提供每个浏览器的最具体版本。

Visit Times:此面板将显示每小时报告。此选项显示24个数据点,每天一小时一个。 可选地,可以使用--hour-spec = min将小时特异性设置为十分之一水平,这将显示小时为16:4如果您想要发现服务器上的流量峰值,这很好。

Virtual Hosts:此面板将显示从访问日志中解析的所有不同虚拟主机。如果在日志格式字符串中使用%v,则会显示此面板。

Referrers URLs:如果相关主机通过其他资源访问了网站,或者是从其他主机链接/转移给您,则会在此面板中提供引用它们的网址。请参阅`--ignore-panel`配置文件以启用它。 (默认禁用)

Referring Sites:此面板仅显示主机部分,但不显示整个URL。请求来自的URL。

Keyphrases:它报告了用于Google搜索,Google缓存和Google翻译的关键字,这些关键字已导致您的网络服务器。目前,它仅通过HTTP支持Google搜索查询。请参阅`--ignore-panel`配置文件以启用它。 (默认禁用)

Geo Location:确定IP地址在地理位置的位置。统计数据按大陆和国家分列。它需要使用GeoLocation支持进行编译。

HTTP Status Codes:HTTP请求的数字状态代码的值。

Remote User (HTTP authentication):这是HTTP身份验证确定的请求文档的人员的用户ID。如果文档没有密码保护,则此部分将为“ - ”,就像前一个部分一样。除非%e在log-format变量中给出,否则不会启用此面板。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值