GoAccess是一款轻量级的日志分析工具,可以在服务器终端中显示实时分析日志,也可以导出为 html 通过浏览器进行查看。
安装使用
可以进行编译安装,
1 2 3 4 5 6 |
$ wget 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 |
也可以通过Linux包管理工具进行安装,如
1 2 |
yum install goaccess apt-get install goaccess |
使用也非常简单,首先根据日志格式对配置文件进行设置,Nginx 或 Apache 日志默认的配置为:
1 2 3 4 |
# vi /etc/goaccess.conf time-format %H:%M:%S date-format %d/%b/%Y log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u" |
查看日志
1 2 3 4 |
goaccess -f access.log -c # 命令行 goaccess -f access.log -a -o report.html # 生成 html # 实时生成 html goaccess access.log -o /var/www/html/report.html --log-format=COMBINED --real-time-html |
命令行参数
日志及时间格式选项
–date-format=<dateformat> – 指定日志日期格式,如 %d/%b/%Y
–log-format=<logformat> – 指定日志格式,内部的双引号需要进行转义,或使用单引号
–time-format=<timeformat> – 指定日志时间格式,如%H:%M:%S
用户界面选项
-c –config-dialog – 弹出log/date/time配置窗口。
-i –hl-header – 颜色高亮活跃面板。
-m –with-mouse – 启用对主仪表盘的鼠标支持。
–color=<fg:bg[attrs, PANEL]> – 指定自定义颜色。参见 manpage获取更多详情及选项。
–color-scheme=<1|2|3> – 方案: 1 => Grey, 2 => Green, 3 => Monokai.
–html-custom-css=<path.css> – 指定在HTML报表中的自定义CSS文件。
–html-custom-js=<path.js> – 指定在HTML报表中的自定义JS文件。
–html-prefs=<json_obj> – 设置HTML报表的首选项。
–html-report-title=<title> – 设置HTML报表页面的标题和头部。
–json-pretty-print – 通过制表符和新行格式化 JSON 输出。
–max-items – 每个面板中显示的最大项目数。参见man page了解限制。
–no-color – 禁用彩色输出。
–no-column-names – 不要在名称输出中写入列名。
–no-csv-summary – 在CSV 输出中禁用汇总指标。
–no-progress – 禁用进度指标。
–no-tab-scroll – 禁用通过TAB滚动面板。
–no-html-last-updated – 隐藏HTML中最后更新的字段。
服务端选项
–addr=<addr> – 指定服务器所绑定的 IP。
–daemonize – 以守护进程运行(若启用了–real-time-html)。
–fifo-in=<path> – 读取命名管道(FIFO)的路径。
–fifo-out=<path> – 写入命名管道(FIFO)的路径。
–origin=<addr> – 确保在WebSocket握手时客户端发送指定的源origin头部。
–port=<port> – 指定要使用的端口。
–real-time-html – 启用实时HTML输出。
–ssl-cert=<cert.crt> – TLS/SSL证书的路径。
–ssl-key=<priv.key> – TLS/SSL私钥的路径。
–ws-url=<url> – WebSocket服务端所响应的URL。
文件选项
– – 通过stdin(标准输入)读取解析的日志文件。
-f –log-file=<filename> – 输入日志文件的路径。
-l –debug-file=<filename> – 发送对指定文件的所有调试消息。
-p –config-file=<filename> – 自定义配置文件。
–invalid-requests=<filename> – 记录对指定文件的无效请求。
–no-global-config – .不加载全局配置文件。
解析选项
-a –agent-list – 根据主机启用user-agent列表。
-d –with-output-resolver – 对HTML|JSON输出启用IP解析器。
-e –exclude-ip=<IP> – 排除一个或多个IPv4/6。允许使用IP范围,如192.168.0.1-192.168.0.10
-H –http-protocol=<yes|no> – 在找到时设置/取消设置HTTP请求协议。
-M –http-method=<yes|no> – 在找到时设置/取消设置HTTP请求方法。
-o –output=file.html|json|csv – 输出HTML, JSON或CSV文件。
-q –no-query-string – 忽略请求的查询字符串。删除查询字符串会显著地降低内存的消耗。
-r –no-term-resolver – 对终端输出禁用IP解析器。
–444-as-404 – 将非标准状态码444 视为 404。
–4xx-to-unique-count – 对独立访客计数添加4xx客户端错误。
–all-static-files – 包含带有查询字符串的静态文件。
–crawlers-only – 仅解析并显示爬虫。
–date-spec=<date|hr> – 日期规格。可用的值: date
(默认)或 hr
。
–double-decode – 解码双重编码的值。
–enable-panel=<PANEL> – 启用解析/显示给定的面板。
–hour-spec=<hr|min> – 小时规格。可用的值:hr
(默认)或 min
(分钟的十分之一)。
–ignore-crawlers – 忽略爬虫。
–ignore-panel=<PANEL> – 忽略解析/显示给定面板。
–ignore-referer=<NEEDLE> – 忽略对referer(上一页)的计算。允许使用通配符,如*.bing.com
–ignore-status=<CODE> – 忽略解析给定状态码。
–num-tests=<number> – 要测试的行数。>= 0 (默认为10)
–process-and-exit – 解析日志并不输出数据退出。
–real-os – 显示真实的操作系统名称,如Windows XP, Snow Leopard。
–sort-panel=PANEL,METRIC,ORDER – 在初始加载时对面板排序。如–sort-panel=VISITORS,BY_HITS,ASC。参风manpage获取面板/字段列表。
–static-file=<extension> – 添加静态文件扩展名,如:.mp3。扩展名是大小写敏感的。
磁盘内数据库选项
–keep-db-files – 将解析数据持久化存储到磁盘中。
–load-from-disk – 从磁盘中加载此前存储的数据。
–db-path=<path> – 数据文件的路径,默认为 [/tmp/]
–cache-lcnum=<number> – 要缓存的叶子节点的最大数量,默认值[0]
–cache-ncnum=<number> – 要缓存非叶子节点的最大数,默认值为[1024]
–tune-bnum=<number> – 桶数组的元素数。默认为[512]
–tune-lmemb=<number> – 每个叶子页面的成员数,默认为[128]
–tune-nmemb=<number> – 每个非叶子页面的成员数, 默认为[256]
–xmmap=<number> – 设置额外映射内存的字节大小,默认为[32749]
–compression=<zlib|bz2> – 指定每个页面通过ZLIB|BZ2 编码进行压缩。
其它选项
-h –help – 本帮助文档。
-V –version – 显示版本信息并退出。
-s –storage – 显示当前存储方法,如 B+ 树, Hash。
–dcf – 在未使用-p
时显示默认配置文件的路径。
相关资料
官方网站:https://goaccess.io/get-started
GitHub:https://github.com/allinurl/goaccess
将 Nginx 日志格式转换为 GoAccess 的脚本:https://github.com/stockrt/nginx2goaccess