大家好,我是兔兔,兔兔答题的开发者。兔兔答题是一款简单、易用的答题系统,可应用于微信考试、付费考试、社会调查问卷、明星知识问答、员工培训考核、模拟自测、企业面试、试题库等多种场景。兔兔答题官网文档
进入给大家分享的内容是一款轻量级的日志可视化图形工具。在兔兔答题在部署的过程中使用的是NGINX作为web服务器,在很多时候想对NGINX的访问日志做一些分析,例如每天的访问量、请求峰值等等相关的内容。要实现这样的功能也很简单,市面上有很多这样的可视化工具,例如ELK、Prometheus等这些开源的工具。这几款软件虽然很强大,但部署上和体量上都比较麻烦。
今天分享的一款软件就能很好的解决这个问题,GoAccess是一款开源的且具有交互视图界面的实时Web日志分析工具,通过你的Web浏览器或者*nix系统下的终端程序(terminal)即可访问。能为系统管理员提供快速且有价值的 HTTP 统计,并以在线可视化服务器的方式呈现。
功能简介
- 完全实时
所有面板以及指标均按照指定时间间隔更新,在终端(Terminal)下是200ms,HTML则是每秒。
- 支持几乎所有Web日志格式
GoAccess允许任意自定义日志格式。 可预定义的格式包括: Apache, Nginx, Amazon S3, Elastic Load Balancing, CloudFront等等。
- 跟踪应用响应时间
跟踪处理请求的时间消耗。对于解决站点页面访问速度下降非常有用。
- 增长日志处理
需要持续保持数据,GoAccess有能力处理在磁盘上以B+Tree数据库存储并且不断增长的日志。
- 仅依赖一个模块
GoAccess 是用 C 语言编写的。 仅仅需要ncurses这一个模块即可运行。同时 GoAccess 甚至还拥有自己的兼容 RFC6455 协议的 Web Socket 服务器。
- 易于使用
您可以直接运行GoAccess去处理您的访问日志文件,仅需选取日志格式然后让GoAccess解析日志内容并将统计结果展示出来。
- 访客画像
可以按照小时或者指定日期确定最慢请求的访问次数,访客数量,带宽以及其他相关度量值。
- 支持虚拟主机
拥有多个虚拟主机?在控制面板中能够显示出哪一个虚拟主机消耗Web服务器上最多的资源。
- 配色风格可定制化
GoAccess的配色风格十分易于定制化。无论是通过终端,还是仅仅通过简单修改HTML页面的层叠样式表。
效果预览
- 漂亮的终端控制面板:GoAccess默认实时输出到终端。GoAccess在一个可以滚动显示的面板中通过展示不同的报告摘要来向您呈现服务器的各种指标。
- 多种预览格式:除了通过终端输出,GoAccess允许您生成 HTML,JSON或者CSV格式的报告。您甚至可以通过电子邮件发送 HTML 报告,因为它是由没有外部文件依赖的单个文件组成,是不是很酷!
- 清晰的日志内容:使用主机面板可以非常容易的发现不怀好意的爬虫/机器人以及标记出谁吃掉了你的带宽资源。同时还能够显示每一台主机上的User-Agents列表。
- 易于操作的界面:控制面板由不同的报告组成 — 报告面板可以扩展以显示更多信息,这样您就可以快速的在不同报告之间找出他们的相互关系。
如何安装
下载源代码并通过源码方式进行安装。
# 下载源码包
cd /usr/local && wget https://tar.goaccess.io/goaccess-1.7.tar.gz
# 解压目录
tar -xzvf goaccess-1.7.tar.gz && cd goaccess-1.7/
# 编译安装
./configure --enable-utf8 --enable-geoip=mmdb --prefix=/usr/local/goaccess-1.7
# 添加到系统目录
cp /usr/local/goaccess-1.7/bin/goaccess /usr/bin/
错误解决,如果在执行上面的命令,发现了该错误信息Missing development files for libmaxminddb library
。可以通过如下命令解决。
yum install -y libmaxminddb-devel
修改配置,编辑/etc/goaccess.conf,在末尾加上。
time-format %T
date-format %d/%b/%Y
log_format %h - %^ [%d:%t %^] "%r" %s %b "%R" "%u" "%^" "%T"
运行并生成预览文件。
LANG="zh_CN.UTF-8" goaccess -f /var/log/nginx/access.log -p /etc/goaccess.conf
执行上面的命令之后,就会自动生成一个
.html
文件,也就是文章顶部演示的截图效果。
优势
对于GoAccess来说,采用Go预压开发,具有简单、易用的特点,并且功能也能满足日常需要。如果你仅仅是想统计网站的请求记录,而不需要做其他的功能,强烈建议你使用该工具。