官网
https://goaccess.cc/?mod=man
nginx 配置
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
gzip on;
server {
listen 80;
server_name localhost;
#charset koi8-r;
access_log logs/host.access.log main;
location / {
alias /hexohtml/;
autoindex on;
#index index.html index.htm;
}
安装依赖包
yum install glib2 glib2-devel GeoIP-devel ncurses-devel zlib zlib-devel
# 如果出现:configure: error: *** Missing development files for the GeoIP library,则需要执行下边安装geip
yum install geoip-devel ncurses ncurses-devel glib2-devel
下载源码并编译安装
mkdir -p /soft/goaccess
cd /soft/goaccess
wget -c https://tar.goaccess.io/goaccess-1.3.tar.gz
tar -xzvf goaccess-1.3.tar.gz
cd goaccess-1.3/
./configure --enable-utf8 --enable-geoip=legacy
make && make install
# 二进制文件默认安装路径在 /usr/local/bin
静态日志分析
goaccess -d -f access.log
动态实时分析(http ws)
设置 report.html 路径
本例将 report.html 文件放在 /usr/local/nginx/logs 下。
vi /usr/local/nginx/conf/nginx.conf 添加:
location /report.html {
alias /usr/local/nginx/logs/report.html;
autoindex on;
#index index.html index.htm;
}
# nginx -s reload
goaccess 实时分析
goaccess /usr/local/nginx/logs/access.log -o /usr/local/nginx/logs/report.html --real-time-html --log-format=COMBINED --time-format='%H:%M:%S' --date-format='%d/%b/%Y' --daemonize
- –daemonize 以守护进程运行 websocket
- 仅在 nginx.conf 中 log_format 格式默认的时候,goaccess 可以使用 log-format=COMBINED 参数,否则,log-format 也要相应的指定格式。
- log/date/time format 可以在 goaccess 命令后直接指定,也可以提前在 goaccess.conf 文件中配置好。
- –log-format 支持的格式:官网链接
COMBINED | 联合日志格式
VCOMBINED | 支持虚拟主机的联合日志格式
COMMON | 通用日志格式
VCOMMON | 支持虚拟主机的通用日志格式
W3C | W3C 扩展日志格式
SQUID | Native Squid 日志格式
CLOUDFRONT | 亚马逊 CloudFront Web 分布式系统
CLOUDSTORAGE | 谷歌云存储
AWSELB | 亚马逊弹性负载均衡
AWSS3 | 亚马逊简单存储服务 (S3)
浏览器查看 report
登录 http://服务器IP/report.html 查看 report