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

关于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.conftime-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.mzph.cn/news/843482.shtml

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

相关文章

算法002:复写零

力扣(LeetCode). - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/duplicate-zeros/ 使用 双指针 来解题: 具体思路 如果是和00…

多模态中的模态有哪些

“多模态”这个名字中的“模态”(modality),指的是不同的数据类型或信息源。在多模态大模型中,常见的模态包括: 文本模态: 包括自然语言文本、语音识别文本等。 图像模态: 指图像数据&#xff…

C++ 常量和变量

1 常量 具体把数据写出来 2,3&#xff0c;4&#xff1b;1.2 1.3;“Hello world!”,“C” cout<<2015 常量&#xff1a;不能改变的量。 字面常量&#xff08;字面量、直接常量&#xff09;:直接写出的数据。 符号常量&#xff1a;用符号表示数据&#xff0c;但它一旦确定…

【CCF-CSP】202309-1 202309-2 坐标变换

坐标变换&#xff08;其一&#xff09; 代码&#xff1a; #include <bits/stdc.h> using namespace std; int main(){int n,m,x,y,sumx0,sumy0;cin>>n>>m;for(int i1;i<n;i){cin>>x>>y;sumxx,sumyy;}for(int i1;i<m;i){cin>>x>&…

总线带宽(总线系统的数据传送速率)

定义 总线上每秒钟传输的最大字节数或比特数 表示方法 通常使用“比特率”来表示&#xff0c;单位为比特每秒&#xff08;bps&#xff0c;b/s&#xff09;。 计算公式 总线带宽总线宽度/传输周期 其中&#xff0c;总线宽度是指数据总线的位数&#xff08;单位&#xff1a…

B站广告推广引流哪里能做?

哔哩哔哩&#xff08;B站&#xff09;作为国内领先的年轻人文化社区与视频平台&#xff0c;其独特的二次元文化氛围和高度活跃的用户群体&#xff0c;成为了众多品牌寻求突破、触达年轻消费群体的理想阵地。在这样一个充满活力但又竞争激烈的平台上有效推广&#xff0c;吸引并留…

Linux线程:管理与控制

一、引言 随着计算机硬件技术的飞速发展&#xff0c;尤其是多核CPU的普及&#xff0c;多线程编程已成为充分利用系统资源、提高程序并发性和响应速度的关键技术。 多线程编程允许一个程序中同时运行多个线程&#xff0c;每个线程可以独立地执行不同的任务。这种并行处理的方式…

LiveGBS流媒体平台GB/T28181用户手册-操作日志:HTTP接口记录、上级SIP信令、搜索、清空

LiveGBS流媒体平台GB/T28181用户手册-操作日志:HTTP接口记录、上级SIP信令、搜索、清空 1、操作日志1.1、列表1.2、搜索过滤1.3、清空 2、搭建GB28181视频直播平台 1、操作日志 操作日志&#xff0c;记录了HTTP接口调用的记录&#xff0c;还有级联给上级平台&#xff0c;上级平…

PPDiffusers WebUI

PPDiffusers WebUI 百度飞桨平台&#xff0c;每天免费8算力&#xff0c;可运行4小时。项目链接 克隆仓库 git clone https://gitee.com/Covirtue/PPdiffusersWebUI.git测试api 进入PPdiffusersWebUI目录后&#xff0c;运行 main.ipynb。 绝对路径的是本地模型&#xff0c…

盲人无障碍设施建设:科技之光照亮前行之路

在这个快速发展的时代&#xff0c;科技的每一次进步都在悄然改变着我们的生活&#xff0c;尤其在提升特殊群体生活质量方面&#xff0c;展现出前所未有的力量。今天&#xff0c;让我们聚焦于盲人无障碍设施建设这一重要话题&#xff0c;通过一款名为“蝙蝠避障”的辅助软件&…

【iOS】didReceiveMemoryWarning实例方法

iPhone下每个App可用的内存是被限制的&#xff0c;如果一个App使用的内存超过20M&#xff0c;则系统会向该App发送Memory Warning&#xff08;内存警告&#xff09;消息&#xff0c;收到此消息后&#xff0c;App必须正确处理&#xff0c;否则可能出错或出现内存泄漏。 目录 流程…

6、xss-labs之level8

1、测试分析 传入123查看页面源码&#xff0c;发现传入的值传给了value和a标签的href&#xff0c;并且对特殊字符<>" 都进行了HTML实体化&#xff0c;对于大小写进行了转化&#xff0c;过滤掉了src、data、onfocus、href、script、"&#xff08;双引号&#…

AI图书推荐:终极ChatGPT企业手册—借助Python和Java实现

《终极ChatGPT企业手册—借助Python和Java实现》&#xff08;Ultimate ChatGPT Handbook for Enterprises&#xff09;是一本关于ChatGPT的手册&#xff0c;旨在帮助企业利用AI能力、提示工程和ChatGPT的解决方案循环来改变企业景观。这本书提供了深入探讨ChatGPT的演变、能力以…

webpack5基础和开发模式配置

运行环境 nodejs16 webpack基础 webpack打包输出的文件是bundle 打包就是编译组合 webpack本身功能 仅能编译js文件 开始使用 基本配置 五大核心概念 准备webpack配置文件 1.在根目录 2.命名为webpack.config.js 开发模式介绍 处理样式资源 处理css样式资源文件…

C语⾔:内存函数

1. memcpy使⽤和模拟实现&#xff08;对内存块的复制&#xff0c;不在乎类型&#xff09; void * memcpy ( void * destination, const void * source, size_t num ); • 函数memcpy从source的位置开始向后复制num个字节的数据到destination指向的内存位置。 • 这个函数在遇…

3D Slicer:从入门到精通——数据模块之DICOM

DICOM 文章目录 DICOM概述DICOM简介Slicer DICOM数据库DICOM插件 如何操作创建DICOM数据库将DICOM文件读入场景DICOM导入DICOM加载 从DICOM数据库中删除数据将数据从场景导出到DICOM数据库将数据从场景导出到DICOM文件DICOM网络传输DICOMweb网络传输 查看DICOM元数据 面板及其用…

R实验 参数估计

实验目的&#xff1a; 掌握矩法估计与极大似然估计的求法&#xff1b;了解估计量的优良性准则&#xff1a;无偏性、有效性、相合性&#xff08;一致性&#xff09;&#xff1b;学会利用R软件完成一个正态总体均值和两个正态总体均值差的区间估计&#xff1b;学会利用R软件完成…

NiuCloud-Admin-SAAS:引领前端技术革新与SaaS应用快速开发的未来

一、引言 在数字化快速发展的今天&#xff0c;企业对于快速搭建、高效运营的SaaS&#xff08;Software-as-a-Service&#xff09;系统的需求日益增长。为满足这一需求&#xff0c;NiuCloud-Admin-SAAS作为一款快速开发SaaS通用管理系统后台框架&#xff0c;凭借其先进的技术栈…

基于Java实现震中附近风景区预警可视化分析实践

目录 前言 一、空间数据说明 1、表结构信息展示 2、空间范围查询 二、Java后台开发实现 1、模型层设计与实现 2、控制层设计与实现 三、Leaflet地图开发 1、地震震中位置展示 2、百公里风景区列表展示 3、风景区列表展示 4、附近风景区展示 四、总结 前言 地震这类…

链表mark

什么是链表&#xff0c;链表是一种通过指针串联在一起的线性结构&#xff0c;每一个节点由两部分组成&#xff0c;一个是数据域一个是指针域&#xff08;存放指向下一个节点的指针&#xff09;&#xff0c;最后一个节点的指针域指向null&#xff08;空指针的意思&#xff09;。…