专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

利用GoAccess 分析 Nginx access log

分析nginx access_log ,了解到了GoAccess这款工具,试着安装用了一下。做一下记录。

一、安装GoAccess

$ wget http://tar.goaccess.io/goaccess-1.2.tar.gz
$ tar -xzvf goaccess-1.2.tar.gz
$ cd goaccess-1.2/
# --with-openssl项开启openssl,HTTPS时需要
$ ./configure --enable-utf8 --enable-geoip=legacy --with-openssl
$ make
$ make install

可能会因为缺少某些依赖导致安装错误

checking for GeoIP_new in -lGeoIP... no
configure: error: 
    *** Missing development files for the GeoIP library

安装缺少的依赖即可

$ yum install GeoIP-devel

二、配置

安装完成后,默认将配置文件goaccess.conf放置于/usr/local/etc路径,你也可以自定义修改。然后对配置文件做一些主要配置:

time-format %H:%M:%S
date-format %d/%b/%Y
log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u"

其中,log-format 与 access.log 的 log_format 格式对应,每个参数以空格或者制表符分割。参数说明如下:

%t  匹配time-format格式的时间字段
%d  匹配date-format格式的日期字段
%h  host(客户端ip地址,包括ipv4和ipv6)
%r  来自客户端的请求行
%m  请求的方法
%U  URL路径
%H  请求协议
%s  服务器响应的状态码
%b  服务器返回的内容大小
%R  HTTP请求头的referer字段
%u  用户代理的HTTP请求报头
%D  请求所花费的时间,单位微秒
%T  请求所花费的时间,单位秒
%^  忽略这一字段

三、命令

$ goaccess -h
# 常用参数
-a --agent-list 启用由主机用户代理的列表。为了更快的解析,不启用该项
-d --with-output-resolver 在HTML/JSON输出中开启IP解析,会使用GeoIP来进行IP解析
-f --log-file 需要分析的日志文件路径
-p --config-file 配置文件路径
-o --output 输出格式,支持html、json、csv
-m --with-mouse 控制面板支持鼠标点击
-q --no-query-string 忽略请求的参数部分
--real-time-html 实时生成HTML报告
--daemonize 守护进程模式,--real-time-html时使用

控制台模式

$ goaccess -a -d -f /path/to/your/access_log -p /usr/local/etc/goaccess.conf

控制台的操作方法

F1   主帮助页面
F5   重绘主窗口
q    退出
1-15 跳转到对应编号的模块位置 
o    打开当前模块的详细视图
j    当前模块向下滚动
k    当前模块向上滚动
s    对模块排序
/    在所有模块中搜索匹配
n    查找下一个出现的位置
g    移动到第一个模块顶部
G    移动到最后一个模块底部

Web页面模式

$ goaccess -a -d -f /path/to/your/access_log -p /usr/local/etc/goaccess.conf -o /website/root/doc/index.html

这里注意改成自己的配置,包括access_log 的路径,goaccess.conf 的路径,以及生成的html放到哪里。 我这里是把我的HTML文件放在我服务器 nginx root目录下。然后在server里监听一下你自定义的域名即可。 比如我

server_name XXX.goaccess.XXX.com.cn;
root /data1/www/htdocs/xxx/goaccess;

index文件放到这个root目录下即可。 执行一下上面的命令,然后访问对应的url即可打开。

65_1.png

守护模式

GoAccess 已经为我们考虑到这点了,它可以以 daemonize 模式运行,并提供创建实时 HTML 的功能,只需要在启动命令后追加--real-time-html --daemonize参数即可。
以守护进程启动 GoAccess 后,使用 Websocket 建立长连接,它默认监听 7890 端口,可以通过--port参数指定端口号。

参考连接
GoAccess中文站

文章永久链接:https://tech.souyunku.com/45170

未经允许不得转载:搜云库技术团队 » 利用GoAccess 分析 Nginx access log

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们