如何从命令行实时监控Nginx Web服务器

简介: 一旦Nginx Web服务器在生产环境下搭建并运行起来,你就希望能够实时监测其活动。实际上,普通的网络监控软件都可以提供支持实时监控Nginx的功能,比如Nagios、Zabbix和Munin。

一旦Nginx Web服务器在生产环境下搭建并运行起来,你就希望能够实时监测其活动。实际上,普通的网络监控软件都可以提供支持实时监控Nginx的功能,比如Nagios、Zabbix和Munin。

不过,如果你不需要这类工具所提供的综合报告功能或长期统计数字,只想快速、简便地监控对Nginx Web服务器提出的请求,那么我会建议使用一款名为ngxtop的命令行工具

你一眼就会发现,无论名称还是界面,ngxtop的灵感均源自大名鼎鼎的top命令。ngxtop的功能就是,分析Nginx访问日志文件(以及其他日志文件,比如Apache2日志),并通过类似top的界面,实时显示分析后所得的结果。你可能吹嘘自己的综合监控工具拥有各种各样的所需功能,但说到简洁性,肯定比不过ngxtop,而简洁性是不可忽视的一大优点。

我在本教程中将介绍如何借助ngxtop,实时监控Nginx Web服务器。

将ngxtop安装在Linux上

首先,将pip安装在你的Linux系统上,这是ngxtop的一个前提条件。

然后安装ngxtop,如下所示。

 
 
  1. $ sudo pip install ngxtop 

ngxtop的使用方法

ngxtop的基本使用方法如下:

 
 
  1. ngxtop [options] 
  2. ngxtop [options] (print|top|avg|sum) <var> 
  3. ngxtop info 

下面是一些常用选项。

  • -l <file>:访问日志文件(Nginx或Apache2)的完整路径
  • -f <format>:访问日志的格式
  • --no-follow:处理当前的日志文件快照,而不是实时写入到日志文件的新行
  • -t <seconds>:更新间隔时间
  • -n <number>:所显示的行数
  • -o <var>:排序标准(默认标准:数量)
  • -a <exp> ..., --a <exp> ...::将表达式(必须是聚合表达式:sum、avg、min和max等)添加到输出
  • -v:详细输出
  • -i <filter-expression>:只处理与过滤器匹配的记录

下面是一些内置变量(用上面的<var>来表示)。它们的含义不言自明。

  • body_bytes_send
  • http_referer
  • http_user_agent
  • remote_addr
  • remote_user
  • request
  • status
  • time_local

使用ngxtop监控Nginx

默认情况下,ngxtop会设法从其配置文件(/etc/nginx/nginx.conf)查明Nginx访问日志的位置。因而,想监控Nginx,只要运行这个命令:

 
 
  1. $ ngxtop 

它会显示由Nginx处理的10个请求,按请求数量排序。

想显示前20个最频繁的请求,只要运行这个命令:

 
 
  1. $ ngxtop -n 20 

想获得关于Nginx的信息(包括可用变量信息),只要运行这个命令:

 
 
  1. $ ngxtop info 

如果你愿意,也可以定制所要显示的变量。为此,只要列出你感兴趣的变量。"print"命令会显示一个个请求。

 
 
  1. $ ngxtop print request http_user_agent remote_addr 

想显示客户机的最常出现的IP地址,只要运行这个命令:

 
 
  1. $ ngxtop top remote_addr 

想显示状态代码是404的请求,只要运行这个命令:

 
 
  1. $ ngxtop -i 'status == 404' print request status 

除了Nginx外,ngxtop还能够处理其他日志文件,比如Apache访问日志。想监控Apache Web服务器,只要使用这个命令:

 
 
  1. $ tail -f /var/log/apache2/access.log | ngxtop -f common 
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
3天前
|
监控 Unix 应用服务中间件
Android-音视频学习系列-(八)基于-Nginx-搭建(rtmp、http)直播服务器
Android-音视频学习系列-(八)基于-Nginx-搭建(rtmp、http)直播服务器
|
2天前
|
JavaScript 前端开发 Java
web服务器是什么
web服务器是什么
12 0
|
3天前
|
应用服务中间件 网络安全 Apache
构建高性能Web服务器:Nginx vs Apache
【5月更文挑战第16天】Nginx与Apache是两种主流Web服务器,各具优势。Nginx以其轻量级、高并发处理能力和反向代理功能见长,适合大型网站和高并发场景;而Apache以功能丰富、稳定性强闻名,适合企业网站和需要多种Web服务功能的场景。在性能上,Nginx处理高并发更优,Apache则可能在高负载时遭遇瓶颈。在选择时,应根据实际需求权衡。
|
4天前
|
JSON JavaScript API
使用 Node.js 开发一个简单的 web 服务器响应 HTTP post 请求
使用 Node.js 开发一个简单的 web 服务器响应 HTTP post 请求
12 1
|
4天前
|
JSON JavaScript 中间件
使用 Node.js 开发一个简单的 web 服务器响应 HTTP get 请求
使用 Node.js 开发一个简单的 web 服务器响应 HTTP get 请求
9 2
|
4天前
|
负载均衡 Go 调度
使用Go语言构建高性能的Web服务器:协程与Channel的深度解析
在追求高性能Web服务的今天,Go语言以其强大的并发性能和简洁的语法赢得了开发者的青睐。本文将深入探讨Go语言在构建高性能Web服务器方面的应用,特别是协程(goroutine)和通道(channel)这两个核心概念。我们将通过示例代码,展示如何利用协程处理并发请求,并通过通道实现协程间的通信和同步,从而构建出高效、稳定的Web服务器。
|
4天前
【计网·湖科大·思科】实验一 熟悉仿真软件及访问WEB服务器
【计网·湖科大·思科】实验一 熟悉仿真软件及访问WEB服务器
7 0
|
4天前
|
存储 安全 数据安全/隐私保护
Web应用程序的会话管理是一种跟踪和识别特定用户与Web服务器之间交互的技术
【5月更文挑战第12天】Python Web开发中,会话管理用于跟踪用户与服务器交互,如Flask框架提供的内置功能。以下是一个简单示例:安装Flask后,设置应用密钥,通过session读写用户状态。例如,创建一个显示和设置用户名称的Web应用,用户提交的名字将保存在会话中。在生产环境中,应安全存储密钥,如使用环境变量。扩展会话管理可借助第三方库实现更多功能,但可能需更多配置。
214 2
|
应用服务中间件 nginx C语言
04_Nginx命令行参数,控制信号,Nginx启动、停止、重启命令
 Nginx支持一下命令行参数 -? | -h   打印出命令行参数的帮助 [root@localhost nginx]# ./nginx -? nginx version: nginx/1.8.0 Usage: nginx [-?hvVtq] [-s signal] [-c filename] [-p prefix] [-g directives]  
1630 0
|
4天前
|
移动开发 前端开发 JavaScript
前端vue2、vue3去掉url路由“ # ”号——nginx配置(一)
前端vue2、vue3去掉url路由“ # ”号——nginx配置
60 0