ngxtop:在命令行实时监控 Nginx 的神器

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

ngxtop:在命令行实时监控 Nginx 的神器

Nginx网站服务器在生产环境中运行的时候需要进行实时监控。实际上,诸如Nagios, Zabbix, Munin 的网络监控软件是支持 Nginx 监控的。

如果你不需要以上软件提供的综合性报告或者长期数据统计功能,只是需要一种快速简便的办法去监控 Nginx 服务器的请求的话,我建议你采用一个叫 ngxtop 的命令行工具。

你马上就会发现 ngxtop 从界面和名称都借鉴了著名的top命令。ngxtop 是通过分析 Nginx 或者其他的日志文件,使用类似 top 命令的界面实时展示出来的。你可以说你知道的其他高端监控工具,但是在简洁这方面 ngxtop 无疑是最好的。简单就意味着不可替代。

本指南中,我将介绍如何使用 ngxtop 实时监控 Nginx 网站服务器。

Linux 上安装 ngxtop

首先在 Linux 系统中安装依赖库pip(LCTT译注:ngxtop是用python编写的)。

然后使用如下命令安装 ngxtop。


  
  
  1. $ sudo pip install ngxtop

ngxtop 使用

基本使用方法如下:


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

这里是一些通用选项。

  • -l : 指定日志文件的完整路径 (Nginx 或 Apache2)
  • -f : 日志格式
  • --no-follow: 处理当前已经写入的日志文件,而不是实时处理新添加到日志文件的日志
  • -t : 更新频率
  • -n : 显示行号
  • -o : 排序规则(默认是访问计数)
  • -a ..., --a ...: 添加表达式(一般是聚合表达式如: sum, avg, min, max 等)到输出中。
  • -v: 输出详细信息
  • -i : 只处理符合规则的记录

以下是一些内置变量,他们的含义不言自明。

  • bodybytessend
  • http_referer
  • httpuseragent
  • remote_addr
  • remote_user
  • request
  • status
  • time_local

使用 ngxtop 监控 Nginx

ngxtop 默认会从其配置文件 (/etc/nginx/nginx.conf) 中查找 Nginx 日志的地址。所以,监控 Nginx ,运行以下命令即可:


  
  
  1. $ ngxtop

这将会列出10个 Nginx 服务,按请求数量排序。

显示前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,ngtop 还可以处理其他的日志文件,比如 Apache 的访问文件。使用以下命令监控 Apache 服务器:


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

原文发布时间:2014-06-16

本文来自云栖合作伙伴“linux中国”
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
6月前
|
应用服务中间件 Linux 网络安全
nginx安装的详细教程(包括命令行安装和编译安装)
nginx安装的详细教程(包括命令行安装和编译安装)
|
应用服务中间件 nginx
重识Nginx - 04 Nginx常用命令行
重识Nginx - 04 Nginx常用命令行
96 0
|
监控 NoSQL 应用服务中间件
|
监控 JavaScript 测试技术
《深入理解Nginx:模块开发与架构解析》一1.6 Nginx的命令行控制
本节书摘来自华章出版社《深入理解Nginx:模块开发与架构解析》一书中的第1章,第1.6节,作者 陶辉,更多章节内容可以访问云栖社区“华章计算机”公众号查看
1726 0
|
Web App开发 监控 应用服务中间件
如何从命令行实时监控Nginx Web服务器
一旦Nginx Web服务器在生产环境下搭建并运行起来,你就希望能够实时监测其活动。实际上,普通的网络监控软件都可以提供支持实时监控Nginx的功能,比如Nagios、Zabbix和Munin。
1518 0
|
应用服务中间件 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]  
1670 0
|
监控 应用服务中间件 nginx
利用ngxtop实时监控nginx的访问情况
关于对nginx web server的实时访问的实时监控问题,我很久之前就想实现的,现在虽有nginx自带的status扩展,但那是全局的,无法细分到vhost,并且提供的metric也很少,加之目前是通过cacti每5分钟取nginx status,实时性也不是很好,记得前一阵为maptail兴奋一点,以为能够解决我的问题,可是他只是漂亮的在地图上显示实时用户的ip地理位置信息,没有其他功能了,不过他的思想很重要---"tail -f log",如今的ngxtop其实也是这种思想,把功能做的丰富了点,我在今天测试的时候遇到一些问题,现在把过程整理下来,备忘也供大家参考。
1119 0
|
2月前
|
缓存 应用服务中间件 网络安全
Nginx中配置HTTP2协议的方法
Nginx中配置HTTP2协议的方法
152 7
|
3月前
|
应用服务中间件 BI nginx
Nginx的location配置详解
【10月更文挑战第16天】Nginx的location配置详解
|
2月前
|
负载均衡 监控 应用服务中间件
配置Nginx反向代理时如何指定后端服务器的权重?
配置Nginx反向代理时如何指定后端服务器的权重?
160 61