美文网首页
服务器接口统计-ngxtop

服务器接口统计-ngxtop

作者: 秋天下雨淋湿冬天 | 来源:发表于2023-08-07 11:29 被阅读0次

命令

首先应该安装Python3环境,参考其他文章

//安装 ngxtop
sudo pip install ngxtop

//启动
sudo ngxtop

//如果启动报错 
sudo: ngxtop: command not found

whereis ngxtop
// > ngxtop: /usr/local/bin/ngxtop

把 ngxtop路径的bin路径添加到环境变量
/usr/local/bin

A: 如果你是root用户安装

sudo vi /etc/profile
底部添加 export PATH=/usr/local/bin:$PATH
source /etc/profile

B: 如果你是admin用户安装

sudo vi /etc/sudoers
添加 /usr/local/bin 到 secure_path

启动

sudo ngxtop
image.png

后续内容整理自互联网


介绍

ngxtop和GoAccess(下一篇再说),ngxtop 是通过分析 Nginx 日志文件,有点类似 top 命令的界面实时展示。

ngxtop可以分析以前的日志文件,也可以实时监控服务器日志,你可以像用Top命令一样在端口中快速查出日志中访问最多的IP地址、200/403/500/404错误、请求的页面排行等等。ngxtop还有一个特点就是,它是一个轻量级的工具,而不像 GoAccess 一样规模复杂,可能比较吃配置,如果你的服务器配置不是很给力的话,GoAccess像是强大的日志统计工具可能就不适合你了,ngxtop 就比较好用!

当然 GoAccess 不仅图文并茂,而且速度快,每秒8W 的日志记录解析速度,websocket每10秒刷新统计数据。GoAccess不仅有命令行界面,也可以生成一个Html网页,让你直观地看出来日志中访客数量、请求的文件、404等错误、用户位置、浏览器、操作系统、来路URL、Http状态码等,这个下一篇再慢慢说。

总之,ngxtop 和 GoAccess 两款都是分析Apache、Nginx等服务器日志的利器,掌握好了这两个软件,分析日志会轻松许多。作为站长,你多学习一个软件的使用,也同样意味着你又可以节省一笔服务器开支 -- 一笔服务器带宽的费用,如果你的服务器收费的方式是按流量收费的话。

ngxtop的基本用法如下:

ngxtop [选项]
ngxtop [选项] (print|top|avg|sum) <变量>
ngxtop info

选项有如下参数:

-l : 指定日志文件的完整路径 (Nginx 或 Apache2)
-f : 日志格式
–no-follow: 处理当前已经写入的日志文件,而不是实时处理新添加到日志文件的日志
-t : 更新频率
-n : 显示行号
-o : 排序规则(默认是访问计数)
-a …, –a …: 添加表达式(一般是聚合表达式如: sum, avg, min, max 等)到输出中。
-v: 输出详细信息
-i : 只处理符合规则的记录
-c <file>或 –config <file> 指定nginx配置文件,自动分析日志格式
-i <filter-expression>或 –filter <filter-expression> 满足表达式的过滤将被处理
-p <filter-expression>或 –pre-filter <filter-expression> in-filter expression to check in pre-parsing phase.

ngxtop的变量有:remote_addr、remote_user、time_local、request、request_path、status、body_bytes_sent、http_referer、http_user_agent。主要是用来分析出IP地址、请求路径、Http状态、referer、user_agent等等。

示例

找出404错误前十的请求URL。命令代码:

ngxtop -l /data/wwwlogs/wzfou.com_nginx.log --no-follow top request_path --filter 'status == 404'

找出访问数最多的前十个IP地址。命令代码:

ngxtop -l /data/wwwlogs/wzfou.com_nginx.log --no-follow --group-by remote_addr

找出流量前十的IP地址。命令代码:

ngxtop -l /data/wwwlogs/wzfou.com_nginx.log --no-follow --order-by 'avg(bytes_sent) * count'

找出400错误代码以上的且显示request、status、http_referer三项。命令代码:

ngxtop -l /data/wwwlogs/wzfou.com_nginx.log --no-follow -i 'status >= 400' print request status http_referer

找出bytes_sent平均值且状态码为200且request_path以wzfou开头的前10。命令代码:

ngxtop -l /data/wwwlogs/wzfou.com_nginx.log --no-follow avg bytes_sent --filter 'status == 200 and request_path.startswith("wzfou")'

通过上面几个命令,基本上很快就能锁定一些异常请求的IP地址了。默认的ngxtop会显示前10个记录,你可以加上参数 –n xxx,这样自己控制显示的数量。命令如下:

ngxtop -l /data/wwwlogs/wzfou.com_nginx.log --no-follow --group-by remote_addr -n 20

显示前20个最频繁的请求:

ngxtop -n 20
image.png

获取Nginx基本信息:

ngxtop info
image.png

你可以自定义显示的变量,简单列出需要显示的变量。使用 "print" 命令显示自定义请求。

ngxtop print request http_user_agent remote_addr
image.png

显示请求最多的客户端IP地址

ngxtop top remote_addr
image.png

显示状态码是404的请求

ngxtop -i 'status == 404' print request status
image.png

除了Nginx,ngtop 还可以处理其他的日志文件,比如 Apache 的访问文件。使用以下命令监控 Apache 服务器:

tail -f /var/log/apache2/access.log | ngxtop -f common

相关文章

  • Nginx实时监控

    工具:ngxtop安装方法:pip install ngxtop原理:ngxtop实时读取nginx配置中的log...

  • 普通Http接口 & WKWebview & U

    1 统计 普通http 接口 流量2 统计 UIWebView 流量3 统计 WKWebView 流量 (需要 调...

  • 多线程在微服务API统计和健康检查中的使用

    API统计 在服务调用的时候,统计每个接口的调用次数,从而做到对接口的限流或统计。 在下面的代码中,使用了多线程的...

  • HS2.0梳理(1)

    服务器接口 服务器的接口配置是在ApiStores接口文件中,先看下样例 @配置get和post方法,分别为@GE...

  • 前后端分离

    前后端分离问题其实最大的是带来的沟通成本上升问题,具体来说是接口的定义与调试。 接口测试服务器 接口服务器:接口的...

  • 数据格式

    首页1 接口1: 接口2: 首页2 接口1: 接口2: 监控页-服务器 接口1: 接口2: 筛选 监控详情 告警-...

  • 令牌桶限流(php redis)

    在开发接口服务器的过程中,为了防止客户端对于接口的滥用,保护服务器的资源, 通常来说我们会对于服务器上的各种接口进...

  • React Native Fetch 模拟请求本地json数据

    和服务器接口交互,当客户端还已经开发完,但服务器接口还没发布时,客户端可以先使用本地模拟的数据去测试,等服务器接口...

  • API 调用次数限制实现

    在开发接口服务器的过程中,为了防止客户端对于接口的滥用,保护服务器的资源, 通常来说我们会对于服务器上的各种接口进...

  • 利用requests的HTTPAdapter重试机制,检测web

    当我们需要对web服务器,进行监控时,常用的做法时调用服务器的心跳接口,或者把某个轻量化的接口,当成是心跳接口使用...

网友评论

      本文标题:服务器接口统计-ngxtop

      本文链接:https://www.haomeiwen.com/subject/xvlgpdtx.html