网站首页 > 博客文章 正文
目录
一、需求背景
二、安装
三、分析静态
四、动态分析
一、需求背景
统计AP 使用峰值。客户端访问AP 是通过Nginx 代理实现的。因此可以从Nginx的log着手分析,配合管道命令可以定向分析某些具体请求或者某段时间的nginx log,因此通过goaccess 来分析Nginx可满足需求。
二、安装
安装goaccess之前唯一需要依赖的包是ncurses。
1、tar xvf goaccess-1.2.tar.gz -C /usr/local
这里请注意,将解压文件压在/use/local 的原因是
有的依赖库会找不到而报错
例如
: Failed dependencies: GeoIP = 1.6.5-1.el6 is needed by GeoIP-devel-1.6.5-1
这个浪费了我快3个小时,从github上把geoip的项目clone下来也没有解决,最后是使用-C 参数将/usr/local下。
2、cd goaccess-1.2/
3、 ./configure --enable-utf8 --enable-geoip=legacy
4、 make
5、 make install
3 4 5步骤分别是什么意思呢?
第一步:./configure
首先检查机器的一些配置和环境,系统的相关依赖。如果缺少相关依赖,脚本会停止执行,软件安装失败
根据之前检查环境和依赖的结果,生产Makefile文件(main job)
第二步:make
make是Unix系统下的一个包。执行make命令需Makefile文件。make会根据Makefile文件中指令来安装软件
Makefile文件中有许多标签,来表示不同的section。一般的,make会编译源代码并生成可执行文件,其实Makefile主要就是描述文件编译的相互依赖关系
第三步:make install
当执行make命令不加任何参数,程序就会按照Makefile的指令在相应的section间跳转并且执行相应的命令
加上install参数即执行make install时,程序只会执行install section处的命令。install section的指令会将make阶段生产的可执行文件拷贝到相应的地方,例如/usr/local/bin
make clean 会删除上次make生产的obj文件以及可执行文件
三、分析静态
具体其他参数详见 这里。
goaccess -a -d -f /usr/local/nginx/logs/access-2020-05-18_151.log -p ./config/goaccess.conf >/tmp/out.html
四、动态分析
关键参数 :--real-time-html 实时通过websocket 协议将分析结果推送给客户端。
#!/bin/bash
#desc: generate html with goaccess based on nginx log
#author :ninesun
#parp: null
cd /usr/local/goaccess-1.2/
LANG="zh_CN.UTF-8"
goaccess /usr/local/nginx/logs/access.log -o /opt/goaccess/html/out.html --time-format='%H:%M:%S' --date-format='%d/%b/%Y' --log-format=COMBINED --real-time-html
执行该脚本后,会提示
goaccess]# ps -ef|grep goacc
root 8757 8755 7 11:23 pts/1 00:00:08 goaccess /usr/local/nginx/logs/access.log -o /opt/goaccess/html/out.html --time-format=%H:%M:%S --date-format=%d/%b/%Y --log-format=COMBINED --real-time-html
WebSocket server ready to accept new client connections
服务端目前已经ok了,现在在nginx中配置客户端请求路径。使用nginx代理websocket 请求。
#ninesun add 2020年5月20日17:04:31
location /out.html {
alias /opt/goaccess/html/out.html;
auth_basic "请输入用户名和密码!"; #这里是验证时的提示信息
auth_basic_user_file /opt/goaccess/html/out_passwd; #这是你生成密码存放的文件
proxy_http_version 1.1; # 这三行是为了实现websocket
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
为了安全性,使用 htpasswd 生成秘钥。
htpasswd -c /opt/goaccess/html/out_passwd test
设置好密码后登陆即可以实时查看了。
在这里我一直有一个疑问,websocket 如何和客户端交互?
socket 是实时将数据发送给客户端的。
参考 :
https://www.ctolib.com/goaccess.html
https://goaccess.io/man#examples
https://www.robberphex.com/why-is-connection-upgrade-necessary/
猜你喜欢
- 2024-10-15 英国Access将与马来西亚数字经济发展局合作,加快在亚太地区扩张
- 2024-10-15 霍尼韦尔为香港麗翔公务航空提供GoDirect客舱互联服务|美通社
- 2024-10-15 详解Win10家庭版/专业版/企业版功能区别
- 2024-10-15 Go1.18 快讯:这个新特性太实用了(go1.17新特性)
- 2024-10-15 CentOS中Nginx日志自动分割及日志分析
- 2024-10-15 GO语言(三十):访问关系型数据库(上)
- 2024-10-15 从linux网站搭建到日志服务审计渗透溯源
- 2024-10-15 golang对接阿里云私有Bucket上传图片、授权访问图片
- 2024-10-15 开源的分析web日志工具-Python语言开发,具有灵活的日志格式配置
- 2024-10-15 nginx运维小纪(nginx应用与运维实战 电子版)
你 发表评论:
欢迎- 07-02在线学习在爱奇艺信息流推荐业务中的探索与实践
- 07-02Diallyl Trisulfide(H2S donor)二烯丙基三硫:合成方法与工艺
- 07-02MitoSOX Red Mitochondrial Superoxide Indicator使用方法
- 07-02深度时空网络、记忆网络与特征表达学习在 CTR 预估中的应用
- 07-02iFluor 488标记鬼笔环肽可通过标记F-actin,研究细胞在迁移等
- 07-02快速了解红色线粒体超氧化物荧光探针的基本特性
- 07-02腔肠素400A(Coelenteramine 400a)综合解析,一文掌握所有要点!
- 07-02Chinese doctor Zhang Junqiao's heroic act exemplifies deep China-Africa friendship: FM spokesperson
- 最近发表
-
- 在线学习在爱奇艺信息流推荐业务中的探索与实践
- Diallyl Trisulfide(H2S donor)二烯丙基三硫:合成方法与工艺
- MitoSOX Red Mitochondrial Superoxide Indicator使用方法
- 深度时空网络、记忆网络与特征表达学习在 CTR 预估中的应用
- iFluor 488标记鬼笔环肽可通过标记F-actin,研究细胞在迁移等
- 快速了解红色线粒体超氧化物荧光探针的基本特性
- 腔肠素400A(Coelenteramine 400a)综合解析,一文掌握所有要点!
- Chinese doctor Zhang Junqiao's heroic act exemplifies deep China-Africa friendship: FM spokesperson
- 用Python写了一个上课点名系统(附源码)(自制考勤系统)
- Kubernetes中的PV、PVC、Configmap介绍
- 标签列表
-
- ifneq (61)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)