GoAccess(https://GoAccess.io/) 是一个可视化日志分析工具,并不只是为 Nginx 使用的。你也可以用它来分析 Apache,IIS 的日志,甚至你自己写的 Web 服务,当然前提是你需要定义好解析的日志格式。
GoAccess 日志分析工具的主要特点
- 解析速度快
- 使用简单
- 能生成 html,json,csv
借助 Linux 的 Crontab 定时任务可以每天生成一份自己站点的日志分析统计 HTML 文件,养成经常分析日志文件是一个运维人员必备的好习惯,今天明月就给大家分享一下 GoAccess 的独立编译安装方法,就当是一个安装参考笔记吧!
Linux下GoAccess通用的安装方法,也是官方推荐的安装方法:
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
- 编译安装需要依赖 Ncurses 包。
- 如果需要查看实时日志输出的 HTML 文件,请确保当前服务器已经开启了 7890 端口。
编译参数说明:
- –enable-debug 使用调试符号进行编译并关闭编译器优化。
- –enable-utf8 编译具有广泛的字符支持,需要 Ncurses 依赖。
- –enable-geoip= 使用 GeoLocation 支持进行编译。 MaxMind 的 GeoIP 是必需的。
- –enable-tcb= 与 Tokyo Cabinet 存储支持一起编译。 memhash 将利用 Tokyo Cabinet 的内存中哈希数据库。 btree 将利用 Tokyo Cabinet 的磁盘 B + Tree 数据库。
- –disable-zlib 在 B + Tree 数据库上禁用 zlib 压缩。
- –disable-bzip 禁用 B + Tree 数据库上的 bzip2 压缩。
- –with-getline 动态扩展行缓冲区以解析整行请求,而不是使用 4096 的固定大小缓冲区。
- –with-openssl 使用 OpenSSL 编译 GoAccess,支持其 WebSocket 服务器。
注:没有特殊需要的话,明月建议使用官方默认参数编译即可。
如果是全新的 CentOS Linux 发行版的话编译的时候回出现“缺少 GeoIP 库的开发文件”的编译错误提示,这时候可以安装如下的依赖包后再次编译即可。
yum install re2c GeoIP GeoIP-data GeoIP-devel
安装完成后,在 goaccess-1.3 目录里创建一个.goaccessrc 文件,内容填写如下:
time-format %T
date-format %d/%b/%Y
log-format %h %^[%d:%t %^] "%r" %s
然后就可以使用如下命令来生成日志分析 HTML 并输出到指定位置以便供 Web 端访问。
/usr/local/bin/goaccess -f [日志文件绝对地址.log] -p
/root/goaccess-1.3/.goaccessrc -a > [输出 HTML 文件的绝对地址.html]
如果需要输出并查看日志分析的实时 HTML 文件可以使用如下命令:
goaccess [日志文件绝对地址.log] -o [输出 HTML 文件的绝对地址.html] –real-time-html
访问这个输出的 HTML 文件即可。
下面是相关参数的说明:
- -o:output-format=csv|json 输出为 csv 或者 json 形式
- –real-time-html:实时生成日志分析结果为 HTML 格式