GoAccess请求监控
简介
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请求监控相关推荐
- invoke方法是做啥的_使用 NLog 给 Asp.Net Core 做请求监控
为了减少由于单个请求挂掉而拖垮整站的情况发生,给所有请求做统计是一个不错的解决方法,通过观察哪些请求的耗时比较长,我们就可以找到对应的接口.代码.数据表,做有针对性的优化可以提高效率.在 asp.ne ...
- 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 ...
- bat php 监控网站,bat curl 发送http请求 监控网站
完整bat脚本: @echo off color 1f title 正在监控xxxx.com echo 正在监控xxxx.com... :aaa set str="0" curl ...
- mac上的http请求监控软件
试用多款http监控软件,目标:1.免费,2.实用 目前找到的最好用的是,charles,中文叫"青花瓷".它有一个功能比较完善的免费试用版,监控http时可以查看http的详细参 ...
- 搭建前端监控系统(四)接口请求异常监控篇
背景:市面上的监控系统有很多,大多收费,对于小型前端项目来说,必然是痛点.另一点主要原因是,功能虽然通用,却未必能够满足我们自己的需求, 所以我们自给自足也许是个不错的办法. 这是搭建前端监控系统的第 ...
- 如何监控手机网络请求
如何监控手机网络请求 A.postman B.charles C.zan-proxy D.无法做到 E.不知道 面试写的是E,我觉得我脑子被吃了.... 一.Fiddler是位于客户端和服务器端之间的 ...
- Fundebug后端Node.js插件更新至0.2.0,支持监控Express慢请求
摘要: 性能问题也是BUG,也需要监控. Fundebug后端Node.js异常监控服务 Fundebug是专业的应用异常监控平台,我们Node.js插件fundebug-nodejs可以提供全方位的 ...
- java请求慢_为什么重复的GET请求变慢了?
最近在研究慢请求监控的问题,写了一个简单的测试代码:在网页端(index.html)通过fetch函数向服务端获取数据,然后打印请求耗时. function requestData() { let s ...
- 小程序异常监控及错误处理
小程序异常监控收集 web端与小程序错误监控差异 在 Web 端监测的是页面完整的 url,而小程序端监测的是路由地址: 小程序页面属于app内部的页面,使用时已全部加载完毕,因此监控页面性能时不统计 ...
最新文章
- ??? error using == times matlab,matlab错误 Error using 怎么办?
- Bitmap上下合成图片
- 谁是第三者之- Activity、Window、View
- matlab共轭梯度法_优化算法之牛顿法
- NTP时间服务器搭建
- 亚马逊封号潮下,卖家们凭借这么做实现自救?速卖通和Lazada成为首选
- mysql timestamp 自动更新_mysql timestamp自动更新
- 初一模拟赛总结(2019.5.25)
- 适用于zTree 、EasyUI tree、EasyUI treegrid
- Spring Boot 实际应用(三)发送邮件实现
- C# PDF 转成图片利用GhostScript
- Python自动化必会技能-Excel文件读取
- 引路蜂地图API:Gis.Raster 包定义
- 网络流24题-骑士共存问题
- openvino系列 16. OpenVINO 手写字体识别 OCR
- jquery实现侧边栏手风琴三级导航菜单demo
- matlab-计算个人所得税
- BERT模型—2.BERT模型预训练与微调
- Google Authenticator(谷歌身份验证器)C#版
- 前端更新需要清空浏览器缓存_浏览器缓存机制分析及前端缓存清理
热门文章
- DIV CSS IE6/IE7/IE8/FF兼容问题汇总
- 三维数字孪生引擎与实景互动,案例解析
- 关于360超级Root流氓软件(从KingRoot掉进360Root陷井)
- LeanCloud 三至四月变化
- 《ASP.NET Web API 2框架揭秘》
- 多头、多头市场,空头、空头市场......
- c 语言关机指令,如何用C语言调用关机指令?
- 内网与外网有什么区别
- React版本的todolist小demo 快速复习React(React)
- Python—— 随机生成测试试卷