基于goaccess实现nginx日志实时分析和展示

网站的nginx日志每天有大概600M左右的数据产生,一直苦于如何让这些数据为我等所用.想过大数据之类的解决方案,但是对java技术栈并不熟悉,做为一个phper心里那个苦啊,无以言表….

于是就找了很多种方案来尝试,未果.前两天又在网上看到了有网友说goaccess好用,之前也安装过,但是由于我们公司日志格式是自定义的,官方提供的已有日志格式并不能满足,于是就打住了.这两天有点时间就详细的看了一下官方的文档,终于解析成功了,于是分享出来方便和我有同样需求的小伙伴.

一.安装

1.安装依赖库(用ubuntu的小伙伴请自行找相对应的包)

2.源码安装goaccess1.2.1

3.创建软链接,方便执行

二.自定义格式

nginx日志格式如下:

goaccess的自定义格式如下:

具体的参数含义请参考官方文档:https://goaccess.io/man#custom-log

三.运行

如果执行成功会输出后台进程的id到屏幕

四.管理脚本

这个不是必须,只是方便我自己管理,全名为goaccess.sh

然后你可以通过linux的alias来或者service来管理你的goaccess服务.我这里用的是alias(.bashrc)

然后用source /root/.bashrc让修改即时生效就可以用start_goaccess stop_goaccess restart_goacess来管理它了

五.总结

做完以上步骤你就可以通过浏览器来访问你的页面了,需要注意的事项如下:

1.由于用了websocket实现实时数据分析,所以有防火墙的话需要把7890端口放开

2.监听127.0.0.1貌似不好使就用默认的0.0.0.0吧

3.当前版本并不支持添加规则到配置文件,但github上有人提出了这个需求,作者说会尽快实现这个功能,期待中..

你的评论是对我最大的鼓励