简介

GoAccess是一款开源的实时web日志分析器和交互式查看器,用于可视化查看HTTP统计信息,可以系统的终端上运行,也可以通过浏览器运行;

本文通过使用GoAccess分析Nginx的日志文件,从而统计HTTP的请求情况;

准备

当前服务器:Ubuntu 22.04.1 LTS

本文是基于Docker容器,所以先在Docker安装Nginx(Nginx安装)

思路

首先Nginx会产生日志文件,GoAccess就是利用这个日志文件的信息来分析、统计HTTP信息,然后会生成一个可视化报表,我们会将这个报表替换掉Nginx的index.html欢迎页面,从而直接展示可视化报表,所以这里的Nginx要映射html文件到宿主机,同时Goaccess的输出报表的文件也映射到此目录下,且名称为index.html;

启动Nginx

docker run -d --name nginx -p 8801:80 -v /opt/nginx/html:/usr/share/nginx/html -v /opt/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /opt/nginx/logs:/var/log/nginx -v /opt/nginx/conf/conf.d:/etc/nginx/conf.d nginx

首先我们会启动Nginx,同时做好卷映射,Nginx相关文件都放在/opt/nginx/目录下;

/opt/nginx/html 对应容器中路径 /usr/share/nginx/html,目前是Nginx欢迎页,后面会用来存放日志分析后的可视化报表页面

/opt/nginx/conf/nginx.conf对应容器中路径 /etc/nginx/nginx.conf,是Nginx的配置文件

/opt/nginx/logs对应容器中路径/var/log/nginx,Nginx的日志文件,后面要传递给GoAccess做为分析日志源

到这Nginx就启动起来了,记住这个index.html页面与access.log文件,后面会将index.html替换,而access.log会被用来做分析,下面安装配置GoAccess。

启动GoAccess

搜索

docker search GoAccess

拉取

docker pull allinurl/goaccess

配置

之前说过要映射配置文件,所以我们配置下GoAccess的日志格式,这个很重要,必须对应Nginx的日志的格式来匹配,可以看看官方文档。默认的Nginx日志格式如下:

知道了Nginx的日志格式,那么我们需要将GoAccess的匹配参数与之对应,参考

  • %t 匹配time-format格式的时间字段
  • %d 匹配date-format格式的日期字段
  • %h host(客户端ip地址,包括ipv4和ipv6)
  • %r 来自客户端的请求行
  • %m 请求的方法
  • %U URL路径
  • %H 请求协议
  • %s 服务器响应的状态码
  • %b 服务器返回的内容大小
  • %R HTTP请求头的referer字段
  • %u 用户代理的HTTP请求报头
  • %D 请求所花费的时间,单位微秒
  • %T 请求所花费的时间,单位秒
  • %^ 忽略这一字段

所以得出的配置文件为:

log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u"
date-format %d/%b/%Y
time-format %H:%M:%S

启动

docker run --restart=always -d -p 7890:7890 -v /opt/goaccess/data:/srv/data -v /opt/nginx/html:/srv/report -v /opt/nginx/logs:/srv/logs --name goaccess allinurl/goaccess --no-global-config --config-file=/srv/data/goaccess.conf --output=/srv/report/index.html --log-file=/srv/logs/access.log --real-time-html

然后启动GoAccess,也做好卷映射,相关文件在/opt/goaccess/下,

/opt/goaccess/data对应容器中路径/srv/data,是GoAccess的配置路径

/opt/nginx/html对应容器中路径/srv/report,用来存放可视化报表,由--output参数决定

/opt/nginx/logs对应容器中路径/srv/logs,这里是将Nginx的产生的日志文件路径映射到goaccess容器,对日志做分析

GoAccess参数--config-file设置为/srv/data/goaccess.conf,这里的/srv/data映射了宿主机/opt/goaccess/data;参数--output设置为/srv/report/index.html,这里的/opt/nginx/html又映射到nginx容易,所以nginx可以直接访问这个html页;

注意配置文件一定不能弄错,不然就会是这样,一直重启,这是因为还没有将配置文件设置好,配置文件我们映射了opt/goaccess/data,只需要在此目录下创建好goaccess.conf并配置格式即可;

由于这里已经启动了,目录已经自动创建好了,没启动前还是乖乖创建目录、创建文件;这里只需要创建文件了;

打开映射的ip地址查看是否配置成功,如果没启动的话大概率是配置文件弄错了,多试着改几次配置文件即可;

GoAccess请求监控相关推荐

  1. invoke方法是做啥的_使用 NLog 给 Asp.Net Core 做请求监控

    为了减少由于单个请求挂掉而拖垮整站的情况发生,给所有请求做统计是一个不错的解决方法,通过观察哪些请求的耗时比较长,我们就可以找到对应的接口.代码.数据表,做有针对性的优化可以提高效率.在 asp.ne ...

  2. bat curl 返回值_bat curl 发送http请求 监控网站

    标签:bat @echo off color 1f title 正在监控 www.0579ld.com.cn echo 正在监控 www.0579ld.com.cn(23.247.53.3).. :a ...

  3. bat php 监控网站,bat curl 发送http请求 监控网站

    完整bat脚本: @echo off color 1f title 正在监控xxxx.com echo 正在监控xxxx.com... :aaa set str="0" curl ...

  4. mac上的http请求监控软件

    试用多款http监控软件,目标:1.免费,2.实用 目前找到的最好用的是,charles,中文叫"青花瓷".它有一个功能比较完善的免费试用版,监控http时可以查看http的详细参 ...

  5. 搭建前端监控系统(四)接口请求异常监控篇

    背景:市面上的监控系统有很多,大多收费,对于小型前端项目来说,必然是痛点.另一点主要原因是,功能虽然通用,却未必能够满足我们自己的需求, 所以我们自给自足也许是个不错的办法. 这是搭建前端监控系统的第 ...

  6. 如何监控手机网络请求

    如何监控手机网络请求 A.postman B.charles C.zan-proxy D.无法做到 E.不知道 面试写的是E,我觉得我脑子被吃了.... 一.Fiddler是位于客户端和服务器端之间的 ...

  7. Fundebug后端Node.js插件更新至0.2.0,支持监控Express慢请求

    摘要: 性能问题也是BUG,也需要监控. Fundebug后端Node.js异常监控服务 Fundebug是专业的应用异常监控平台,我们Node.js插件fundebug-nodejs可以提供全方位的 ...

  8. java请求慢_为什么重复的GET请求变慢了?

    最近在研究慢请求监控的问题,写了一个简单的测试代码:在网页端(index.html)通过fetch函数向服务端获取数据,然后打印请求耗时. function requestData() { let s ...

  9. 小程序异常监控及错误处理

    小程序异常监控收集 web端与小程序错误监控差异 在 Web 端监测的是页面完整的 url,而小程序端监测的是路由地址: 小程序页面属于app内部的页面,使用时已全部加载完毕,因此监控页面性能时不统计 ...

最新文章

  1. ??? error using == times matlab,matlab错误 Error using 怎么办?
  2. Bitmap上下合成图片
  3. 谁是第三者之- Activity、Window、View
  4. matlab共轭梯度法_优化算法之牛顿法
  5. NTP时间服务器搭建
  6. 亚马逊封号潮下,卖家们凭借这么做实现自救?速卖通和Lazada成为首选
  7. mysql timestamp 自动更新_mysql timestamp自动更新
  8. 初一模拟赛总结(2019.5.25)
  9. 适用于zTree 、EasyUI tree、EasyUI treegrid
  10. Spring Boot 实际应用(三)发送邮件实现
  11. C# PDF 转成图片利用GhostScript
  12. Python自动化必会技能-Excel文件读取
  13. 引路蜂地图API:Gis.Raster 包定义
  14. 网络流24题-骑士共存问题
  15. openvino系列 16. OpenVINO 手写字体识别 OCR
  16. jquery实现侧边栏手风琴三级导航菜单demo
  17. matlab-计算个人所得税
  18. BERT模型—2.BERT模型预训练与微调
  19. Google Authenticator(谷歌身份验证器)C#版
  20. 前端更新需要清空浏览器缓存_浏览器缓存机制分析及前端缓存清理

热门文章

  1. DIV CSS IE6/IE7/IE8/FF兼容问题汇总
  2. 三维数字孪生引擎与实景互动,案例解析
  3. 关于360超级Root流氓软件(从KingRoot掉进360Root陷井)
  4. LeanCloud 三至四月变化
  5. 《ASP.NET Web API 2框架揭秘》
  6. 多头、多头市场,空头、空头市场......
  7. c 语言关机指令,如何用C语言调用关机指令?
  8. 内网与外网有什么区别
  9. React版本的todolist小demo 快速复习React(React)
  10. Python—— 随机生成测试试卷