它能够将 Web 服务器的访问日志转换成易于阅读的报告和交互式仪表板。
官方网址-https://goaccess.io/
支持多种日志格式,并提供了许多功能,如过滤、排序、统计等,使用户可以深入了解其网站的流量和访问情况。
还支持在终端中实时监控日志流,这使得它成为一种快速轻便的实时监控工具。
可以以图像化的方式通过WebSoxket协议实时的把access.log的变迁反应到浏览器提供查看
安装
从软件源安装
注意
不是所有发行版都提供最新的 goaccess 版本,有些软件库中只有 1.3 版本
# 安装
yum install goaccess
# 或使用
sudo apt-get install goaccess
手动安装
官方最新版本指引-https://goaccess.io/download
# 从 GoAccess 的官方网站下载源代码包。
wget https://tar.goaccess.io/goaccess-1.7.1.tar.gz
# 解压缩源代码包。
tar -xzvf goaccess-1.7.1.tar.gz
cd goaccess-1.7.1/
# 安装依赖
yum install ncurses ncurses-devel
# 增加对 utf8 支持
# 增加对 geoip 数据库,支持,类型为 mmdb(geoip2)
# socket server 添加 opessl 支持(ws-url)
./configure --enable-utf8 --enable-geoip=mmdb --with-openssl
make
make install
将安装路径添加到 $PATH 环境变量
# vim ~/.bashrc
export PATH="/home/goaccess:$PATH"
这样就可以直接在命令行调用 goaccess 了
image.png
相关信息
./config 过程可能会出现缺少依赖的情况
请根据具体提示安装相应的库
# configure: error: ssl library missing
sudo yum install openssl-devel
# configure: error:
# *** Missing development files for libmaxminddb library.
sudo yum install libmaxminddb-devel
# configure: error: *** Missing development libraries for ncursesw
sudo yum install ncurses-devel
基本使用
配置文件常用配置
goaccess 在启动的时候也可以使用 命令参数 --param="xxx" 来补充本次运行的配置
如果是每次运行都使用相同的参数,则可以直接写在配置文件中,这样可以很方便的启动
默认配置文件路径:/etc/goaccess/goaccess.conf
# 指定了时间格式
time-format %H:%M:%S
# 指定日期格式
date-format %d/%b/%Y
# 日志文件的格式,与分析的日志文件格式对应。例如 access.log
# 与 access.log 的 log_format 格式对应,每个参数以空格或者制表符分割
log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u" %^ %T %^
# 启用实时 HTML 输出模式
real-time-html true
# 监听端口
port 7890
# 存放 goaccess html 目录
output /home/goaccess/
# https 相关
ssl-cert
ssl-key
ws-url
log-format 说明
如果没有改动过 Apache 或者 nginx 等的日志格式,则可以使用默认 log-format 值
Apache 的默认值为 COMBINED
nginx 的默认值为Nginx
如果自定义了日志格式,则需要自己对应填写匹配的 log-format
GoAccess日志格式变量 nginx日志格式变量 变量说明
%h $remote_addr 主机(客户端的 IPv4 或 IPv6 地址)
%d:%t $time_local 访问日期和时间(服务器本地时间)
%r $request 客户端的请求路径(location)
%M $sent_http_content_type 请求的资源类型(MIME-type)
%s $status 服务器返回客户端的状态代码
%b $body_bytes_sent 对象返回客户端的大小
%T $request_time 服务器响应请求的时间(毫秒计量)
%K $ssl_protocol 建立连接的 TLS 加密协议类型
%k $ssl_cipher 建立连接的 TLS 加密算法类型
%R $http_referer 请求标头中的来源(Referer)信息
%u $http_user_agent 请求标头中的 user-agent 信息
%v $host 虚拟主机名称
%e $remote_user 通过 HTTP 身份认证访问网站的用户标识
%C $upstream_cache_status 服务器返回对象的缓存状态
启动 goaccess
goaccess /var/log/nginx/access.log -o /home/goaccess/index.html --real-time-html --config-file=/etc/goaccess/goaccess.conf --daemonize
--real-time-html:启用实时 HTML 输出模式。
-o /home/goaccess/index.html:将报告保存到指定的 HTML 文件路径。
--daemonize:启用守护进程模式,在后台运行 GoAccess。
启动后
退出 goaccess
如果使用了后台运行,退出运行可以找到端口占用, kill 掉
# 这里 7890 为设置的端口
lsof -i:7890
# kill 掉程序
kill [pid]
高级使用
汉化
goaccess 默认使用系统默认语言
根据使用的系统,安装中文语言包
修改系统默认语言(可选,此处以 Centos 为例)
# 查看当前语言
echo $LANG
# 查看系统支持的语言
locale -a
# 修改文件中语言为 zh_CN.UTF-8
vim /etc/locale.conf
# 应用语言更改
source /etc/locale.conf
# 查看当前语言
echo $LANG
重新启动 goaccess
如果启动后仍然没有改变语言,可以在启动命令后增加LC_TIME=zh_CN.utf8
更详细的日志
# nginx.conf
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$sent_http_content_type $status $body_bytes_sent '
'$request_time $ssl_protocol/$ssl_cipher "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
# goaccess.conf
log-format %h %^[%d:%t %^] "%r" %M %s %b %T %K/%k "%R" "%u"
反向代理
# nginx.conf
location /goaccess {
alias /home/goaccess/;
index index.html;
}
收集详细 ip 归属地区
需要地理位置功能,可以先去下个geoip数据包 https://dev.maxmind.com/geoip/geoip2/geolite2/
# goaccess.conf
geoip-database /usr/share/GeoIP/GeoLite2-City.mmdb
ppt.cc/fVjECx ppt.cc/fEnHsx ppt.cc/fRZTnx ppt.cc/fSZ3cx ppt.cc/fLOuCx ppt.cc/fE9Nux ppt.cc/fL5Kyx ppt.cc/fIr1ax ppt.cc/f71Yqx tecmint.com linuxcool.com linux.die.net linux.it.net.cn ostechnix.com unix.com ubuntugeek.com runoob.com man.linuxde.net ppt.cc/fwpCex ppt.cc/fxcLIx ppt.cc/foX6Ux linuxprobe.com linuxtechi.com howtoforge.com linuxstory.org systutorials.com ghacks.net linuxopsys.com ppt.cc/ffAGfx ppt.cc/fJbezx ppt.cc/fNIQDx ppt.cc/fCSllx ppt.cc/fybDVx ppt.cc/fpjd9x ppt.cc/fKlBax
Total Pageviews
5,390,124
Thursday, 20 March 2025
GoAccess 是一个开源的实时 Web 日志分析工具
Labels:
linux
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment