有时候在服务器运维过程中,需要时刻观察站点日志、 Nginx
日志等场景需求。这时候 GoAccess
日志分析的实时功能就可以用上了,明月已经在自己的服务器上测试成功了,感觉很不错特分享记录下来!
本文的前提是已经安装部署好了 GoAccess
程序,还没有安装的可以参考VPS侦探的【Nginx日志分析/图表生成工具 - goaccess】一文安装部署即可。当然你也可以直接到 GoAccess 官网(https://GoAccess.io/)按照官网的最新安装教程,安装部署 GoAccess 1.2
最新版,最新版对查看实时日志的支持感觉更加完善一些,特别是配置上相对来说要简单很多,明月是比较推荐的!
首先大家可以根据【GoAccess 1.2如何使用定时任务(Crontab)定时生成日志分析报告】一文先设定好自己站点的日志分析报告生成,经常看看日志分析报告还是有好处的,恶意镜像和恶意301跳转可以及时早发现。
当需要观察那个站点日志的实时报告的时候,就参照如下设置和命令运行即可:
首先编辑/usr/local/etc/goaccess.conf
文件,设定日志的time-format
、date-format
、log-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
即可看到了!如下图所示:
因为是实时显示分析日志的,所以这段命令运行后就会占用当前控制台的,所以建议结合screen
来使用(可参考【Linux控制台下 screen 命令使用学习笔记】一文)。
当不需要实时观察日志的时候,只需要在控制台终端里Ctrl+C终止命令运行即可!提示如下:
WebSocket server ready to accept new client connections
^C
SIGINT caught!
Closing GoAccess...
Stopping WebSocket server...
好了,利用GoAccess日志分析实时查看站点日志今天就介绍到这里了,希望可以帮助到大家!
8 条评论
请教下:想要在生成的html文件中,REQUESTED FILES (URLS) 列中中添加请求时间是去那里配置呀
这个好像是可以通过一个.rc文件来指定,建议到官网看看文档!
为什么我的没有实时更新数据
需要你加参数生成的!
感觉有点复杂
呵呵,需要的时候用的嘛!其实也不复杂的,只需要部署好环境,把这行命令做成快捷指令就可以了!
这个感觉很不错!支持一下!
多谢支持!