有时候在服务器运维过程中,需要时刻观察站点日志、 Nginx 日志等场景需求。这时候 GoAccess 日志分析的实时功能就可以用上了,明月已经在自己的服务器上测试成功了,感觉很不错特分享记录下来!

  本文的前提是已经安装部署好了 GoAccess 程序,还没有安装的可以参考VPS侦探的【Nginx日志分析/图表生成工具 - goaccess】一文安装部署即可。当然你也可以直接到 GoAccess 官网(https://GoAccess.io/)按照官网的最新安装教程,安装部署 GoAccess 1.2 最新版,最新版对查看实时日志的支持感觉更加完善一些,特别是配置上相对来说要简单很多,明月是比较推荐的!

goaccess-dashboard.png

  首先大家可以根据【GoAccess 1.2如何使用定时任务(Crontab)定时生成日志分析报告】一文先设定好自己站点的日志分析报告生成,经常看看日志分析报告还是有好处的,恶意镜像和恶意301跳转可以及时早发现。

  当需要观察那个站点日志的实时报告的时候,就参照如下设置和命令运行即可:

  首先编辑/usr/local/etc/goaccess.conf文件,设定日志的time-formatdate-formatlog-format三个参数,Nginx可以参考如下格式:

time-format %T
date-format %d/%b/%Y
#NCSA Combined Log Format
log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u"

  其中的log-format推荐的是NCSA Combined Log Format,理论上这个格式是兼容Apache的日志的,明月没有试过,大家根据自己的实际情况调整即可。

  修改完毕后,保存退出。

  运行如下命令:

goaccess /home/wwwlogs/www.mydomain.log -o /home/wwwroot/default/report.html --real-time-html

  下面是相关参数的说明:

/home/wwwlogs/www.mydomain.com.log:要分析的日志文件位置,这里显示的www.mydomain.com站点的Nginx日志,需要不同的日志只需要修改这里的地址为日志所在地址和日志格式配置即可。

/home/wwwroot/default/report.html:生成的HTML文件位置,一般是网站根目录,方便前端访问。

-o:output-format=csv|json 输出为csv或者json形式

--real-time-html:实时生成日志分析结果为HTML格式

  运行上述命令行后输出结果如下:

[root@test ~]# goaccess /home/wwwlogs/www.mydomain.com.log -o /home/wwwroot/default/report.html --real-time-html
WebSocket server ready to accept new client connections

  即表示实时日志分析正在运行中,可以用浏览器浏览www.mydomain.com/report.html即可看到了!如下图所示:

20171220110836.png

  因为是实时显示分析日志的,所以这段命令运行后就会占用当前控制台的,所以建议结合screen来使用(可参考【Linux控制台下 screen 命令使用学习笔记】一文)。

  当不需要实时观察日志的时候,只需要在控制台终端里Ctrl+C终止命令运行即可!提示如下:

WebSocket server ready to accept new client connections
^C
SIGINT caught!
Closing GoAccess...
Stopping WebSocket server...

  好了,利用GoAccess日志分析实时查看站点日志今天就介绍到这里了,希望可以帮助到大家!

最后修改:2017 年 12 月 20 日
如果觉得我的文章对你有用,请随意赞赏