偷偷溜进文章的小广告,别害羞,点进去瞅瞅,说不定能发现什么宝藏呢!文末那个也别错过,说不定是通往秘密花园的钥匙哦!
今天,我要向大家介绍一款开源的实时Web日志分析工具——GoAccess,它无疑是窥探这座数据宝藏的钥匙。
GoAccess是一款轻量级的日志分析工具,以其简洁的命令行操作和直观的可视化界面,赢得了众多用户的青睐。它不仅能够展示基本的统计数据,如独立访客、请求的文件、404错误等,还能提供更深层次的分析,如操作系统、浏览器、搜索引擎和HTTP响应代码等。
功能亮点
实时分析:GoAccess能够实时读取日志文件,并在终端或Web浏览器中动态展示分析结果。这种实时性确保了网站管理者能够随时掌握网站的最新动态,快速响应各种变化。
多格式支持:它支持Apache、Nginx、Amazon S3、Elastic Load Balancing、CloudFront等多种日志格式,几乎覆盖了所有主流的Web服务器和云服务。这使得GoAccess在不同环境下都能发挥出色的作用。
深度分析:除了基本的统计数据(如独立访客、请求的文件、404错误等),GoAccess还能提供更深层次的分析,如操作系统、浏览器、搜索引擎和HTTP响应代码等。这些详细的数据分析有助于网站管理者更全面地了解用户行为。
定制化报表:GoAccess能够将分析结果保存为HTML格式的报告,这些报告不仅美观易读,而且包含了丰富的统计信息和图表。这使得网站管理者能够更直观地理解网站流量和用户行为,并轻松地将报告分享给团队成员或客户。
无外部依赖,可离线查看html网页报告
WebSocket支持:通过配置WebSocket选项,GoAccess可以实现实时解析并输出日志详情的功能。这为用户提供了一个交互式的、动态更新的日志分析界面,使得数据分析更加直观和高效。
开启 WebSocket 选项,支持实时解析并输出日志详情
快速上手教程
docker容器部署
# 静态报告: 临时运行
docker run -i --rm --name=goaccess \
# 配置中文语言以及国内时区
-e "TZ=Asia/Shanghai" \
-e "LANG=zh_CN.UTF-8" \
# 开启地理位置解析,需要离线下载数据库
-v ~/goaccess/database/GeoLite2-City.mmdb:/GeoLite2-City.mmdb \
# 自定义配置文件,设定日志格式等
-v ~/goaccess/data:/srv/data \
# nginx日志路径
-v ~/nginx/logs:/srv/logs \
# html报告输出路径
-v ~/nginx/html/goaccess:/srv/report \
# 也可提前拉取镜像: docker pull allinurl/goaccess
allinurl/goaccess --no-global-config \
--config-file=/srv/data/goaccess.conf \
--output=/srv/report/index.html \
--log-file=/srv/logs/access.log \
--geoip-database /GeoLite2-City.mmdb
常规部署重点来了: WebSocket配置
如果希望使用WebSocket功能实现实时日志分析,需要在编译GoAccess时添加--with-openssl选项,并在运行时配置相关参数。以下是一些WebSocket相关的配置选项:
--real-time-html:启用实时HTML报告功能。
--daemonize:以守护进程方式运行GoAccess。
--origin=<url>:设置前端发送请求头Origin字段的值。
--port=<port>:设置后端WebSocket服务监听的端口号,默认为7890。
--ping-interval=<secs>:设置心跳间隔(以秒为单位),以保持WebSocket连接活跃。
如果担心直接暴露WebSocket端口的安全问题,可以使用Nginx等反向代理工具来代理WebSocket服务。
没有开启前左侧的小齿轮是灰色的按钮,打开控制台过滤websocket也没有该类请求.
按照上述GoAccess配合nginx反向代理后,开启websocket支持:
开启后左侧的小齿轮变成绿色,已有了websock请求!
现在有了实时监控日志的功能,可以及时掌握更多数据.
总结
本文属于GoAccess的应用篇,主要介绍了如何配置webSocket实现实时监控解析web日志的功能.
详细介绍了相关配置以及具体的演示案例,同时利用nginx反向代理方式避免了GoAccess默认端口7890暴露到外网的风险.
嘿,小伙伴们,你们知道吗?这字儿可不是白码的,每一颗键帽下的汗水都能浇出一朵花来!所以,要是看得开心,就请大方地撒点阳光——评论点赞转发走一波,让我这花园更加灿烂!
领取专属 10元无门槛券
私享最新 技术干货