centos中使用goaccess分析nginx日志,goaccess分析多个nginx日志

centos中使用goaccess分析nginx日志,goaccess分析多个nginx日志,第1张

centos中使用goaccess分析nginx日志,goaccess分析多个nginx日志 前言

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 install
2.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   #直接杀掉相应的进程即可

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5681732.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存