1. 简介
access日志记录了Nginx非常重要的信息,我们可以使用Nginx来分析定位问题;也可以用它来分析用户的运行数据;但是如果想要实时分析access.log相对比较困难
有一款工具叫GoAccess,它可以以图像化的方式通过WebSoxket协议实时的把access.log的变迁反应到浏览器中方便我们分析问题;接下来我们来演示如何使用GoAccess工具来分析Nginx的access.log的日志中。
样板:
默认access.log
$ tail nginx/logs/host.access.log
192.168.211.100 - - [08/Feb/2022:14:50:09 +0800] "GET / HTTP/1.0" 200 26341 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36" "192.168.211.1"
192.168.211.100 - - [08/Feb/2022:14:50:10 +0800] "GET /dlib-icon.ico HTTP/1.0" 200 1150 "http://ghostwritten.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36" "192.168.211.1"
192.168.211.100 - - [08/Feb/2022:14:59:54 +0800] "GET /dlib.js HTTP/1.0" 200 2240 "http://ghostwritten.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36" "192.168.211.1"
192.168.211.100 - - [08/Feb/2022:14:59:54 +0800] "GET /plus.gif HTTP/1.0" 200 59 "http://ghostwritten.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36" "192.168.211.1"
192.168.211.100 - - [08/Feb/2022:14:59:58 +0800] "GET /dlib.css HTTP/1.0" 200 6634 "http://ghostwritten.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36" "192.168.211.1"
192.168.211.100 - - [08/Feb/2022:14:59:59 +0800] "GET /dlib-logo.png HTTP/1.0" 200 5701 "http://ghostwritten.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36" "192.168.211.1"
192.168.211.100 - - [08/Feb/2022:15:00:17 +0800] "GET / HTTP/1.0" 200 26341 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36" "192.168.211.1"
192.168.211.100 - - [08/Feb/2022:15:00:18 +0800] "GET /dlib-icon.ico HTTP/1.0" 200 1150 "http://ghostwritten.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36" "192.168.211.1"
192.168.211.100 - - [08/Feb/2022:15:00:19 +0800] "GET /dlib-icon.ico HTTP/1.0" 200 1150 "http://ghostwritten.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36" "192.168.211.1"
192.168.211.100 - - [08/Feb/2022:15:45:34 +0800] "GET / HTTP/1.0" 200 26341 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36" "192.168.211.1"
2. 安装goaccess
不同方式安装请参考
yum install goaccess
3. 启动goaccess
--log-format=COMBINED--log-format=COMBINEDgoaccess access.log -o report.html --log-format=COMBINEDhost.access.log
nginx.conf/report.htmlreport.html
上游服务配置添加:
$ vim nginx/conf/nginx.conf
.......
location /report.html {
alias /opt/openresty/nginx/html/report.html;
}
.......
启动带参数的goaccess
$ goaccess nginx/logs/host.access.log -o /opt/openresty/nginx/html/report.html --real-time-html --time-format='%H:%M:%S'--date-format='%d/%b/%Y' --log-format=COMBINED
real-time-html7890/report.htmlhttp://192.168.211.100:8080/