goaccess官网:GoAccess - Visual Web Log Analyzer
安装安装有两种方式,一种是编译安装,一种是直接yum安装,yum安装不一定会是最新版,但是我个人感觉,够用了。。。
1.编译安装安装前注意:
唯一所必须的依赖为:ncurses,请在安装前检查是否有此依赖,可以直接yum install ncurses
#注意我这里并不是最新版的连接,你可以去官网找最新版的连接放在wget后来下载 wget https://tar.goaccess.io/goaccess-1.5.4.tar.gz #若你下载的版本和我不同,自行更改解压名 tar -xzvf goaccess-1.5.4.tar.gz #若你下载的版本和我不同,自行更改目录名 cd goaccess-1.5.4/ #编译,安装 ./configure --enable-utf8 --enable-geoip=mmdb make make install2.yum安装
这就简单了,会自动安装所需依赖,建议小白使用
yum install goaccess使用 1.输出到终端
#access.log为日志名 goaccess access.log -c
若不加-c,则为默认输出到终端
若什么也没有出来,先按q退出,然后在执行如下命令,指定一下日志时间的格式
goaccess access.log --log-format=COMBINED'
原因是你的访问日志包含英文日期/月份,例如12/Jan/2021但您的机器区域设置未设置为英文
2.静态 HTML 输出我感觉应该会很少有人用到这个功能,但是人家提供了,所以还是写上吧
goaccess access.log -o report.html --log-format=COMBINED
会将静态页面report.html输出到当前目录
3.实时输出goaccess access.log -o /var/www/html/report.html --log-format=COMBINED --real-time-html
将输出一个实时的HTML界面,当你访问这个页面时,他自带的websocket会一秒钟请求一次,自动更新数据
如果你发现并不会实时更新,记得打开你的7890端口,他自带的websocket会使用7890端口
花里胡哨的玩法 1.goaccess一次读取多个日志文件当你服务器上有多个站点,nginx会产生多个日志,但是你只想生成一个报告,看下列代码
cat *.log | goaccess -o report.html --log-format=COMBINED
这里你会发现,我并没有带--real-time-html参数,也就是说,并没有实时输出到页面,这是因为cat只会读取一次文件,并将读取到的文件传给goaccess,并不会实时读取
2.goaccess实时读取所有日志文件上述虽说读取了所有日志文件,但是不会实时读取,但是,你还是想实时读取所有日志文件怎么办,虽说有办法,但是稍微有点麻烦,需要更改nginx配置
首先在nginx配置文件中,为多个站点添加两份日志,例如:
access_log /www/wwwlogs/api.test.cn.log; access_log /www/wwwlogs/access.log; error_log /www/wwwlogs/api.test.cn.error.log;
记得配置完日志后重启nginx: nginx -s reload
这时候只需要读取access.log,就可以读取到所有的日志了
在我写这篇文章的时候,突然有个想法,不知道能不能配置全局日志,若可以配置全局日志的话,就不需要一个站点一个站点的去配置了
3.goaccess后台运行读取所有日志文件有了,就剩让他在后台安安静静的运行了
需要用到tmux
安装:
yum install tmux
运行:
tumx #运行tumx,运行后在其中直接输入如下命令行即可 goaccess access.log -o /var/www/html/report.html --log-format=COMBINED --real-time-html
后台运行:
退出tumx,按下Tumx的PREFIX键(默认是Ctrl+B),按下之后松开再次按d,即可离开Tmux开始后台执行
结束运行:
ps -ef | grep goaccess kill xxxx #直接杀掉相应的进程即可
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)