GoAccess使用websocket来实时的监控access.log日志,并以图形化的方式展示。
一、安装goaccess
下载goaccess,我这里是直接下载github上代码:
git clone https://github.com/allinurl/goaccess.git
下载完之后使用
./configure
make
make install
进行编译。
进入nginx-demo项目中,受用goaccess --v查看goaccess是否安装成功。
之后使用以下命令指定要可视化的日志文件、生成的html文件的位置、日志的格式、实时更新:
LANG="en_US.UTF-8" goaccess --no-global-config --log-format='%h - %^ [%d:%t %^] "%m %U %H" %s %b "%R" "%u" %^ "%v" "%^" %Dms' --date-format='%d/%b/%Y' --time-format='%T' --log-file=./logs/access.log --output=./report.html --real-time-html
LANG="en_US.UTF-8" goaccess --no-global-config --log-format='%h - %^ [%d:%t %^] "%m %U %H" %s %b "%R" "%u" %^ "%v" "%^" %Dms' --date-format='%d/%b/%Y' --time-format='%T' --log-file=./2018.08.29-2018.12.31.log --output=./2018.html
之后nginx-demo目录下就生成了一个report.html文件,配置nginx.conf:
location /report.html {
alias report.html;
}
之后访问http://localhost:8000/report.html,就可以看到下面这样的界面。
但是仍然存在两点问题:
- 界面是纯英文的,很多地方说使用LANG="en_US.UTF-8"之后,界面就是中文界面,但是没有成功。
- 使用--real-time-html之后,界面的数据是实时更新的,我这里也没有。