nginx流量监控:goAccess安装与使用

news2024/9/20 6:00:16

关于goAccess

GoAccess 是一款实时、快速的日志分析工具,专门设计用于分析Web服务器日志,特别是Nginx日志。

安装

(1)准备相关依赖

# Missing development libraries for ncursesw
# centOS
yum install -y ncurses-devel
# Ubuntu
apt-get install libncurses5-dev

# Missing development files for libmaxminddb library.
# centOS
yum install -y libmaxminddb-devel
# Ubuntu
apt-get install libmaxminddb-dev

(2)下载&编译

# 下载
wget https://tar.goaccess.io/goaccess-1.9.2.tar.gz
# 解压
tar -xzvf goaccess-1.9.2.tar.gz
# 进入目录
cd goaccess-1.9.2/
# 预编译
./configure --enable-utf8 --enable-geoip=mmdb --prefix=/opt/goaccess
# 编译
make
# 安装
make install

(3)编辑配置文件goaccess.conf,添加如下内容

# 将配置文件放在etc目录下
cp /usr/local/goaccess-1.7/config/goaccess.conf /etc/goaccess.conf
vim /etc/goaccess.conf

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

(4)增加全局变量,中文启动

cp /path/to/goaccess/bin/goaccess /usr/bin/
LANG="zh_CN.UTF-8" goaccess -f /path/to/nginx/access.log -p /etc/goaccess.conf

在这里插入图片描述

配合Nginx使用

(1)监控方式1:直接读取日志

goaccess path/to/nginx/access.log

(2)监控方式2:生成HTML报告

goaccess path/to/nginx/access.log -o report.html --log-format=COMBINED

--log-format 参数用于指定日志格式,对于Nginx的默认访问日志格式,使用 COMBINED 通常是最合适的,因为它匹配Apache的combined日志格式,也是Nginx默认日志格式。

高级用法
-a 参数表示启用实时分析模式,适合监视实时日志流。
-d 参数开启DNS解析,显示主机名而非IP地址。
-f 参数指定日志文件路径。
-p 参数指定GoAccess配置文件路径。
-t 和 -T 分别显示表格和树状图统计。
-r 参数可以接受管道输入,例如 cat access.log | goaccess - 。

(3)实时生成HTML报告

vim /etc/goaccess.conf
# 291行左右,可通过 /"关键词"进行搜索定位
daemonize true
# 310行左右:
real-time-html true

#直接启动
LANG="zh_CN.UTF-8" goaccess -f /path/to/nginx/access.log -p /etc/goaccess.conf -o  /path/to/goaccess-1.7/report.html

默认goaccess在开启实时real-time-html后会监听端口7890的websocket,如果服务器不允许请求7890端口,你就看不到那个页面是实时更新的——你会发现访问的页面最后更新时间始终不变

或者改用 crontab,定时更新report.html

 vim /etc/crontab
 
 # 定时生成nginx监控HTML——goaccess
* *     * * *   goaccess -p /etc/goaccess.conf /var/log/nginx/access.log -o  /opt/goaccess-1.9.2/report.html

(4)自定义nginx日志格式&goAccess适配

# goaccess默认的日志格式与nginx的默认格式一致

%h %^[%d:%t %^] "%r" %s %b "%R" "%u"

log_format combined '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"';

自定义日期格式:增加一个响应时间

修改nginx.conf文件:文件中的http下增加或修改如下配置

log_format myfmt '$remote_addr - $remote_user [$time_local] "$request"'
				'$status $body_bytes_sent "$http_referer" '
				'"$http_user_agent" $request_time'
access_log path/to/access.log myfmt;

在这里插入图片描述

修改goAccess配置文件:

vim /etc/goaccess.conf

# 添加以下内容
time-format %H:%M:%S
date-format %d/%b/%Y
log_format %h - %^ [%d:%t %^] "%r" %s %b "%R"  "%u" %T

# 重启goaccess
LANG="zh_CN.UTF-8" goaccess -f /path/to/nginx/access.log -p /etc/goaccess.conf -o  /path/to/goaccess-1.9/report.html
  • 变量说明
 1.$remote_addr$http_x_forwarded_for 用以记录客户端的ip地址;
 2.$remote_user :用来记录客户端用户名称;
 3.$time_local : 用来记录访问时间与时区;
 4.$request : 用来记录请求的url与http协议;
 5.$status : 用来记录请求状态;成功是200,
 6.$body_bytes_sent :记录发送给客户端文件主体内容大小;
 7.$http_referer :用来记录从那个页面链接访问过来的;
 8.$http_user_agent :记录客户端浏览器的相关信息;

(5)nginx转发

    # 配置文件中监听端口,对请求进行转发
    server{
        listen 33503;
        server_name localhost;

		# report.html路径
        location /report.html {
            alias /opt/goaccess-1.9.2/report.html;
        }
    }

(5)访问nginx ip + 端口 / report.html

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1703404.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

动态规划-似包非包问题

组合总和 Ⅳ(377) 题目描述: 状态表示: 我们看到这题发现有一个限制条件就是目标整数target并且此时数组中的数字是可以重复选择的,这时候不难联想到前面学习的完全背包问题,这题好像符合完全背包问题的…

【开源】加油站管理系统 JAVA+Vue.js+SpringBoot+MySQL

目录 一、项目介绍 论坛模块 加油站模块 汽油模块 二、项目截图 三、核心代码 一、项目介绍 Vue.jsSpringBoot前后端分离新手入门项目《加油站管理系统》,包括论坛模块、加油站模块、汽油模块、加油模块和部门角色菜单模块,项目编号T003。 【开源…

nuxt2:自定义指令 / v-xxx / directives / 理解 / 使用方法 / DEMO

一、理解自定义指令 在 vue 中提供了一些对于页面和数据更为方便的输出&#xff0c;这些操作就叫做指令&#xff0c;以 v-xxx 表示&#xff0c;比如 html 页面中的属性 <div v-xxx ></div>。自定义指令很大程度提高了开发效率&#xff0c;提高了工程化水平&#x…

【读书】读书笔记——理科生的视角:底层逻辑+数学之美

1&#xff0c;底层逻辑1&#xff08;看清这个世界的底牌&#xff09; 刘润 著 0&#xff09;什么是底层逻辑&#xff1f; 底层逻辑是&#xff1a;事物之间共同点、变化背后不变的东西事&#xff1b;看清事物的本质&#xff0c;才能在复杂变化中从根本上解决问题。 1&#x…

基于51单片机的智能灯光控制系统

一.硬件方案 智能灯光控制系统由单片机最小系统、人体感应模块、关照强度模块、灯光控制模块、电源模块和灯泡组成。本文以STC89C52单片机为核心&#xff0c;通过利用光照度和红外人体感应相结合主动与被动的探测方法&#xff0c;现了室内无人或者关照充足时灯光自动光灯&…

PyCharm面板ctrl+鼠标滚轮放大缩小代码

1.【File】➡【Settings】 2.点击【Keymap】&#xff0c;在右边搜索框中搜incre&#xff0c;双击出现的【Increase Font Size】 3.在弹出的提示框中选择【Add Mouse Shortcut】 4.弹出下面的提示框后&#xff0c;键盘按住【ctrl】&#xff0c;并且上滑鼠标滚轮。然后点击【O…

第十七讲:结构体

第十七讲&#xff1a;结构体 1.初始结构体1.1结构体声明1.2结构体变量的创建和初始化1.2.1结构体变量的创建1.2.2结构体变量的初始化1.2.2.1普通初始化1.2.2.2结构体数组1.2.2.3结构体指针 1.3typedef定义结构体1.4结构体的自引用1.5结构体的特殊声明 2.结构体内存对齐2.1对齐规…

【C++初阶】—— 类和对象 (上)

&#x1f4dd;个人主页&#x1f339;&#xff1a;EterNity_TiMe_ ⏩收录专栏⏪&#xff1a;C “ 登神长阶 ” &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; 类和对象 1. 初步认识C2. 类的引入3. 类的定义声明和定义全部放在类体中声明和定义分开存放 4.…

用队列实现栈 用栈实现队列 设计循环队列

用队列实现栈 思路 栈的特点&#xff1a;后进先出 队列的特点&#xff1a;先进先出 使用两个队列实现栈&#xff1a; 我们可以使用两个队列&#xff0c;一个队列为&#xff1a;空队列&#xff0c;一个队列为&#xff1a;非空队列 当我们要出队列时&#xff1a; 将 size - …

束测后台实操文档1-PVE、PBS

合肥先进光源束测系统后台基础架构初步设计报告 合肥先进光源束测系统后台搭建进展2024.4.29 关于后台基础架构&#xff0c;写了上面两篇文档&#xff0c;只是框架的印象&#xff0c;没涉及到具体的实操&#xff0c;后面针对具体的搭建慢慢的完善操作的细节&#xff0c;从今年…

灌装线在线粒子浮游菌监测系统安装调试

近日&#xff0c;北京中邦兴业成功完成了某企业灌装线多个点位的洁净环境在线粒子浮游菌监测系统的施工并完成了前期的调试工作。 【项目现场】 北京中邦兴业技术工程师根据客户现场实际情况&#xff0c;进行了粒子、浮游菌的点位布置&#xff0c;此系统能够实时监测生产线上的…

Docker安装MySQL的详细教程

1. 拉取MySQL镜像 拉取MySQL镜像。您可以指定版本号&#xff0c;例如5.7或8.0&#xff0c;如果不指定&#xff0c;默认会拉取最新稳定版。 docker pull mysql:5.7或者&#xff0c;使用最新版本&#xff1a; docker pull mysql:latest2. 运行MySQL容器 拉取镜像完成后&#…

本特利135813-01在PLC系统中的应用与功能分析

本特利135813-01在PLC系统中的应用与功能分析 一、引言 在工业自动化和机械设备监测领域&#xff0c;高精度、高可靠性的传感器对于确保设备的稳定运行和故障预防具有至关重要的作用。本特利&#xff08;Bently Nevada&#xff09;作为振动监测领域的佼佼者&#xff0c;其1358…

Pytorch深度学习实践笔记10(b站刘二大人)

&#x1f3ac;个人简介&#xff1a;一个全栈工程师的升级之路&#xff01; &#x1f4cb;个人专栏&#xff1a;pytorch深度学习 &#x1f380;CSDN主页 发狂的小花 &#x1f304;人生秘诀&#xff1a;学习的本质就是极致重复! 《PyTorch深度学习实践》完结合集_哔哩哔哩_bilibi…

基于SVm和随机森林算法模型的中国黄金价格预测分析与研究

摘要 本研究基于回归模型&#xff0c;运用支持向量机&#xff08;SVM&#xff09;、决策树和随机森林算法&#xff0c;对中国黄金价格进行预测分析。通过历史黄金价格数据的分析和特征工程&#xff0c;建立了相应的预测模型&#xff0c;并利用SVM、决策树和随机森林算法进行训…

装机必备——WinRAR安装教程

装机必备——WinRAR安装教程 软件下载 软件名称&#xff1a;WinRAR 软件语言&#xff1a;简体中文 软件大小&#xff1a;3.38M 系统要求&#xff1a;Windows7或更高&#xff0c; 32/64位操作系统 硬件要求&#xff1a;CPU2GHz &#xff0c;RAM4G或更高 下载通道①迅雷云盘丨下…

2024甘肃省三支一扶报名流程详细图解

预计报名时间&#xff1a;2024年5月27日9:00至5月31日18&#xff1a;00 2024甘肃省三支一扶报名流程 登录甘肃人力人力资源考试中心&#xff0c;选择网上报名 进入账户登录&#xff0c;首次登录同学请先注册账号。 注册账号&#xff0c;认真填写&#xff0c;仔细核对信息。…

AJ-Report一次排错处理

山重水复疑无路&#xff0c;柳暗花明又一村...... 新项目需要选型开源的AJ-Report&#xff0c;计划再次基础上进行二开。 官网地址&#xff1a; AJ-Report: AJ-Report是一个完全开源&#xff0c;拖拽编辑的可视化设计工具。三步快速完成大屏&#xff1a;配置数据源---->写…

矩阵对角化在机器学习中的奥秘与应用

在机器学习的广阔领域中&#xff0c;矩阵对角化作为一种重要的数学工具&#xff0c;扮演着不可或缺的角色。从基础的线性代数理论到复杂的机器学习算法&#xff0c;矩阵对角化都在其中发挥着重要的作用。 矩阵对角化的概念与原理 矩阵对角化是矩阵理论中的一个基本概念&#x…

红队攻防渗透技术实战流程:红队目标上线之webshell工具魔改

红队攻防免杀实战 1. 红队目标上线-Webshell免杀-源码魔改1.2 Webshell-代码混淆&流量绕过&工具原理1.2 通过对冰蝎的数据包分析:1.2魔改冰蝎-JAR反编译打包构建1.2魔改冰蝎-防识别-打乱特征指纹1.2魔改冰蝎-防查杀-新增加密协议1. 红队目标上线-Webshell免杀-源码魔改…