安装指南:https://goaccess.io/download
goaccess使用教程:https://github.com/allinurl/goaccess
By default, GoAccess listens on port 7890,so 记得一定要打开防火墙的7890端口!!!!
# 实时监控日志,输出为html
$> goaccess /opt/google/gehttpd/logs/access_log -p //opt/google/gehttpd/logs/goaccess.conf
-o /usr/local/openresty/nginx/html/report.html --real-time-html --ws-url=city3d02.gg.dd
--daemonize
# 这个是以守护进程模式运行,如果需要重启
# ps -ef | grep goaccess 得到进程号,以及上面的运行语句
# kill -9 pid
# 这个也是输出为html
$> goaccess access_log > ../htdocs/report.html -p /home/aganliang/goaccess.conf
--real-time-html
# 这段命令运行后就会占用当前控制台,Ctrl+C 会停止进程
$> goaccess -f /opt/google/gehttpd/logs/access_log
-p /usr/local/etc/goaccess.conf
goaccess -f /opt/google/gehttpd/logs/access_log -o /code/log/index.html
-p /usr/local/etc/goaccess.conf
为了在同一台主机上运行多个goaccess进程,需要通过--port=属性绑定不同端口。
# kong access.log
goaccess -m -f /usr/local/kong/logs/access.log -o /usr/local/openresty/nginx/html/report.html
-p /usr/local/kong/logs/goaccess.conf --real-time-html
# openresty 8083.access.log
goaccess -m -f /usr/local/openresty/nginx/logs/8083.access.log
-o /usr/local/openresty/nginx/html/report-8083.html
-p /usr/local/openresty/nginx/logs/goaccess.conf --real-time-html --port=7891
# openresty 8085.access.log
goaccess -m -f /usr/local/openresty/nginx/logs/8085.access.log
-o /usr/local/openresty/nginx/html/report-8085.html
-p /usr/local/openresty/nginx/logs/goaccess.conf --real-time-html --port=7892
参数解释:
# 常用参数
-a --agent-list 启用由主机用户代理的列表。为了更快的解析,不启用该项
-d --with-output-resolver 在HTML/JSON输出中开启IP解析,会使用GeoIP来进行IP解析
-f --log-file 需要分析的日志文件路径
-p --config-file 配置文件路径
-o --output 输出格式,支持html、json、csv
-m --with-mouse 控制面板支持鼠标点击
-q --no-query-string 忽略请求的参数部分
--real-time-html 实时生成HTML报告
--daemonize 守护进程模式,--real-time-html时使用
goaccess.conf 配置设置
# apache的日志:
time-format %H:%M:%S
date-format %d/%b/%Y
log-format %h %^[%d:%t %^] "%r" %s %b
——这里没有设置好,导致tx.amount为0 ---20200515
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 COMBINED
#log-format VCOMBINED
#log-format COMMON
#log-format VCOMMON
#log-format W3C
#log-format SQUID
#log-format CLOUDFRONT
#log-format CLOUDSTORAGE
#log-format AWSELB
#log-format AWSS3
由于real-time-html没有实时刷新,那就用crontab来定时跑---这个就不需要了,因为之前忘记开放7890端口,所以没有实时刷新。
#写个小脚本,配置crontab,让其每隔一段时间转换一次,也可以实现伪实时性观察log,如下:
vim scripts/goaccess.sh
#!/bin/bash
LANG="zh_CN.UTF-8" #页面转换为中文
/usr/local/bin/goaccess /var/log/nginx/access.log -o /code/log/index.html -p /usr/local/etc/goaccess.conf
#再将脚本加入到crontab即可
[root@ljcccc ~]# crontab -l
#定时goaccess生成的信息保存为html
30 * * * * /bin/bash /root/scripts/goaccess.sh